4.1 Dados gráficos

O processamento de um pipeline gráfico começa com a definição dos dados gráficos pela aplicação. Esses dados são frequentemente representações de objetos – abstrações de objetos do mundo real – dispostos em uma cena virtual tridimensional. Uma cena é tipicamente composta por:

  • Objetos com geometria descrita através de modelos geométricos, geralmente no formato de malhas de triângulos. Em renderizadores offline, também é comum representar a geometria de objetos através de equações paramétricas ou implícitas.
  • Propriedades dos materiais dos objetos, tais como cor, textura, transparência e refletividade.
  • Fontes de luz descritas por informações como intensidade, direção de propagação da luz e fatores de atenuação.
  • Uma câmera virtual descrita por informações que permitem definir um ponto de vista na cena, tais como posição da câmera, orientação e campo de visão.

A câmera virtual é uma abstração de uma câmera ou observador do mundo real. A síntese de imagens pode ser considerada como o processo de gerar a fotografia digital tirada pela câmera virtual.

Em uma câmera de verdade, a imagem é formada a partir da energia luminosa que atravessa as lentes e é captada pelo sensor RGB durante um certo tempo de exposição.

Poderíamos tentar simular de forma precisa o comportamento de uma câmera de verdade, mas seria muito custoso simular o comportamento dos fótons passando pelo sistema de lentes e então integrá-los sobre o hemisfério de todas as possíveis direções de luz que incidem em cada subpixel RGB do sensor da câmera. Felizmente, podemos simplificar de forma significativa este processo. Para aplicações de síntese de imagens em tempo real, a cor de cada pixel pode ser uma aproximação simples da energia luminosa refletida na direção do pixel. Essa aproximação pode ser fisicamente incorreta, desde que suficiente para dar a percepção de sombreamento (shading) dos objetos.

É comum considerar que a câmera virtual é uma câmera pinhole ideal (figura 4.2). A câmera pinhole é uma câmera que não possui lentes. A luz passa por um pequeno furo (chamado de centro de projeção) e incide sobre um filme ou sensor localizado no fundo da câmera (o plano de imagem). A abertura do campo de visão pode ser ajustada mudando a distância focal, que é a distância entre o centro de projeção e o plano de imagem. Na câmera pinhole ideal, a abertura do furo é infinitamente pequena e as imagens formadas são perfeitamente nítidas (isto é, em foco). Efeitos de difração são ignorados nesse modelo.

Camera pinhole ideal.

Figura 4.2: Camera pinhole ideal.

Para evitar ter de lidar com a imagem invertida formada no plano de imagem da câmera pinhole, podemos considerar que o plano de imagem está localizado na frente do centro de projeção, o que seria impossível de fazer numa câmera real. Podemos também ajustar arbitrariamente a distância focal sem preocupação com limitações físicas. A distância focal pode até mesmo ser infinita, se desejarmos uma projeção paralela. Por fim, podemos considerar que o plano de imagem é o framebuffer. Nessa configuração, é comum considerar que o centro de projeção corresponde ao olho do observador, como mostra a figura (figura 4.3).

Câmera virtual com plano de imagem na frente do centro de projeção.

Figura 4.3: Câmera virtual com plano de imagem na frente do centro de projeção.

Para determinar a cor de cada pixel do framebuffer para um determinado ponto de vista da câmera virtual, podemos considerar duas abordagens de renderização: ray casting e rasterização. Essas abordagens são apresentadas na seção a seguir.