1 / 7

Tarefa : Implementar o Demo na página da disciplina .

Tarefa : Implementar o Demo na página da disciplina . Para trabalhar com iluminação em OpenGL, deve -se definir : 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

yardley
Download Presentation

Tarefa : Implementar o Demo na página da disciplina .

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Tarefa: Implementar o Demo napágina da disciplina. Para trabalhar com iluminaçãoem OpenGL, deve-se definir: Vetores de iluminação: Ex: GLfloatluzAmbiente[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) Materiaisquevão ser usados: Exemplo: // Capacidade de brilho do material GLfloatespecularidade[4]={1.0,1.0,1.0,1.0}; GLintespecMaterial = 60; A seguirencontram-se algumasfunções de devem ser inseridas no códigoquepermitemtrabalhar com iluminação. Algumasestãoincompletasparaseremcompletadaspelosalunos.

  3. // Função responsável pela especificação dos parâmetros de iluminação voidDefineIluminacao (void) { // definição da iluminação GLfloatluzAmbiente[4]={0.2,0.2,0.2,1.0}; GLfloatluzDifusa[4]={0.7,0.7,0.7,1.0}; // "cor" GLfloatluzEspecular[4]={1.0, 1.0, 1.0, 1.0};// "brilho" GLfloatposicaoLuz[4]={0.0, 50.0, 50.0, 1.0}; // Capacidade de brilho do material GLfloatespecularidade[4]={1.0,1.0,1.0,1.0}; GLintespecMaterial = 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 voidPosicionaObservador(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 voidEspecificaParametrosVisualizacao(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 voidAlteraTamanhoJanela(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; }

More Related