Décima Lista - Manipulação de Imagens
Aquecimento
- Para facilitar aemulação de efeitos atmosféricos,
OpenGL/
OpenGL para WNT'95 dispõe a
função glFog para especificar a cor de Cf,
que é usada na composição
com a imagem do cenário Ci segundo a expressão
C = f Ci + (1 - f)Cf,
onde f é um fator de ponderação (análogo à função
de opacidade) que depende do modo de atenuação e a densidade,
como demonstra
o programa fog.c.
- O que acontece se substituirmos o comando
glEnable(GL_FOG) por glDisable(GL_FOG)?
- Indique no programa os comandos que especificam o "efeito de
fog" desejado.
- Qual é o papel do comando glHint?
Observação: O programa
fogtst.c é uma outra demonstração do uso da função
glFog. Rotacione o objeto com as teclas
especiais e observe os resultados obtidos.
- Outra forma de "combinar" as imagens em
OpenGL/
OpenGL para WNT'95
é utilizar o buffer de acumulação
(accumulation buffer), como demonstra o
programa accum.c.
A funcionalidade deste buffer é
controlada pela função glAccum.
- Qual é o papel da matriz jitter16?
- Qual é a função da rotina loaddxdy?
(Observe que os valores em dx e dy
são utilizados pela função glTranslatef
na rotina display.)
- Qual é o efeito obtido ao acumularmos imagens ligeiramente
"deslizadas" uma sobre a outra? (Dica: Compare
ainda as bordas dos objetos nas imagens geradas pelo programa
accnot.c e accpersp.c.
Para compilar este último programa necessita-se do arquivo
jitter.h)
- Utilizando buffer de acumulação pode-se
ainda emular efeitos interessantes, como motion blur e
campo de profundidade.
Os programs blur.c e
dof.c demonstram o uso de
buffer de acumulação para gerar
estes efeitos. Explique como ele foi utilizado.
Programação
- Altere a cena que você gerou na
nona lista,
introduzindo o efeito de profundidade de campo.
Voltar para a lista anterior.