< Return to home

Descrição de Cenas


Independentemente da técnica de síntese que se use para gerar a imagem, o conteúdo da cena necessita ser descrito pela aplicação usando a API gráfica

Em última análise, e se ignorarmos o nível de abstração oferecido pela API usada, será necessário descrever:

Conteúdo da API


As APIs gráficas oferecem um conjunto de funções que permitem ao programador descrever a cena. A descrição da cena é feita através de um conjunto de chamadas a funções que especificam os objetos gráficos, as fontes de luz e as características da câmara (observador).

Primitivas Gráficas


As primitivas gráficas são os elementos básicos que compõem a cena. As primitivas gráficas mais comuns são:

Exemplo WebGl

Colocar os valores associados aos vértices (normalmente incluindo as coordenadas) em vetores

// Definir os vértices
var vertices = [ 0.0, 1.0, 0.0, -1.0, -1.0, 0.0, 1.0, -1.0, 0.0 ];

Enviar os dados para o GPU
Pedir ao GPU para desenhar usando o tipo de primitiva pretendida (pontos, linhas, triangulos, etc)

Especificação da câmera

Síntese de Imagens


Iluminação Global vs Local

Na realidade, não é possível determinar o aspecto de cada objecto de forma isolada ou independente dos restantes:

Os algoritmos de iluminação local tratam cada objecto de forma independente dos outros, produzindo assim resultados aproximados.

Os algoritmos de iluminação global tratam da cena como um todo, permitindo as interações entre as superfícies de diferentes objectos.

Abordagem física

Ray tracing: seguir o percurso dos raios de luz, partindo do centro de projeção até que sejam absorvidos ou se percam no espaço. Neste algoritmo é fácil produzir efeitos de iluminação global:

Radiosidade: método baseado nas transferências de energia entre os objectos presentes na cena.

Abordagem prática

pipeline

Pipeline de Visualização 3D


Processamento de vértices

Projeção

pipeline

Primitive Assembly

Os vértices o pipeline são agrupados para a formação das primitivas, antes que se possa proceder ao seu varrimento (geração dos pixels que as constituem) e recorte (clipping)

Clipper

Os vértices das primitivas são recortados contra o volume de visualização para que apenas os que se encontram dentro dele sejam processados

Rasteriser

Os segmentos de reta e os polígonos são convertidos em fragmentos/pixels que serão desenhados no ecrã

Processamento de fragmentos/pixels

Os fragmentos/pixels são processados para determinar a sua cor final

Cores determinadas por mapeamento de texturas e por interpolação.


- mauricio

10/09/2024