Por que os mapas normais do espaço tangente não são completamente azuis?

11

Por que os mapas normais não são apenas azuis? Eu acho que os mapas normais devem ser predominantemente de cor azul porque o componente Z do normal é representado por azul. Os normais apontam para fora da superfície na direção Z, portanto devemos ver o azul como a cor predominante, pois o componente Z é dominante.

Por definição, o espaço tangente é perpendicular à superfície. A qualquer momento, devemos ter o normal sempre apontando na Z (direção azul) sem X (direção vermelha) ou Y (direção verde). Assim, o mapa normal (já que é um "mapa normal") deve ter a cor dos normais, que é apenas azul (R = x = 0, G = y = 0, B = z = 1) sem sombras no meio.

Mas mapas normais não são assim, e eles têm gradientes de tons neles. Porque isto é assim?

cavalo marinho
fonte

Respostas:

19

O espaço tangente é perpendicular às normais geométricas - as normais de vértices interpoladas dos polígonos. O mapa normal fornece as normais de sombreamento , relativas ao espaço tangente definido pelas normais geométricas. Quando as normais de sombreamento não são iguais às geométricas - ou seja, porque você tem uma textura de superfície detalhada com recursos que não são modelados na geometria - o mapa normal se desvia do "azul liso" (RGB 128, 128, 255).

Esse é o objetivo de todos os mapas normais - é assim que você faz com que a forma detalhada e em pequena escala de uma superfície seja representada por iluminação e sombreamento, mesmo que você não tenha modelado todos esses pequenos detalhes com polígonos.

Nathan Reed
fonte
1
Para elaborar, os mapas normais geralmente são feitos no espaço tangente, pois isso permanece preciso quando a malha é animada, enquanto, por exemplo, os mapas normais do espaço do modelo exigiriam que os mapas normais fossem animados em conjunto com qualquer animação que você possa ter (o que seria especialmente complicado com esqueletos e bonecas de pano arbitrárias, por exemplo). Para geometria estática, não há motivo técnico para você não ter um mapa normal de espaço de modelo e não totalmente azul, simplificando um pouco o sombreador de pixels (às custas da consistência, exigindo mais sombreamentos e, por sua vez, exigindo mais sombreador mudanças na seleção).
MaulingMonkey
1
(também dados de mapas normais normalmente não podem ser reutilizados em vários lugares em uma malha se no espaço do modelo)
MaulingMonkey
+1; o parágrafo final é a chave para a pergunta - se a superfície em que eles estavam deveria ser completamente plana, eles seriam azuis. Se a superfície deveria ter alguma rugosidade, o mapa normal modela essa rugosidade sem a necessidade de especificar geometria extra.
Maximus Minimus
2

A resposta simples é que é por causa do desvio de alcance.

As normais têm um intervalo de -1,0 a 1,0, para cada componente (x, y, z). O mapa normal, armazenado como uma imagem RGB de 24 bits, por outro lado, possui um intervalo de 0 a 255 para cada componente.

Isso significa que quaisquer componentes que sejam zero se tornam 127,5 (o meio exato) no mapa normal (que arredonda para 128).

O vetor normal (0,0,1) se torna (128,128,255) na imagem normal do mapa, que é uma cor arroxeada, em vez de azul puro (0,0,255).

GraphixGuy
fonte