¿Qué es el sombreado de rampa o la iluminación?

14

¿Qué es el sombreado de rampa o la iluminación y cómo funciona? ¿Es diferente al sombreado de toon o es el mismo concepto? ¿Cómo se calcula la especularidad de manera diferente para el sombreado de rampa versus blinn-phong o lambert?

StampyTurtle
fuente

Respuestas:

21

En el sombreado tradicional de Blinn / Phong, calcula el término difuso para un píxel midiendo el coseno del ángulo entre lo normal en la superficie y la dirección de la luz. Entonces, en este caso, un sombreador simple se vería así:

float DiffuseCoeff(in float3 pos, in float3 normal, in float3 lightPos) {
    float3 lightDir = lightPos - pos;
    lightDir.normalize();

    return max(0.0, Dot(lightDir, normal));
}

En el sombreado en rampa, la idea es modular el coeficiente difuso mediante una textura de búsqueda 1D. Dependiendo de lo que pones en esta textura, puedes generar diferentes efectos. Por lo tanto, nuestra función de sombreador para calcular el coeficiente difuso se convierte en:

texture1D rampTex;
float DiffuseCoeff(in float3 pos, in float3 normal, in float3 lightPos) {
    float3 lightDir = lightPos - pos;
    lightDir.normalize();

    // Map value from [-1, 1] to [0, 1]
    float rampCoord = Dot(lightDir, normal) * 0.5 + 0.5;
    return tex1D(rampTex, rampCoord);
}

Por ejemplo, si quisiéramos implementar un sombreador de celdas, lo que podríamos hacer es generar una textura de rampa que emule una función de paso:

ingrese la descripción de la imagen aquí

Puede usar la misma idea para generar diferentes efectos para la iluminación especular también. El sombreado "Rampa" en realidad solo se refiere a la idea de modular un valor de sombreado por una textura.

EDITAR : Team Fortress 2 utiliza un sombreador de rampa en su renderizado. Puede consultar los detalles en este documento:

http://www.valvesoftware.com/publications/2007/NPAR07_IllustrativeRenderingInTeamFortress2.pdf

Consulte la Sección 5, en la subsección titulada "Función de deformación difusa"

Mokosha
fuente
1
¡Gran respuesta! La explicación de la diferencia de iluminación entre iluminación difusa y de rampa es exactamente lo que estaba buscando. También aprecio el comentario sobre cuál es el concepto de sombreado de rampa en general. Como comentario adicional, ¿podrías publicar una imagen de ejemplo de un juego que use este concepto?
StampyTurtle
@Stampyturtle He actualizado mi respuesta con un ejemplo.
Mokosha