Prévia do material em texto
Atividade CG04 1) a) O programa desenha 2 triângulos vermelhos na tela (formando tipo um “zig-zag”/ampulheta), usando 6 vértices. b) Cada número da variável vertices representa coordenadas no espaço 3D. Os valores estão organizados de três em três, formando pontos no formato (x, y, z). c) O método createBuffer() serve para criar um espaço de memória na GPU onde os dados, como os vértices, serão armazenados. Esse buffer permite que o WebGL utilize esses dados para desenhar as formas na tela. d) O método createShader() serve para criar um shader, que é um pequeno programa executado diretamente na GPU. e) O shader da linha 31 (vertex shader) define a posição dos vértices na tela usando as coordenadas fornecidas e também define o tamanho do ponto, embora isso não tenha efeito no modo de triângulos. Já o shader da linha 55 (fragment shader) define a cor final dos pixels como vermelho sólido. f) Ao alterar de gl.POINTS para gl.TRIANGLES, a saída do programa muda de vários pontos individuais para formas preenchidas. No caso, são desenhados dois triângulos vermelhos formados pelos seis vértices fornecidos. g) A linguagem utilizada para escrever os shaders é a GLSL (OpenGL Shading Language), que é uma linguagem específica para programação gráfica e semelhante à linguagem C. 2) a) Tetraedro 4 - 6 + 4 = 2 b) Hexaedro 8 - 12 + 6 = 2 c) Octaedro 6 - 12 + 8 = 2 d) Dodecaedro 20 - 30 + 12 = 2 e) Icosaedro 12 - 30 + 20 = 2 3) a) Polígonos equiláteros: losango e quadrado b) Polígonos equiângulos: retângulo e quadrado c) Polígonos regulares: somente o quadrado 4) O pentágono pois para uma figura fazer tesselação, os ângulos ao redor de um ponto precisam somar 360° certinho, e a soma dos lados do pentagono dá 540. 5) As pirâmides do Egito não são tetraedros porque possuem base quadrada, enquanto o tetraedro possui base triangular. 6) A principal desvantagem de utilizar voxels para fazer desenhos 3D é que eles exigem uma grande quantidade de memória e processamento, já que o objeto é representado por vários pequenos “cubinhos” (volumes). 7) A Figura 1 representa uma operação de subtração (diferença). A Figura 2 representa a interseção. A Figura 3 representa a união 8) a) Lattice b) MeshSmooth c) Optimize 9) o Quadtree funciona em duas dimensões e divide em quatro partes, enquanto o Octree funciona em três dimensões e divide em oito partes. 10) o Vertex Shader cuida da geometria e posição dos objetos, enquanto o Fragment Shader cuida da cor e do visual final deles na tela.