A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Tarefa: Implementar o Demo na página da disciplina. Para trabalhar com iluminação em OpenGL, deve-se definir: 1)Vetores de iluminação : Ex: GLfloat luzAmbiente[4]={0.2,0.2,0.2,1.0};

Apresentações semelhantes


Apresentação em tema: "Tarefa: Implementar o Demo na página da disciplina. Para trabalhar com iluminação em OpenGL, deve-se definir: 1)Vetores de iluminação : Ex: GLfloat luzAmbiente[4]={0.2,0.2,0.2,1.0};"— Transcrição da apresentação:

1 Tarefa: Implementar o Demo na página da disciplina. Para trabalhar com iluminação em OpenGL, deve-se definir: 1)Vetores de iluminação : Ex: GLfloat luzAmbiente[4]={0.2,0.2,0.2,1.0}; 2) Tipos de iluminação: Ex: // Define os parâmetros da luz de número 0 glLightfv(GL_LIGHT0, GL_AMBIENT, luzAmbiente);

2 3) Materiais que vão ser usados: Exemplo: // Capacidade de brilho do material GLfloat especularidade[4]={1.0,1.0,1.0,1.0}; GLint especMaterial = 60; A seguir encontram-se algumas funções de devem ser inseridas no código que permitem trabalhar com iluminação. Algumas estão incompletas para serem completadas pelos alunos.

3 // Função responsável pela especificação dos parâmetros de iluminação void DefineIluminacao (void) { // definição da iluminação GLfloat luzAmbiente[4]={0.2,0.2,0.2,1.0}; GLfloat luzDifusa[4]={0.7,0.7,0.7,1.0}; // "cor" GLfloat luzEspecular[4]={1.0, 1.0, 1.0, 1.0};// "brilho" GLfloat posicaoLuz[4]={0.0, 50.0, 50.0, 1.0}; // Capacidade de brilho do material GLfloat especularidade[4]={1.0,1.0,1.0,1.0}; GLint especMaterial = 60; // Define a refletância do material glMaterialfv(GL_FRONT,GL_SPECULAR, especularidade); // Define a concentração do brilho glMateriali(GL_FRONT,GL_SHININESS,especMaterial); // Ativa o uso da luz ambiente glLightModelfv(GL_LIGHT_MODEL_AMBIENT, luzAmbiente); // Define os parâmetros da luz de número 0 glLightfv(GL_LIGHT0, GL_AMBIENT, luzAmbiente); glLightfv(GL_LIGHT0, GL_DIFFUSE, luzDifusa ); glLightfv(GL_LIGHT0, GL_SPECULAR, luzEspecular ); glLightfv(GL_LIGHT0, GL_POSITION, posicaoLuz ); }

4 // Função usada para especificar a posição do observador virtual void PosicionaObservador(void) { // Especifica sistema de coordenadas do modelo..... // Inicializa sistema de coordenadas do modelo..... DefineIluminacao(); // Posiciona e orienta o observador glTranslatef(-obsX,-obsY,-obsZ); glRotatef(rotX,1,0,0); glRotatef(rotY,0,1,0); }

5 // Função usada para especificar o volume de visualização void EspecificaParametrosVisualizacao(void) { // Especifica sistema de coordenadas de projeção....... // Inicializa sistema de coordenadas de projeção....... // Especifica a projeçãperspectiva(angulo,aspecto,zMin,zMax) gluPerspective(angle,fAspect,0.5,500); PosicionaObservador(); }

6 // Função callback chamada quando o tamanho da janela é alterado void AlteraTamanhoJanela(GLsizei w, GLsizei h) { // Para previnir uma divisão por zero if ( h == 0 ) h = 1; // Especifica as dimensões da viewport glViewport(0, 0, w, h); // Calcula a correção de aspecto fAspect = (GLfloat)w/(GLfloat)h; EspecificaParametrosVisualizacao(); }

7 // Função responsável por inicializar parâmetros e variáveis void Inicializa (void) { // Define a cor de fundo da janela de visualização como branca glClearColor(1.0f, 1.0f, 1.0f, 1.0f); // Habilita a definição da cor do material a partir da cor corrente glEnable(GL_COLOR_MATERIAL); //Habilita o uso de iluminação glEnable(GL_LIGHTING); // Habilita a luz de número 0 glEnable(GL_LIGHT0); // Habilita o depth-buffering glEnable(GL_DEPTH_TEST); // Habilita o modelo de colorização de Gouraud glShadeModel(GL_SMOOTH); // Inicializa a variável que especifica o ângulo da projeção // perspectiva angle=45; // Inicializa as variáveis usadas para alterar a posição do // observador virtual rotX = 0; rotY = 0; obsX = obsY = 0; obsZ = 150; }


Carregar ppt "Tarefa: Implementar o Demo na página da disciplina. Para trabalhar com iluminação em OpenGL, deve-se definir: 1)Vetores de iluminação : Ex: GLfloat luzAmbiente[4]={0.2,0.2,0.2,1.0};"

Apresentações semelhantes


Anúncios Google