Oitava Lista - Modelo de Iluminação
Aquecimento
- Inclua no Makefile os comandos
necessários para gerar o executável do
programa light.c.
- O que acontecerá se retirarmos o comando
glEnable(GL_LIGHTING)?
- O que acontecerá se retirarmos o comando
glEnable(GL_LIGHT0)?
- O que acontecerá se retirarmos o comando
glMaterialfv(GL_FRONT, GL_SHININESS, mat_shininess)?
Qual é a função do comando
glMaterialfv?
- Qual é o modelo de tonalização
utilizado? Altere o parâmetro GL_SMOOTH
para GL_FLAT no comando glShadeModel
e anote o que foi constatado.
Observação: O programa spots.c demonstra o uso de comandos para especificar as
fontes de luz do tipo spot.
- Inclua no Makefile os comandos
necessários para gerar os executáveis dos
programas scene.c e
sccolorlight.c.
- Compare os dois programas quanto aos efeitos visuais
obtidos.
Dica: Observar os argumentos das variáveis
light_ambient, light_diffuse e
light_specular.
- Em relação ao modelo básico
de iluminação
apresentado na aula,quais argumentos
são afetados pelos parâmetros
GL_AMBIENT, GL_DIFFUSE e GL_SPECULAR
do comando glLightfv?
- Qual é a função do comando
glLightModelfv nos programas?
- Habilita a fonte de luz LIGHT1 do programa
sccolorlight.c.
Que tipo de fonte é a fonte LIGHT1?
Varie os parámetros de definição
desta fonte de luz para ver distintos efeitos visuais.
Inclua no Makefile os comandos
necessários para gerar o executável do
programa material.c.
- Em relação ao modelo de iluminação
básico apresentado na aula,quais argumentos
são afetados pelos parâmetros
GL_AMBIENT, GL_DIFFUSE e GL_SPECULAR
do comando glMaterialfv?
- Como o parâmetro GL_EMISSION do
comando glMaterialfv afeta a aparência
visual de um objeto?
- Identifique as propriedades de material de cada esfera,
ou seja os valores de ka, ks, kd, o expoente da componente
especular e a "emissividade" de cada uma delas.
- O que significa atribuir distintos valores para as componentes
dos vetores ambient, diffuse e
specular?
- Qual é a função do comando
glLightModelfv(GL_LIGHT_MODEL_LOCAL_VIEWER, local_view)?
- O programa teapots.c é um outro
programa que
demonstra o uso das funções do pacote
Mesa/
OpenGL
para definir as propriedades do material de um objeto.
Identifique as propriedades de matrial para cada bule.
Inclua no Makefile os comandos
necessários para gerar o executável do
programa lightlab.c. Este programa permite atestar diversos efeitos visuais
decorrentes da interação entre as fontes de luz e os objetos. Como
as cores das fontes de luz podem afetar a cor "perceptual" dos objetos?
Inclua no Makefile os comandos
necessários para gerar o executável do
programa alpha3D.c. Este programa ilustra
uma outra alternativa para "emular" efeitos de transparência, além daquela
apresentada na sexta lista.
- Qual é o papel do comando glDepthMask?
- Qual é a opacidade do toro? O que acontecerá
se alterarmos este valor?
- Qual é a opacidade do cubo? O que acontecerá
se alterarmos este valor?
Observação: O programa blender.c é um outro bom exemplo!
Inclua no Makefile os comandos
necessários para gerar o executável do
programa shadow.c. Este programa ilustra o uso de stencil buffer para "emular" efeitos de sombra.
- Como foram calculados os volumes de sombra?
- Como o plano de stencil foi utilizado para
gerar sombras adequadamente?
Inclua no Makefile os comandos
necessários para gerar o executável do
programa reflectdino.c. Este programa ilustra o uso de stencil buffer
para "emular" efeitos de reflexão. Leia atentamente os comentários
do código e descreva sucintamente o procedimento de geração.
Observação: O programa halomagic.c é um bom exemplo de efeitos combinados
de sombra e reflexão.
Programação
- Modifique o programa movelight.c, de forma
que a fonte aproxime e afaste do objeto, ao invés
de rotacionar em torno dele, e que
a intensidade da fonte diminua à medida que se afaste
do objeto.
- Modifique o programa hidplanes.c
da sétima lista,
de forma
que os planos sejam translúcidos. Os valores de opacidade
são escolhidos a critério de cada um.
- Modifique o programa shadow.c,
de forma
que o observador gira 15 graus em torno da cena cada vez que
se aperta a barra de espaço.
- Altere a cena que você gerou na
terceira lista,
adicionando as propriedades de material para cada objeto
e supondo
a taça seja transparente/translúcida. Inclua
ainda efeitos de sombra e reflexão.
Voltar para a lista anterior.
Avançar para a próxima lista.