Décima Lista - Manipulação de Imagens


Aquecimento

  1. 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.
    1. O que acontece se substituirmos o comando glEnable(GL_FOG) por glDisable(GL_FOG)?
    2. Indique no programa os comandos que especificam o "efeito de fog" desejado.
    3. 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.
  2. 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.
    1. Qual é o papel da matriz jitter16?
    2. 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.)
    3. 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)
  3. 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

  1. Altere a cena que você gerou na nona lista, introduzindo o efeito de profundidade de campo.

Voltar para a lista anterior.