Segunda Fase - sososilvei/Trabalho-CG GitHub Wiki
Objetivo
A segunda fase consiste na visualização de dois objetos diferentes, construção das matrizes na CPU para envio à GPU, a transformação do modelo (uma matriz diferente para cada modelo) e a transformação de visualização (uma matriz para toda a cena).
Implementação
Além do objeto apresentado na fase anterior, uma Espaçonave, foi adicionado um novo objeto, um Astronauta, encontrado no repositório de recursos 3D da Nasa: https://nasa3d.arc.nasa.gov/detail/aces. Foi criado o Vertex Shader para aplicar uma rotação, uma translação e uma redimenção da escala da Espaçonave. Já o Fragment Shader foi utilizado para adicionar a cor azul ao objeto. Foi utilizado o Vertex Shader para transladar, rotacionar e mudar a escala do Astronauta, enquanto que o Fragment Shader foi utilizado para modificar a cor do Astronauta, tornando-o verde. São apresentadas, no código, as matrizes de transformação, podendo ser verificadas as tranformações aplicadas a cada objeto.
Para a Espaçonave é possível observar uma escala de 25 unidades
em todos os eixos
, aumentando o objeto; uma translação de -1 unidade
no eixo z
, fazendo com que o objeto vá para trás, afastando-o; uma rotação de 15 graus
no eixo z
, fazendo com que ela fique inclinada como se realmente estivesse voando no espaço.
Já com relação ao Astronauta, temos que a escala aplicada foi de 12.6 unidades
em todos os eixos
, também aumentando as dimensões do objeto; uma translação de -40 unidades
no eixo x
, fazendo com que o objeto vá para a esquerda, distanciando-o da Espaçonave; uma translação de -10 unidades
no eixo y
, fazendo com que o objeto vá para baixo; uma rotação de -0.5 graus
no eixo z
, inclinando-o levemente para a diagonal direita.
Além dos dois objetos mencionados, Astronauta e Espaçonave, também foi criada uma esfera com o método SphereGeometry()
da biblioteca Three, e a ela foi aplicada uma textura com a imagem earth_surface_2048.jpg
fornecida dentro da pasta images
. Em seguida, essa geometria que representa o planeta Terra foi posicionada e adicionada à cena.