Carregando Malhas
Após implementar a câmera perspectiva, a próxima etapa é, com a ajuda do Assimp, implementar o suporte a formas mais complexas de objetos 3D, pois não se pode fazer nada muito realista só com esferas e triângulos. A biblioteca Assimp oferece suporte para tornar mais fácil a leitura e tratamento de vários formatos de objetos 3D. Através do Assimp, um arquivo do tipo ".obj" foi transformado em uma lista de triângulos, e nós só precisávamos renderizar estes triângulos na tela usando a função que nós já criamos, logo, carregando o modelo default do blender, a cabeça de macaco, o resultado foi esse:Atribuindo Cores
A próxima etapa foi descartar este algoritmo que controlava o tom de branco de acordo com a distância da tela e, atribuir cor para todas as primitivas. A maneira mais simples de fazer isso é simplesmente adicionar o atributo "cor" para a classe "primitives", o qual seria um vetor de três valores, r, g e b, representando respectivamente Vermelho, Verde e Azul. E para demonstrar o funcionamento desta mudança nós carregamos um modelo de um boneco Lego e atribuímos cores aleatórias para todos os seus triângulos, o resultado é mostrado abaixo:
E assim concluímos nossa quarta atividade da disciplina.
Repositório no GitHub do nosso Ray Tracer: https://github.com/avin1cius/RT-Template