Iluminação e sombreamento
Modelos local e global, Phong e Blinn-Phong, Gouraud contra Phong, com contas feitas.
A geometria diz onde está a superfície; a iluminação diz que cor ela tem em cada ponto. O modelo de iluminação combina a luz que chega, a orientação da superfície e o material do objeto. O modelo de sombreamento decide onde essa conta se faz: em cada vértice ou em cada fragmento. Confundir os dois é o erro conceptual mais comum desta parte da matéria.
O modelo local: Phong
A iluminação local só olha para as luzes diretas e ignora a luz refletida por outros objetos. O modelo de Phong escreve a intensidade num ponto como soma de três parcelas:
Cada símbolo tem um papel. é a luz ambiente, que existe em todo o lado e evita pretos totais; diz quanto dela o material absorve. é a intensidade da fonte. A parcela difusa usa o cosseno entre a normal e a direção da luz : faces de frente para a luz recebem mais, e é a cor própria do objeto. A parcela especular cria o brilho: depende do alinhamento entre a direção de reflexão perfeita e o observador , elevado ao expoente (brilho ou shininess), com a controlar a força. Quanto maior , mais pequeno e nítido o reflexo.
A variante Blinn-Phong troca o vetor de reflexão pelo vetor halfway , a bissetriz entre e : a parcela especular passa a . É mais barata e comporta-se melhor em ângulos rasantes, por isso é a que vais implementar.
Exemplo com números
Um ponto tem normal e recebe luz branca de intensidade vinda de (confirma que está normalizado: ). O observador está em e o material tem , , e .
Ambiente: . Difusa: , logo . Para a especular, o halfway é a soma normalizada de com :
Então e , o que dá . O total é : um ponto bem iluminado com um brilho moderado. Se o observador se movesse, só a parcela especular mudava, porque ambiente e difusa não dependem de . Essa é a observação que distingue quem decorou a fórmula de quem a percebeu.
Iluminação global e sombreamento
A iluminação local não explica espelhos nem sombras suaves, porque ignora a luz que viaja entre objetos. A iluminação global segue esses caminhos: ray tracing para reflexões e refrações exatas, radiosidade para a luz difusa que se espalha entre superfícies. É mais realista e muito mais cara, por isso aparece em cinema e cada vez mais em jogos com aceleração dedicada.
Quanto ao sombreamento, há duas escolhas. O sombreamento de Gouraud calcula a iluminação nos vértices e interpola as cores pela face: é barato, mas perde brilhos no interior dos triângulos grandes. O sombreamento de Phong interpola as normais e calcula a iluminação em cada fragmento: custa mais e mostra os brilhos onde eles estão. Repara na simetria dos nomes: o modelo de Phong diz o que calcular, o sombreamento de Phong diz onde o calcular.