Desenho de objetos em OpenGL -- Computação Gráfica |
jSSeção 5.4 |
5.4. Iluminação para Malhas Poligonais |
O modelo de iluminação citado pode ser aplicado em qualquer superfície ponto a ponto. No entanto, isso pode ser considerado uma tarefa lenta quando tratamos de computação gráfica interativa. Foi baseado nesse problema que surgiram simplificações, mesmo que para isso haja alguma perda de qualidade nos resultados.
A utilização deste modelo não resulta em perda de qualidade para os casos abaixo:
Portanto não devemos utilizar iluminação constante quando estamos por exemplo, definindo uma esfera, pois ela é constituída de pequenos polígonos, e com este tipo de iluminação o celebro humano tende a destacar as variações de intensidade de luz existente em cada um desses polígonos. Para aplicar uma iluminação constante no seu modelo de iluminação em OpenGL, basta utilizar o comando : >> glShadeModel (GL_FLAT); |
||
MÉTODO DE GOURAUD Gouraud propôs um modelo mais realista que o de iluminação constante. Ao invés de calcular a cor em um apenas um ponto torna-se necessário o cálculo em vários pontos. Os pontos deveriam ser os vértices do polígono e as cores dos outros pontos deveriam ser obtidas através de uma interpolação. Apesar de ser mais realístico que o método de iluminação constante, o método de Gouraud tem uma desvantagem. Ele não representa bem o caso em que a reflexão especular cria uma pequena região de brilho no interior do polígono. Em OpenGL este método pode ser utilizado pelo comando: >> glShadeModel (GL_SMOOTH); |
||
MÉTODO DE PHONG Phong propôs um novo modelo no qual as normais são interpoladas ao invés das cores. Isso elimina uma série de problemas relacionados a perda de qualidade em termos de reflexão especular. Apesar de obter resultados melhores, o método de Phong requer um aumento substancial no processamento necessário para a síntese de imagens, além disso implementações em hardware são bem mais caras, normalmente encontradas em equipamentos profissionais. Em OpenGL não existe um comando que trata o método de Phong. Com ferramentas tipo Adobe 3D Max é possível aplicar o método de Phong, porém a mesma não é gratuita como a OpenGL. ESPECIFICANDO NORMAIS Conforme dito na seção 5.2, você deve especificar as normais quando se trata de reflexão difusa e especular, pois o ângulo teta é calculado a partir da mesma. Basicamente existem algumas regras que devem ser seguidas para que não haja perda na qualidade da imagem:
Em OpenGL as normais são definidas pelo comando: >> glNormalf ( nx, ny, nz); Onde nx, ny, nz definem o vetor
normal. Nos exemplos iremos mostrar onde declarar as normais e também
como elas são utilizadas dentro do mesmo. |
||
|
[anterior] |
[próxima] |