Computa o gr fica
This presentation is the property of its rightful owner.
Sponsored Links
1 / 11

Computação Gráfica PowerPoint PPT Presentation


  • 54 Views
  • Uploaded on
  • Presentation posted in: General

Computação Gráfica. Iluminação e Texturas. Iluminação. Para que o OpenGL ilumine a cena é necessário: Na fase de setup: Indicar o modelo de shading : FLAT ou SMOOTH Indicar as características das fontes de luz Activar a iluminação Na fase de rendering :

Download Presentation

Computação Gráfica

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Computa o gr fica

Computação Gráfica

Iluminação e Texturas


Ilumina o

Iluminação

  • Para que o OpenGL ilumine a cena é necessário:

    • Na fase de setup:

    • Indicar o modelo de shading: FLAT ou SMOOTH

    • Indicar as características das fontes de luz

    • Activar a iluminação

    • Na fase de rendering:

    • Especificar os materiais dos objectos

    • Indicar as normais dos modelos

DI-UM Computação Gráfica 07/08


Modelo de shading

Modelo de Shading

  • glShadeModel (opção)

  • Opção = GL_FLAT ou GL_SMOOTH

DI-UM Computação Gráfica 07/08


Fonte de luz

Fonte de Luz

  • Uma fonte de luz direccional é especificada indicando o vector direcção:

    float l_dir={0., 1., 0., 0.}; // w=0. -> vector

    glLightfv (GL_LIGHT0, GL_POSITION, l_dir);

  • A intensidade difusa é especificada:

    float l_diff={1., 1., 1.};

    glLightfv (GL_LIGHT0, GL_DIFFUSE, l_dir);

  • A luz ambiente presente na cena:

    float amb={0.2, 0.2, 0.2};

    glLightModelfv(GL_LIGHT_MODEL_AMBIENT, ambient);

DI-UM Computação Gráfica 07/08


Activar ilumina o

Activar iluminação

  • glEnable (GL_LIGHT0);

  • glEnalble (GL_LIGHTING);

DI-UM Computação Gráfica 07/08


Especificar os materiais

Especificar os materiais

  • Antes de desenhar cada objecto indicar ao OpenGL que se devem usar as propriedades dos materiais dos objectos.

    • Para a componente de reflexão difusa:

      glColorMaterial(GL_FRONT, GL_DIFFUSE);

    • Usar a cor do objecto:

      glEnable(GL_COLOR_MATERIAL);

DI-UM Computação Gráfica 07/08


Normais

Normais

  • Ao especificar cada vértice especifica-se a normal:

    glNormal3f (Nx, Ny, Nz);

    glVertex3f (Vx, Vy, Vz);

  • No caso do terreno a função terrainLoadFromImage (char *fname, int normals)calcula as normais para cada vértice se normals!=0

  • A função terrainCreateDL() encarrega-se de especificar as normais se estas tiverem sido previamente calculadas

DI-UM Computação Gráfica 07/08


Exerc cio

Exercício

  • Adapte a aplicação desenvolvida nas sessões anteriores para que:

    • Use uma fonte de luz direccional

    • Permita aumentar/diminuir a componente ambiente pressionando as teclas ‘A’/’a’

DI-UM Computação Gráfica 07/08


Transforma es das texturas

Transformações das texturas

As texturas podem ser transformadas tal como a geometria. Para especificar transformações a aplicar a texturas usar:

glMatrixMode(GL_TEXTURE);

As transformações especificadas a seguir aplicar-se-ão às texturas.

DI-UM Computação Gráfica 07/08


Transforma es das texturas1

Transformações das texturas

  • Por exemplo, para rodar uma textura mapeada num polígono de um ângulo dependente da frame actual (contada usando a variável step) usar:

    glMatrixMode(GL_TEXTURE);

    glPushMatrix();

    glRotatef(step/100.,0.,0.,1.);

    glMatrixMode(GL_MODELVIEW);

  • Após o desenho do polígono fazer o reset à matriz:

    glMatrixMode(GL_TEXTURE);

    glPopMatrix();

    glMatrixMode(GL_MODELVIEW);

DI-UM Computação Gráfica 07/08


Exerc cio1

Exercício

  • Adapte a aplicação desenvolvida nas sessões anteriores para que:

    • Desenhe um polígono horizontal (plano XZ) com uma textura representando água mapeada (ficheiro water.tga)

    • A coordenada YY deste polígono varie entre 0 e 100 usando as teclas ‘w’/‘W’

    • Esta textura sofra uma rotação de frame para frame simulando água

DI-UM Computação Gráfica 07/08


  • Login