Curso de WebGL


Laboratórios

1) Usando o código da junta de Sierpinski, desenhe o quarto triângulo em vermelho e as bordas de todos os triângulos em preto. Adicione um slider para especificar o nível de subdivisão.


Junta de Sierpinski.

1b) Adicione os requisitos do primeiro trabalho do Cousera.


Torção.

Sem preencher o quarto triângulo.

Links úteis:

2) Desenhe um cubo em 3D e faça-o girar, no seu próprio sistema de coordenadas, em torno de um seus três eixos: x, y ou z.
Utilize o teclado ou um checkbox para selecionar o eixo de rotação. Além disso, o mundo deve poder, opcionalmente, girar em torno do eixo Y global.
A projeção deve ser selecionada via checkbox, entre paralela ou perspectiva.
As duas retas paralelas da figura abaixo e o três eixos locais do cubo, também devem ser desenhados.

Nota: uma rotação em torno de um eixo local (em movimento) é chamada intrínseca e em torno de um eixo global (estático), extrínseca.
Uma matriz de rotação intrínseca é a inversa (transposta) da matrix de rotação extrínseca e vice-versa.


Cubo com projeção Perspectiva.

Links úteis:

3) Implemente a hierarquia do robô do livro do Foley: corpo, cabeça, tronco, braço, ante-braço, mão, perna e pé.

Dica: utilize um cubo ou uma esfera para criar todas as partes do corpo do robô.


Robô (Livro do Foley pag. 311).

Links úteis:

4) Utilize o threejs para criar uma cena com o tema de sua escolha. Devem ser utilizados no mínimo meia dúzia de objetos diferente, incluindo uma hierarquia, uso de textura e skybox, e algum tipo de animação. Considere também a adição de áudio e sistemas de partículas.

Dica: Prepare uma apresentação powerpoint, pois este trabalho deverá ser apresentado em sala de aula.


Ferrari.

Links úteis:

5) O objetivo deste trabalho é atribuir coordenadas de textura aos vértices dos sólidos Platônicos (poliedros perfeitos): tetraedro, cubo, octaedro, dodecaedro e icosaedro.

Para isso, deve-se selecionar uma face do poliedro com o mouse, e rotacionar todas as outras de forma que fiquem coplanares com a face selecionada. Depois é só mapear o poliedro aberto no plano da textura (z=0).

As faces podem ser percorridas em qualquer ordem, sem repetição. Modelando os poliedros como grafos, qualquer caminhamento serve, por exemplo, em profundidade ou amplitude.

Dicas:


Sólidos Platônicos.


Cubo.


Dodecaedro.


Vaca.

Links úteis:

6) Implemente em OpenGL, WebGL, ou em python com PyOpenGL e numpy, um visualizador e texturizador de quádricas:


Hyperbolic Paraboloid.


Ring-Torus, Horn Torus, Spindle Torus.

Links úteis:

/Paulo Roma.