![]() |
Leandro Aparecido Roberto Greice Martins de Freitas | Versão 0.2 - Modelagem e Iluminação |
---|---|
Lógica do Jogo Versão 0.1 Versão 0.2 Versão 0.3 Links |
Modelagem 3D Studio Max
A geometria simples obtida como resultado da versão 0.1 incentivou o uso de programas como o 3D Studio Max (3DSmax) para realizar a modelagem da mesa e outros objetos que compõe a cena. O 3DSmax é um programa que permite modelar objetos 3D, bem como aplicar texturas e modelos de iluminação, entretanto este foi utilizado apenas para modelar a mesa e outros objetos.
![]()
O programa 3DSmax foi escolhido principalmente por sua facilidade de exportar os produtos gerados para arquivos OBJ. OBJ são arquivos de texto onde está definida a geometria do objeto como seus vértices, coordenadas de textura associadas aos vértices, normal em cada vértice e faces que formam os polígonos:
![]() Iluminação
O modelo de iluminação foi gerado através da função luzes(), onde são definidas as luzes ambiente, difusa e especular:
void luzes(void) { //Luz ambiente: glLightModelfv(GL_LIGHT_MODEL_AMBIENT, vermelho); //Define como o ângulo reflexão é calculado: glLightModeli(GL_LIGHT_MODEL_LOCAL_VIEWER,GL_FALSE); //Define iluminação calculada para os 2 lados do polígono: glLightModeli(GL_LIGHT_MODEL_TWO_SIDE,GL_FALSE); // Definição das luzes //Luz Ambiente: glLightfv (GL_LIGHT0, GL_AMBIENT,branco); // Componente difusa: glLightfv (GL_LIGHT0, GL_DIFFUSE, branco); //Componente especular: glLightfv (GL_LIGHT0, GL_SPECULAR, branco); //Define posição da luz 0: glLightfv (GL_LIGHT0, GL_POSITION, Posicao_Luz0); //Habilita iluminação: glEnable(GL_LIGHTING); //Habilita luz 0: glEnable(GL_LIGHT0); } A posição e cor das luzes são definidas por: GLfloat Posicao_Luz0[] = { 10.0, 50.0, 0.0, 1.0}; GLfloat branco[] = { 1.0, 1.0, 1.0 }; GLfloat amarelo[] = { 1.0, 1.0, 0.0 }; A idéia inicial de iluminação era utilizar a luz spot, projetando-a sobre o centro da mesa, criando assim um ambiente mais escuro com foco na mesa. Entretanto, a geometria da mesa que contém poucos vértices (e poucas normais associadas a estes) não favoreceu o efeito deste tipo de luz que faz uso da interpolação dos vetores normais, que estavam fora do alcance da luz, deixando o tampo da mesa escuro, com efeito indesejado. Sendo assim, este tipo de iluminação não foi utilizado. A figura 4 ilustra a mesa com a função luz() definida. ![]() |