Normales de superficie

Nivel UniversitarioDificultad ★★★★★Aplicación⌖ Ver en el mapa

¿Qué es?

El vector unitario perpendicular a una superficie en un punto. Para una superficie implícita F=0F = 0 es ∇F/∥∇F∥\nabla F/\norm{\nabla F}; para una paramétrica r(u,v)r(u,v), el producto vectorial normalizado ru×rvr_u \times r_v. Todo cálculo de iluminación empieza por ella.

¿Por qué existe?

La luz se refleja según el ángulo entre el rayo que llega y la superficie. Ese ángulo se mide respecto de la normal, y la normal es una derivada: el gradiente apunta a través de los conjuntos de nivel, así que es perpendicular a la superficie F=0F = 0.

Fórmulas

n=∇F∥∇F∥,n=ru×rv∥ru×rv∥n = \frac{\nabla F}{\norm{\nabla F}}, \qquad n = \frac{r_u \times r_v}{\norm{r_u \times r_v}}
z=h(x,y)  ⟹  n∝(−hx, −hy, 1)z = h(x, y) \implies n \propto \big(-h_x,\ -h_y,\ 1\big)
mapas de alturas y bump maps

Ejemplo

Esfera F=x2+y2+z2−R2F = x^2 + y^2 + z^2 - R^2: ∇F=2(x,y,z)\nabla F = 2(x, y, z), así que la normal en un punto es el propio punto dividido entre RR, radial como cabía esperar. Un bump map perturba hh con una textura y recalcula nn a partir de sus derivadas parciales: geometría plana que parece rugosa.

¿Por qué importa?

Unas normales mal calculadas son el error de renderizado más visible; los normal maps son como los videojuegos muestran detalle sin millones de triángulos.

Las matemáticas que hay detrás

  • Gradiente★★★★★fundamental

    La normal de una superficie implícita F=0F = 0 es ∇F/∥∇F∥\nabla F/\norm{\nabla F}.

  • Superficies y conjuntos de nivel★★★★★fundamental

    Las normales de superficies paramétricas salen de ru×rvr_u \times r_v; las de implícitas, de ∇F\nabla F.

¿Dónde se utiliza?

Temas de informática a los que se llega desde aquí, con la cadena de ideas que lleva a ellos:

Qué depende de él

↑ ↓ para navegar · ↵ · Esc