Para a iluminação utilizou-se o algoritmo de Gouraud. Este algoritmo interpola os vértices para formar a luminosidade em cada vértice. Veja na figura 4 exemplos de iluminação.
Para habilitar a iluminação, fez-se glEnable(GL_LIGHT0). As demais funções em OpenGL utilizadas para esta funcionalidade foram:
GlLightfv, determina os parâmetros da fonte de luz.
GlLightModelfv, determina os parâmetros do modelo de iluminação.
Utilizou-se fotografias para as texturas de grama, asfalto e montanhas com um céu. Foi criado um algoritmo que mapeia as imagens sobre as coordenadas de textura.
Isso foi realizado da seguinte forma: capturou-se a textura desejada; esta é carregada pelo programa, que mapeia a textura a um objeto determinado; para tal, utilizou-se as seguintes funções de OpenGL:
glBindTexture mapeia uma textura a um alvo.
glGenTextures cria a textura. As texturas geradas assumem as dimensões do alvo ao qual são assinaladas pela função glBindTexture.
glTexParameteri passa os parâmetros de textura, fazendo o dimensionamento linear da imagem.
glTexImage2D especifica imagem de textura 2D.
A habilitação da textura foi feita com glEnable(GL_TEXTURE_2D).
Figura 3 – Exemplo de textura: textura e carro com textura.
É interessante apontar que imaginou-se a pista inserida em uma caixa, de forma que a imagem de fundo (montanhas e céu) foi colada nas quatro faces desta que ficam ao redor da pista, na vertical. Isto poderá ser observado na figura 6.
Próxima página