Pular para o conteúdo
Luz · TécnicaIntermediário

Brilhos especulares

O ponto brilhante onde a superfície espelha a luz para a câmera, a partir do vetor refletido ou do vetor médio.

NormalVisãoSuperfície

Cards

Um exemplo ao vivo para ajustar, aprender e copiar.

Como funciona

Uma superfície lustrosa não espalha a luz por igual. Parte do que chega nela volta como num espelho levemente borrado, e você só vê essa parte onde o ângulo de espelho manda a luz para o seu olho: um ponto claro que desliza pela superfície quando você se move. Esse ponto é o brilho especular. Ao contrário da luz difusa, ele depende de quem olha, então o shader precisa da direção para a câmera, além da normal da superfície e da direção para a luz.

Há dois jeitos clássicos de medir “quão perto do ângulo de espelho este ponto está”:

  • Phong reflete a direção da luz em relação à normal com reflect e compara o resultado com a direção de visão: pow(max(dot(reflect(-l, n), v), 0.0), shininess).
  • Blinn-Phong pega o vetor médio entre as direções da luz e da visão e o compara com a normal: pow(max(dot(n, normalize(l + v)), 0.0), shininess).

Os dois são um produto escalar elevado a uma potência. A potência, muitas vezes chamada de shininess, aperta o brilho: um valor baixo dá o lustro largo da borracha, um alto o pontinho do verniz. Blinn-Phong foi o modelo das engines por décadas e é o que vale usar. O vetor refletido de Phong pode ficar a mais de 90° da direção de visão enquanto a luz ainda está na frente da superfície, então com shininess baixo o brilho é cortado por uma borda dura; o vetor médio fica a menos de 90° da normal nesses casos. Blinn-Phong também precisa de duas a quatro vezes o expoente de Phong para um brilho do mesmo tamanho, bom saber ao passar valores de um para o outro.

A cor do brilho diz qual é o material. Plásticos, tinta e outros dielétricos refletem a luz sem tingi-la, então o brilho deles fica com a cor da luz enquanto a parte difusa carrega a tinta. Metais tingem o brilho com a própria cor e quase não têm parte difusa. O sombreamento fisicamente baseado troca a curva de potência por uma distribuição de microfacetas como a GGX e acrescenta Fresnel e conservação de energia, mas o vetor médio continua no centro.

Leitura complementar