El sombreado Gouraud ( / ɡ uː ˈ r oʊ / goo- ROH ), llamado así en honor a Henri Gouraud , es un método de interpolación utilizado en gráficos por computadora para producir un sombreado continuo de superficies representadas por mallas poligonales . En la práctica, el sombreado Gouraud se utiliza con mayor frecuencia para lograr una iluminación continua en mallas triangulares calculando la iluminación en las esquinas de cada triángulo e interpolando linealmente los colores resultantes para cada píxel cubierto por el triángulo. Gouraud publicó la técnica por primera vez en 1971. [1] [2] [3] Sin embargo, el soporte mejorado de hardware para modelos de sombreado superiores ha hecho que el sombreado de Gouraud quede en gran medida obsoleto en el renderizado moderno.
El sombreado Gouraud funciona de la siguiente manera: se especifica una estimación de la superficie normal de cada vértice en un modelo 3D poligonal para cada vértice o se calcula promediando las normales de superficie de los polígonos que se encuentran en cada vértice. Utilizando estas estimaciones, se realizan cálculos de iluminación basados en un modelo de reflexión, por ejemplo, el modelo de reflexión de Phong , para producir intensidades de color en los vértices. Para cada píxel de la pantalla cubierto por la malla poligonal, las intensidades de color se pueden interpolar a partir de los valores de color calculados en los vértices.
El sombreado Gouraud se considera superior al sombreado plano y requiere mucho menos procesamiento que el sombreado Phong , pero normalmente da como resultado un aspecto facetado.
En comparación con el sombreado Phong, la fuerza y la debilidad del sombreado Gouraud residen en su interpolación. Si una malla cubre más píxeles en el espacio de la pantalla que vértices, interpolar valores de color de muestras de costosos cálculos de iluminación en los vértices consume menos procesador que realizar el cálculo de iluminación para cada píxel como en el sombreado Phong. Sin embargo, los efectos de iluminación muy localizados (como las luces especulares , por ejemplo, el destello de la luz reflejada en la superficie de una manzana) no se representarán correctamente, y si una luz se encuentra en el medio de un polígono, pero no se extiende al polígono vértice, no será evidente en una representación de Gouraud; por el contrario, si se produce un resaltado en el vértice de un polígono, se representará correctamente en este vértice (ya que aquí es donde se aplica el modelo de iluminación), pero se distribuirá de forma poco natural entre todos los polígonos vecinos mediante el método de interpolación.
El problema se detecta fácilmente en una representación que debería tener un resaltado especular que se mueve suavemente sobre la superficie de un modelo a medida que gira. En cambio, el sombreado Gouraud producirá un resaltado que aparece y desaparece continuamente en las partes vecinas del modelo, alcanzando un máximo de intensidad cuando el resaltado especular deseado se alinea con un vértice del modelo. Si bien este problema se puede solucionar aumentando la densidad de los vértices del objeto, en algún momento los rendimientos decrecientes de este enfoque favorecerán el cambio a un modelo de sombreado más detallado.
El artículo original de Gouraud describía la interpolación lineal de colores. [1] En 1992, Blinn publicó un algoritmo eficiente para la interpolación hiperbólica [4] que se utiliza en GPU como una alternativa correcta en perspectiva a la interpolación lineal. Tanto la variante lineal como la hiperbólica de interpolación de colores de vértices a píxeles se denominan comúnmente "sombreado Gouraud".
Cualquier interpolación lineal de intensidad provoca discontinuidades derivadas que desencadenan bandas de Mach , un artefacto visual común del sombreado de Gouraud.