Taller de Computación Gráfica Capítulo IV.- Iluminación y sombreado IV.1.- Modelo de Iluminación IV.1.1.- Luz ambiental Corresponde al modelo en el cual cada objeto se presenta con una intensidad intrínseca. Se puede considerar este modelo, que no tiene una fuente de luz externa, como la descripción de un mundo ligeramente irreal de objetos no reflejantes y autoluminosos. En este caso cada objeto aparece como una silueta monocromática, a menos que sus partes individuales, como los polígonos de un poliedro, reciban matices diferentes al crear el objeto. Un iluminación modelo se de puede expresar con una ecuación de iluminación de variables asociadas con el punto en el objeto que se sombrea. La ecuación de iluminación que expresa este sencillo modelo es: I = Ki; donde I es la intensidad resultante y el coeficiente Ki es la intensidad intrínseca del objeto. Como esta ecuación de iluminación no contiene términos que dependan de la posición del punto que se sombrea, se puede evaluar I una vez por cada objeto. Profesor : Javier Vidal Valenzuela Taller de Computación Gráfica El proceso de evaluación de la ecuación de iluminación en uno o más puntos de un objeto se conoce como Iluminación del Objeto. Imaginemos ahora que un lugar de Autoluminosidad hay una fuente luminosa difusa no direccional, producto de reflexiones múltiples de la luz en las superficies presente en el ambiente. Esto se conoce como luz ambiental. Si suponemos que la luz ambiental afecta de la misma forma a todas las superficies desde todas las direcciones, nuestra ecuación se convierte en: I = Ia * Ka Ia es la intensidad de la luz ambiental (constante para todos los objetos); y, Ka es la cantidad de luz ambiental reflejado por la superficie de un objeto, su valor está entre 0 y 1 y se conoce como el Coeficiente de Reflexión Ambiental. Este valor es una propiedad material no una propiedad física IV.1.2.- Reflexión difusa En este caso se requiere una fuente luminosa puntual cuyos rayos emanan uniformemente en todas las direcciones a partir de un único punto. La brillantez de un objeto varia de una parte a otra, dependiendo de la dirección y la distancia de éste con respecto a la fuente luminosa. Profesor : Javier Vidal Valenzuela L Taller de Computación Gráfica IV.1.3.- Reflexión Lambertiana Se trata de superficies que aparecen con la misma brillantez desde todos los ángulos de observaciones, pues reflejan la luz con igual intensidad en todas las direcciones. El fenómeno puede se descrito por la siguiente figura: N dA θ dA cos θ Haz de luz Sup.2 Sup.1 En la figura se ilustra un haz que intercepta una superficie de tamaño dA infinitesimalmente pequeña. Este mismo haz luminoso intercepta la superficie 2 en un área dA/cosθ. Entonces, para un haz luminoso incidente, la cantidad de energía luminosa que cae en dA es proporcional a cosθ. En segundo lugar, se debe considerar la cantidad de luz que ve el observador. Las superficies lambertianas tienen la propiedad de que la cantidad de luz que reflejan hacia el observador proporcional en un al área coseno diferencial del ángulo dA es entre la directamente dirección al observador y el vector normal N, esto es independiente del material. N θ L dA cos θ I (en dA) = Ifte * cos θ Con esto la ecuación de iluminación difusa es: I = Ip * Kd * cos φ = Ip * Kd * (N • L), Profesor : Javier Vidal Valenzuela Taller de Computación Gráfica N y L son vectores normalizados, N normal a la superficie en el punto a calcular y L apuntando a la fuente de luz. Ip es la intensidad de la fuente luminosa puntual. Kd es el coeficiente de reflexión difusa del material, el cual es una constante entre 0 y 1 y varía de un material a otro. El ángulo φ debe estar entre 0º y 90º para que tenga efecto directo en el punto sombreado (superficie autocluyente) Esferas iluminadas usando modelo de reflexión difusa. De izquierda a derecha: Kd toma los valores 0.4, 0.55, 0.7, 0.85 y 1.0 Es común añadir a la formulación un término de ambiente para obtener una ecuación de iluminación más realista I = Ia * Ka + Ip * Kd * (N • L) Esferas iluminadas usando reflexión ambiental y difusa. Para todas las esferas Ia = Ip = 1.0, Kd = 0.4, de izquierda a derecha: Ka toma los valores 0.0, 0.15, 0.30, 0.45 y 0.60 IV.1.4.- Atenuación A la formulación anterior se puede agregar un factor que simule la distancia de la fuente de luz al objeto, este es el factor de atenuación (fatt) : I = Ia * Ka + Ip * Kd * (N • L) * fatt Profesor : Javier Vidal Valenzuela Taller de Computación Gráfica Si la luz está muy lejos fatt no debería ser percibido y si la fuente de luz está muy cerca fatt debería variar considerablemente. Por tanto, en general se usará: fatt = min(1/(C1 + C2 * dL + C3 * dL2), 1) C1, C2 y C3 son constantes definidas por el usuario relacionadas con la fuente luminosa. Esferas sombreadas usando reflexión ambiental y difusa con un término de atenuación de fuente luminosa. Para todas las esferas Ia = Ip = 1.0, Ka = 0.1, Kd = 0.9. De izquierda a derecha, la distancia de la esfera a la fuente luminosa es 1.0, 1.375, 1.75, 2.125 y 2.5. Fila superior C1 = C2 = 0.0, C3 = 1.0 (1/dL2). Fila central C1 = C2 = 0.25, C3 = 0.5. Fila inferior C1 = 0.0, C2= 1.0, C3 = 0.0 (1/dL). IV.1.5.- Reflexión especular La reflexión especular se puede observar en cualquier superficie brillante. Por ejemplo, al iluminar una manzana con una luz blanca brillante: el punto de máximo brillo (highlight) es ocasionado por la reflexión especular, mientras que la luz reflejada del resto de la manzana es el resultado de la luz difusa. En el punto de máximo brillo la manzana aparece blanca, el color de la luz incidente. Profesor : Javier Vidal Valenzuela Taller de Computación Gráfica En un espejo perfecto α = 0, sólo N en la dirección del vector R se puede ver R L la reflexión de la luz (reflecto perfecto). θθ α En este caso el vector V representa la V dirección del observador. IV.1.6.- Modelo de Phong Phong Bli-Tong desarrolló un modelo de iluminación para reflectores imperfectos. El modelo supone que la máxima reflectancia especular ocurre cuando α es cero y decrece rápidamente conforme aumenta α. Esta caída rápida se aproxima por cosnα, donde n es el exponente de reflexión especular del material. La cantidad de luz incidente que se refleja especularmente depende del ángulo de incidencia θ. Si W(θ) es la fracción de luz reflejada especularmente, el Modelo de Phong queda: I = Ia * Ka + fatt * Ip * [Kd * cosθ + W(θ) * cosnα] Si se utilizan vectores normalizados (R y V), si Ks, que corresponde al coeficiente de reflexión especular del material, reemplaza a W(θ, conservando su valor, el que varía entre 0 y 1, seleccionándolo empíricamente para producir resultados atractivos y si, además, se consideran los componentes de un modelo de colores (Odλ) de la luz difusa, entonces el modelo de Phong queda: Profesor : Javier Vidal Valenzuela Taller de Computación Gráfica Iλ = Iaλ * Ka * Odλ + fatt * Ipλ * [Kd * Odλ * (N•L) + Ks * (R•V)n] donde Odλ Componente difuso perteneciente a la longitud de onda λ. Iaλ Componente λ de la iluminación ambiental Ipλ Componente λ de la iluminación puntual que produce reflexión difusa y especular. Esferas sombreadas usando de iluminación de Phong. Para todas las esferas Ia = Ip = 1.0, Ka = 0.1, Kd = 0.45. De izquierda a derecha, n toma valores 3.0, 5.0, 10.0, 27.0, 200.0. De arriba hacia abajo Ks toma valores 0.1, 0.25 y 0.5. IV.1.7.- Cálculo del Vector de Reflexión Para el cálculo del vector de reflexión R se requiere reflejar el vector L sobre la normal a la superficie N como se muestra en la figura: R = N * cos θ + S L N R θθ α V N cos θ Profesor : Javier Vidal Valenzuela pero S = N * cos θ - L ⇒ R = 2 * N * cos θ - L como N•L = cos θ y R•V = cos α ⇒ R = 2 * N * (N•L) - L ⇒ R = 2 * N * (N•L) - L ⇒ R•V = (2 * N * (N•L) - L) * V Taller de Computación Gráfica Si la fuente luminosa está en el infinito N•L es constante para un polígono, mientras que R•V varía a través del polígono. En el caso de superficies curvas o de una fuente luminosa que no está en el infinito, tanto N•L como R•V varían a través de la superficie. IV.1.8.- El Vector Intermedio Una formulación alternativa del vector intermedio H, la dirección de este H N modelo de iluminación de Phong utiliza el L vector esta exactamente entre la dirección del β R θθ α V vector L de iluminación y el vector V del observador. También se conoce como la dirección de realces máximos (en el sentido que se vería el punto de máximo brillo especular). El nuevo término de reflexión especular puede expresarse como (N•H)n, donde H = (L + V)/|L + V| cuando la fuente luminosa están en el ∞. La ventaja computacional de utilizar N•H es que H es constante. IV.1.9.- Fuentes Luminosas Múltiples Si se suman m fuentes luminosas, los términos de cada una de ellas deben agregarse a la fórmula, quedando esta como: Iλ = Iaλ * Ka * Odλ + Σ i=1,n (fatti * Ipλi * [Kd * Odλ * (N•Li ) + Ks (Ri•V) n]) Profesor : Javier Vidal Valenzuela Taller de Computación Gráfica IV.2.- Modelo de Sombreado para Polígonos IV.2.1.- Sombreado constante También conocido como sombreado facetadon o plano, este método aplica un modelo de iluminación sólo una vez, el cual permite determinar un valor de Iλ para un polígono. Este método es válido si son válidos los siguientes supuesto: 1. La fuente de iluminación está en el infinito, luego N•L es constante para el polígono. 2. El observador está en el infinito, por tanto N•V es constante para cada polígono. 3. El polígono representa una superficie real y no una aproximación a una superficie curva. IV.2.2.- Sombreado Interpolado Como alternativa a la evaluación de la ecuación de iluminación en cada punto del polígono, existe el sombreado interpolado, en el cual la información de sombreado se interpola linealmente sobre un triángulo a partir de los valores determinados para sus vértices. Gouraud generalizó esta técnica para polígonos arbitrarios. Este método es muy fácil de usar en un algoritmo de línea de barrido que interpola el valor de z en un tramo a partir de valores de z interpolados que se calculan para los puntos extremos del tramo. Es recomendable usar una ecuación de diferencias para aumentar la eficiencia en la determinación del valor de z en cada Profesor : Javier Vidal Valenzuela Taller de Computación Gráfica pixel. Aunque la interpolación z es físicamente correcta (suponiendo que el polígono es plano), observe que el sombreado interpolado no lo es, ya que sólo aproxima la evaluación del modelo de iluminación en cada punto del polígono. A continuación analizaremos cómo generar una malla poligonal para que sea lo más parecida posible a una superficie curva. IV.2.3.- Sombreado de una Malla Poligonal Si aproximar se quiere una superficie curva a través de una malla de polígonos y cada faceta se sombrea individualmente entonces cada polígono será claramente distinguible de sus polígonos vecinos. Esto ocurre si se utiliza sombreado constante, interpolado o incluso si se calcula la iluminación para cada píxel, ya que dos polígonos adyacentes con orientación distinta tienen diferentes intensidades en sus fronteras. Aunque la malla sea más fina no se logrará una mejora debido al Efecto de Banda de Mach. Este efecto es ocasionado por la inhibición de laterales de los receptores del ojo. Los modelos de sombreado de polígonos que hemos visto determinan la sombra de un polígono individualmente. Los siguientes modelos de sombreado para Profesor : Javier Vidal Valenzuela Taller de Computación Gráfica mallas poligonales aprovechan la información proporcionada por los polígonos adyacentes para simular una superficie suave. IV.2.4.- Sombreado de Gouraud Este modelo utiliza fundamentalmente la interpolación, aunque no se elimina completamente el efecto de la banda de Mach. El siguiente paso en el sombreado de N1 Gouraud es encontrar las intensidades de los vértices. Esto se hace usando las normales a N2 N4 los vértices y cualquier modelo de iluminación. Luego cada polígono se sombrea a lo largo de las aristas usando interpolación lineal de las N3 intensidades de los vértices. Σi=1,n Ni Nv = |Σ i=1,n Ni| Finalmente, se interpola entre las aristas a lo largo de las líneas de barrido. Profesor : Javier Vidal Valenzuela Taller de Computación Gráfica I1 y1 Ia ys y2 Ip Ib - ys y2 ys y3 yp ya I2 y3 IV.2.5.- y1 Ia = I1 - (I1 - I2)* y1 y Ia = I1 - (I1 - I3)* y1 1 Y Ip = Ib - (Ib - Ia)* b Yb I3 Sombreado de Phong También llamado sombreado de interpolación de normales, por que interpola el vector normal a la superficie en lugar de la intensidad. La interpolación ocurre en un tramo de polígono sobre una línea de rastreo, entre las normales inicial y final del tramo. Na Nb Nc N1 N0 P0 Pa Profesor : Javier Vidal Valenzuela Pb Pc P1 Taller de Computación Gráfica A su vez, estas normales se interpolan en las aristas de los polígonos a partir de normales a vértices que se calculan como en el sombreado de Gouraud. Profesor : Javier Vidal Valenzuela