El sombreado se refiere a la representación de la percepción de profundidad en modelos 3D (dentro del campo de los gráficos de computadora 3D ) o ilustraciones (en el arte visual ) al variar el nivel de oscuridad . [1] El sombreado intenta aproximarse al comportamiento local de la luz en la superficie del objeto y no debe confundirse con técnicas de adición de sombras, como el mapeo de sombras o los volúmenes de sombras , que caen dentro del comportamiento global de la luz.
El sombreado se utiliza tradicionalmente en el dibujo para representar una gama de oscuridad aplicando medios de forma más densa o con un tono más oscuro para las áreas más oscuras, y de forma menos densa o con un tono más claro para las áreas más claras. Los patrones de luz, como los objetos que tienen áreas claras y sombreadas, ayudan a crear la ilusión de profundidad en el papel. [2] [3]
Existen varias técnicas de sombreado, entre ellas el rayado cruzado , en el que se dibujan líneas perpendiculares de distinta proximidad en un patrón de cuadrícula para sombrear un área. Cuanto más juntas estén las líneas, más oscura aparecerá el área. Del mismo modo, cuanto más separadas estén las líneas, más clara aparecerá el área.
El sombreado con polvo es un método de sombreado para bocetos . En este estilo, se utilizan polvos para difuminar y difuminadores de papel para dibujar una imagen. (Esto también está disponible en color). El polvo para difuminar es suave y no tiene partículas brillantes. El papel que se utilice debe tener granos pequeños para que el polvo permanezca en el papel.
En gráficos de computadora , el sombreado se refiere al proceso de alterar el color de un objeto/superficie/polígono en la escena 3D, en función de cosas como (pero no limitado a) el ángulo de la superficie con respecto a las luces, su distancia de las luces, su ángulo con respecto a la cámara y las propiedades del material (por ejemplo, la función de distribución de reflectancia bidireccional ) para crear un efecto fotorrealista .
El sombreado se realiza durante el proceso de renderizado mediante un programa llamado shader .
El sombreado altera los colores de las caras en un modelo 3D según el ángulo de la superficie con respecto a una fuente de luz o fuentes de luz.
La primera imagen que aparece a continuación muestra las caras de la caja, pero todas en el mismo color. También se han representado las líneas de los bordes, lo que hace que la imagen sea más fácil de ver.
La segunda imagen es el mismo modelo renderizado sin líneas en los bordes. Es difícil distinguir dónde termina una cara de la caja y dónde empieza la siguiente.
La tercera imagen tiene el sombreado habilitado, lo que hace que la imagen sea más realista y permite ver más fácilmente qué cara es cuál.
Cuando un sombreador calcula el color del resultado, utiliza un modelo de iluminación para determinar la cantidad de luz reflejada en puntos específicos de la superficie. Se pueden combinar distintos modelos de iluminación con distintas técnicas de sombreado: mientras que la iluminación indica cuánta luz se refleja, el sombreado determina cómo se utiliza esta información para calcular el resultado final. Por ejemplo, puede calcular la iluminación solo en puntos específicos y utilizar la interpolación para completar el resto. El sombreador también puede decidir cuántas fuentes de luz debe tener en cuenta, etc.
Una fuente de luz ambiental representa una fuente de luz omnidireccional, de intensidad y color fijos que afecta a todos los objetos de la escena por igual (es omnipresente). Durante la renderización, todos los objetos de la escena se iluminan con la intensidad y el color especificados. Este tipo de fuente de luz se utiliza principalmente para proporcionar a la escena una vista básica de los diferentes objetos que contiene. Este es el tipo de iluminación más simple de implementar y modela cómo la luz se puede dispersar o reflejar muchas veces, produciendo así un efecto uniforme.
La iluminación ambiental se puede combinar con la oclusión ambiental para representar el grado de exposición de cada punto de la escena, lo que afecta la cantidad de luz ambiental que puede reflejar. Esto produce una iluminación difusa y no direccional en toda la escena, sin proyectar sombras claras, pero con áreas cerradas y protegidas oscurecidas. El resultado suele ser visualmente similar a un día nublado.
La luz se origina en un único punto y se propaga en todas direcciones.
Modela un foco : la luz se origina en un único punto y se propaga hacia el exterior formando un cono .
La luz se origina en un área pequeña en un solo plano . (Un modelo más realista que una fuente de luz puntual).
Una fuente de luz direccional ilumina todos los objetos por igual desde una dirección determinada , como una luz de área de tamaño infinito y distancia infinita de la escena; hay sombreado, pero no puede haber ninguna disminución de la distancia. Esto es como el sol .
En teoría, dos superficies paralelas reciben una iluminación prácticamente igual a partir de una fuente de luz distante y sin obstáculos, como el sol. El efecto de atenuación de la distancia produce imágenes con más sombreado, por lo que serían realistas para fuentes de luz próximas.
La imagen de la izquierda no utiliza la reducción de distancia. Observe que los colores de las caras frontales de las dos cajas son exactamente iguales. Puede parecer que hay una ligera diferencia en el lugar donde las dos caras se superponen directamente, pero se trata de una ilusión óptica causada por el borde vertical que se encuentra debajo, donde se encuentran las dos caras.
La imagen de la derecha sí utiliza la atenuación de la distancia. Observe que la cara frontal de la caja más cercana es más brillante que la cara frontal de la caja posterior. Además, el piso pasa de claro a oscuro a medida que se aleja.
La disminución de la distancia se puede calcular de varias maneras:
Durante el sombreado, a menudo se necesita una normal de superficie para calcular la iluminación. Las normales se pueden calcular previamente y almacenar para cada vértice del modelo.
Aquí, la iluminación se evalúa solo una vez para cada polígono (generalmente para el primer vértice del polígono, pero a veces para el centroide en el caso de las mallas triangulares), según la normal de la superficie del polígono y suponiendo que todos los polígonos son planos. El color calculado se utiliza para todo el polígono, lo que hace que las esquinas se vean nítidas. Esto se suele utilizar cuando las técnicas de sombreado más avanzadas son demasiado costosas desde el punto de vista computacional. Los reflejos especulares se representan de forma deficiente con el sombreado plano: si hay un componente especular grande en el vértice representativo, ese brillo se dibuja de manera uniforme sobre toda la cara. Si un reflejo especular no cae sobre el punto representativo, se omite por completo. En consecuencia, el componente de reflexión especular generalmente no se incluye en el cálculo del sombreado plano.
A diferencia del sombreado plano, en el que los colores cambian de forma discontinua en los bordes de los polígonos, en el sombreado suave el color cambia de píxel a píxel, lo que da como resultado una transición de color suave entre dos polígonos adyacentes. Por lo general, primero se calculan los valores en los vértices y se utiliza la interpolación bilineal para calcular los valores de los píxeles entre los vértices de los polígonos. Los tipos de sombreado suave incluyen el sombreado Gouraud [4] y el sombreado Phong [5] .
Problemas:
El sombreado Phong es similar al sombreado Gouraud, excepto que en lugar de interpolar las intensidades de luz, se interpolan las normales entre los vértices y la iluminación se evalúa por píxel. Por lo tanto, los reflejos especulares se calculan con mucha más precisión que en el modelo de sombreado Gouraud.
El sombreado diferido es una técnica de sombreado mediante la cual el cálculo del sombreado se pospone a una etapa posterior mediante la renderización en dos pasadas, lo que aumenta potencialmente el rendimiento al no descartar píxeles sombreados que resultan costosos. La primera pasada solo captura los parámetros de la superficie (como la profundidad, las normales y los parámetros del material), la segunda realiza el sombreado real y calcula los colores finales. [6] [7] [8] : 884
Tanto el sombreado Gouraud como el sombreado Phong se pueden implementar utilizando interpolación bilineal . Bishop y Weimer [9] propusieron utilizar una expansión en serie de Taylor de la expresión resultante de aplicar un modelo de iluminación y una interpolación bilineal de las normales. Por lo tanto, se utilizó la interpolación polinomial de segundo grado. Este tipo de interpolación bicuadrática fue elaborada con más detalle por Barrera et al., [10] donde se utilizó un polinomio de segundo orden para interpolar la luz difusa del modelo de reflexión Phong y otro polinomio de segundo orden para la luz especular.
Kuij y Blake [11] utilizaron la interpolación lineal esférica ( Slerp ) para calcular tanto la normal sobre el polígono como el vector en la dirección de la fuente de luz. Hast [12] propuso un enfoque similar que utiliza la interpolación de cuaterniones de las normales con la ventaja de que la normal siempre tendrá una longitud unitaria y se evita la normalización, que requiere mucho cálculo.
En la visión artificial , algunos métodos de reconstrucción 3D se basan en el sombreado o en la forma a partir del sombreado . En función del sombreado de una imagen, se puede reconstruir un modelo tridimensional a partir de una única fotografía. [13]