- Quais são os passos para implementar o sombreamento de Phong em um rasterizador?
Passo 1
O enunciado pede que implementemos o sombreamento de Phong num rasterizador. O conteúdo principal é o modelo de iluminação de Phong, que soma três componentes—ambiente, difusa e especular—e exige interpolação de normais e cálculo de vetores de luz e de visão por pixel.
Passo 2
No estágio de vértice do pipeline, para cada vértice do triângulo fazemos:
. Transformar a posição do vértice do espaço objeto para o espaço da câmera (ou espaço de recorte).
. Transformar a normal do vértice usando a matriz inversa transposta do modelo.
. Enviar ao rasterizador como atributos de vértice: a posição projetada, a normal transformada e, se houver, parâmetros de material (
) e a cor da luz ambiente.
Passo 3
Durante a rasterização, para cada fragmento (pixel) dentro do triângulo:
. Calcular as coordenadas baricêntricas para obter a interpolação linear (ou perspectiva-correta) de posição no espaço da câmera, normal e parâmetros de material.
. Executar o teste de profundidade (z-buffer) e descartar o fragmento se perder o teste.
Passo 4
Com os atributos interpolados do fragmento, montar os vetores necessários e normalizá-los:
.
normal interpolada do fragmento, normalizada.
.
vetor da posição do fragmento até a fonte de luz, normalizado.
.
vetor da posição do fragmento até a câmera (ou olho), normalizado.
.
vetor de reflexão de
em
, dado por
Passo 5
Calcular cada componente do modelo de Phong:
Ambient:
Ambient:
Difusa:
Especular:
onde
e
são as intensidades da luz ambiente e da luz pontual, e
é o expoente de brilho do material.
Passo 6
Somar as componentes e limitar (clamp) cada canal de cor a
:
Escrever
no framebuffer no canal de cor do fragmento.