1
Iluminación (I)
Lab. de Visualización y Computación Gráfica Dpto. de Ciencias e Ingeniería de la Computación
Universidad Nacional del Sur
Introducción
S. Castro, N. Gazcón CG 2015
Vimos que la generación de una escena 3D requiere 3 componentes
esenciales:
• El mundo 3D de los objetos
• La o las fuentes de luz
• La cámara o el ojo que observa la escena
Hemos visto cómo modelar objetos, cómo generar una escena a
partir de éstos, cómo manipular la cámara para verlos y cómo
presentarlos en pantalla.
¿Cómo se generan las imágenes en el mundo real?
• La luz sale de una fuente de luz y viaja en línea recta en el espacio.
• La luz incide sobre, se refleja y posiblemente pasa a través de los
objetos.
• Los efectos atmosféricos podrían modificar la luz mientras ésta viaja
• La luz finalmente llega al observador (o a la cámara)
Introducción
S. Castro, N. Gazcón CG 2015
Iluminación
Percepción
Reflectancia
Supongamos que construimos un modelo de una esfera usando
muchos polígonos y la pintamos con un determinado color.
Tendremos algo como esto:
pero nosotros queremos
Introducción
S. Castro, N. Gazcón CG 2015
Introducción
S. Castro, N. Gazcón CG 2015
¿Qué hace que una esfera se vea más real?
Las interacciones luz-material de la esfera hacen que cada punto tenga un
color o sombreado diferente. Necesitamos entonces tener en cuenta:
• Las fuentes de luz
• Las propiedades del material
• La ubicación del observador
• La orientación de la superficie con respecto a la luz y
al observador
Introducción
S. Castro, N. Gazcón CG 2015
Veremos entonces distintos métodos para renderizar una escena.
Para ello debemos contar con modelos que nos permitan describir
cómo la luz que emana de una fuente determinada interactuará con
los objetos de la escena y cómo esto se refleja en la imagen en
pantalla. Es decir que:
Objetivo
Dado un modelo geométrico, usualmente en la forma de red
poligonal, se debe crear una imagen rasterizada que parezca lo
más real posible (fotorrealística) y esto debe lograrse en tiempos
interactivos.
2
Introducción
S. Castro, N. Gazcón CG 2015
Para lograr nuestro objetivo debemos :
- Contar con los modelos necesarios que permitan producir
imágenes rasterizadas que parezcan fotorrealísticas.
- Este modelo debe estar basado en la interacción de la luz con la
materia.
- El tiempo de renderizado debe ser lo más rápido posible.
Introducción
S. Castro, N. Gazcón CG 2015
Es impráctico simular todos los principios físicos de dispersión y absorción
de la luz. Se han desarrollado distintos modelos aproximados que, sin ser
reales, producen buenos niveles de realismo.
Hemos visto cómo modelar objetos, como crear una escena y cómo
renderizarla mediante un rendering wireframe.
S. Castro, N. Gazcón CG 2015
Introducción a los
Modelos de Iluminación
S. Castro, N. Gazcón CG 2015
Introducción
S. Castro, N. Gazcón CG 2015
El mecanismo de interacción de la luz con una superficie es muy
complejo y depende de muchos factores.
Algunos de éstos son geométricos, tales como la dirección relativa
de las fuentes de luz, el ojo del observador y la normal a la
superficie en cada punto. Otros están relacionados con las
características de la superficie, tales como su rugosidad y su color.
Un modelo de iluminación determina cómo la luz es absorbida o
dipersada (reflejada, transmitida, refractada) desde una superficie.
Veremos algunos de los modelos de iluminación utilizados en
Computación Gráfica.
Interacción
S. Castro, N. Gazcón CG 2015
Reflexión
3
Interacción
S. Castro, N. Gazcón CG 2015
Refracción
Ley de Snell
n1 sen 1 = n2 sen 2
Interacción
S. Castro, N. Gazcón CG 2015
Refracción vmedio= c/nmedio
c = 3*108 m/s
nmedio= índice de refracción
en un determinado medio
Ley de Snell
n1 sen 1 = n2 sen 2
Interacción
S. Castro, N. Gazcón CG 2015
Dispersión
El índice de refracción es diferente para diferentes longitudes de
onda
Interacción
S. Castro, N. Gazcón CG 2015
Efectos atmosféricos
Interacción
S. Castro, N. Gazcón CG 2015
Arcoiris
- Refracción, reflexión interna, dispersión
Interacción
S. Castro, N. Gazcón CG 2015
Caustics
4
Interacción
S. Castro, N. Gazcón CG 2015
Caustics
Interacción
Interferencia
S. Castro, N. Gazcón CG 2015
Interacción
Interferencia
- Si las reflexiones están en fase
(picos y valles coinciden) las
ondas se reforzarán.
- Si las ondas están fuera de fase,
se cancelarán entre sí.
S. Castro, N. Gazcón CG 2015
Interacción
Difracción
S. Castro, N. Gazcón CG 2015
Interacción
Difracción
- La superficie tiene estrías que están
espaciadas en el orden de la longitud de
onda de la luz
- Algunas longitudes de onda se reflejan en fase
y otras fuera de fase.
S. Castro, N. Gazcón CG 2015
Modelos
S. Castro, N. Gazcón CG 2015
Modelos de Iluminación (Illumination): Extraen
aquellos factores que determinan el color (o la
intensidad) en un determinado punto de una
superficie iluminada, basándose en la interacción de
la luz con el material.
Modelos de Sombreado (Shading model): Deben determinarse tanto el
muestreo de la escena como el esquema de interpolación. El muestreo de la
escena determina el tamaño de los puntos de muestra sobre la superficie sobre
los que se aplicará el modelo de iluminación. El esquema de interpolación de los
puntos restantes de la superficie se aproximará utilizando los colores de los
puntos de muestra mediante métodos interpolantes. En este proceso se asignan
colores a los pixels.
¿A qué puntos de la superficie se le aplicará el modelo
de iluminación?
5
Modelos de Iluminación
S. Castro, N. Gazcón CG 2015
Modelos de Fuentes de Luz (Light model): definen la naturaleza de
la luz que emana de una fuente de luz.
Modelos de Reflexión (Lighting): definen la intensidad de luz
reflejada desde un punto de la superficie de un objeto. En esto juegan
un rol esencial las características de la superficie.
Los Modelos de Iluminación pueden ser
empíricos (formulaciones simples que
aproximan el fenómeno observado) o
basados en la física (basados en las
interacciones de la luz con la materia).
Las fuentes de luz
S. Castro, N. Gazcón CG 2015
Tipos de Luces
S. Castro, N. Gazcón CG 2015
Se pueden simular distintos tipos de fuentes luminosas:
- Luz ambiente
- Luces omnidireccionales o puntuales (bulbo incandescente)
- Spots
- Luces lineales/ de área (ej. fluorescentes)
- Luces infinitas o direccionales (luz del sol)
Cada tipo de luz tiene su propio modelo.
Modelos de las Fuentes de Luz
S. Castro, N. Gazcón CG 2015
bI
gI
rI
I
Una fuente de luz se caracteriza por:
- Espectro de emitancia (color)
- Geometría (posición y orientación)
- Intensidad o función de luminancia I y atenuación
I es el valor escalar que se refiere a la intensidad de la componente con
longitud de onda .
Notaremos con Lp a la intensidad de iluminación que se recibe en un punto p
sobre una superficie.
Modelos de las Fuentes de Luz
S. Castro, N. Gazcón CG 2015
Luz Ambiente
abI
agI
arI
aI
La = Ia
La luz es utilizada para producir un efecto de iluminación uniforme sobre
cada punto de cada superficie en la escena. Su intensidad es constante.
Se especifica mediante:
La intensidad de iluminación La recibida en un punto p sobre una superficie
es:
Aunque cada punto de la escena recibe la misma La, veremos que cada
superficie la refleja de manera diferente.
Modelos de las Fuentes de Luz
S. Castro, N. Gazcón CG 2015
Así se ve la escena si es sombreada sólo con luz ambiente. Debe
notarse que Ra tiene sus componentes rgb.
6
Modelos de las Fuentes de Luz
S. Castro, N. Gazcón CG 2015
Luz Puntual
La luminancia de una fuente de luz puntual localizada en un punto p0 se
caracteriza por:
) ( b
I
) ( gI
) ( rI
) (
0
0
0
0
p
p
p
p I p
p0
) (attf) (p 00p I pp, IL
La intensidad de iluminación Lp en cualquier punto p sobre una superficie es:
siendo d la distancia entre p y p0
a, b, c constantes definidas por el usuario para suavizar
la iluminación de una luz puntual.
2cd bd a1
attf
El factor de atenuación está dado por:
d
Modelos de las Fuentes de Luz
S. Castro, N. Gazcón CG 2015
Spot
Se construye a partir de una fuente de luz ps
definiendo un cono para limitar los ángulos 2 a
los cuales se ve la luz desde la fuente.
ps
Is
s
ps
2
se denomina ángulo de corte del spot
Is es la dirección en la que apunta el spot
s es el vector desde ps a un punto sobre la superficie iluminada.
siendo s e Is vectores unitarios = cos –1( s • Is )
Modelos de las Fuentes de Luz
S. Castro, N. Gazcón CG 2015
Modelado de Spots más realistas
Para esto la iluminación dentro del cono se caracteriza mediante una función
f() que especifica la distribución de su luminancia ( = cos –1( s • Is )).
ps
Is
s
ps
2
e es el exponente del spot
f ()
0
Intensidad
El spot se convierte en una fuente de luz puntual si
=180º y f() es constante.
e cos )f( Intensidad
Modelos de las Fuentes de Luz
S. Castro, N. Gazcón CG 2015
Luces distantes (paralelas)
En la práctica, las fuentes de luz distantes pueden
ser tratadas como fuentes paralelas de luz; es una
buena aproximación de la luz solar.
La dirección de la luz es constante sobre toda la
superficie y se describe mediante la dirección de
la fuente de luz:.
,
1
z
y
x
0 p
0
z
y
x
0 p
S. Castro, N. Gazcón CG 2015
Luz ambiente Luz distante (paralela)
Spot Spot suavizado
Luz puntual
Modelos de las Fuentes de Luz
Modelos de Reflexión
S. Castro, N. Gazcón CG 2015
7
Modelos de Reflexión
S. Castro, N. Gazcón CG 2015
La interacción de la luz con una superficie es un fenómeno
complejo. La luz que sale de un objeto depende de la luz incidente
y de la forma y el material del objeto. El modelado de esta
interacción abarca desde los modelos muy simples a los muy
complejos.
Modelos de Reflexión
S. Castro, N. Gazcón CG 2015
Por forma nos referimos a la forma o a la geometría en gran escala
de un objeto. Las variaciones geométricas a una escala muy fina
existen como parte del material de un objeto. Cuando nos estemos
refiriendo a la geometría del objeto sabremos si ésta es parte de su
forma y/o de su material dependiendo de la escala del problema
que estemos considerando.
Modelos de Reflexión
S. Castro, N. Gazcón CG 2015
Es necesario derivar expresiones de cómo un determinado material
distribuye la energía de la luz incidente con respecto a la posición, la
dirección y la longitud de onda.
Las variaciones direccionales son esenciales en el modelado de la
apariencia. La cantidad clave en la definición de la transferencia de la luz
en una dirección particular es la radiancia. La cantidad clave para expresar
el efecto direccional de los materiales sobre la radiancia incidente es la
función de distribución de reflectancia bidireccional (BRDF, bidirectional
reflectance distribution function).
Modelos de Reflexión
Origen de las BDRF
Interacción con la superficie Interacción a nivel de subsuperficie
S. Castro, N. Gazcón CG 2015
Modelos de Reflexión
Origen de las BDRF
Interacción con la superficie Interacción a nivel de subsuperficie
S. Castro, N. Gazcón CG 2015
Modelos de Reflexión
Consideraremos distintos tipos de reflexión:
- Reflexión lambertiana o difusa
La luz se refleja igual en todas las direcciones
- Reflexión de espejo perfecto
-La luz incidente se refleja en una sola dirección
- Reflexión especular
-La luz se refleja en un lóbulo especular alrededor de la dirección de reflexión
perfecta.
S. Castro, N. Gazcón CG 2015
8
Modelos de Reflexión
Los reflectores difusos ideales reflejan la luz de acuerdo a la Ley del coseno de
Lambert. La Ley de Lambert (la intensidad de la luz reflejada es directamente
proporcional al coseno del ángulo de incidencia) determina cuánto de la luz incidente
es reflejada. En este modelo, la cantidad de energía reflejada en cualquier dirección
es constante; esto implica que es independiente del punto de vista pero depende de
la orientación de la superficie con respecto a la fuente de luz.
S. Castro, N. Gazcón CG 2015
Reflexión Difusa
Modelos de Reflexión
S. Castro, N. Gazcón CG 2015
Reflexión Especular
La reflexión especular desde un punto
de vista adiciona los puntos luminosos
(highlights) que vemos en las superficies
brillantes.
El brillo en la superficie es inversamente proporcional al tamaño del punto
luminoso. El punto luminoso es dependiente del punto de vista.
Modelos de Reflexión
Los materiales brillantes reales tienden a desviar significativamente su
comportamiento con respecto al de los reflectores ideales.
En general, esperamos que la mayoría de la luz reflejada viaje en la dirección
del rayo reflejado ideal. Sin embargo, debemos esperar que parte de la luz
reflejada desvíe su dirección de reflexión respecto a esta dirección ideal (lóbulo
de reflexión). A medida que nos alejamos más y más del rayo reflejado en el
sentido angular esperamos ver menos luz reflejada.
S. Castro, N. Gazcón CG 2015
Modelos de Reflexión
Distintos modelos de reflexión pueden modelar distintos materiales
S. Castro, N. Gazcón CG 2015
Modelos de Reflexión Simples en CG
S. Castro, N. Gazcón CG 2015
Modelo de iluminación de Phong (1975)
Es un modelo de iluminación local que aunque no verifica los requerimientos
de conservación de la energía es uno de los modelos que más se ha usado
en la práctica.
Calcula el color de un punto p sobre una superficie cuando ésta es iluminada
por una luz ambiente y una determinada cantidad de luces puntuales.
En la ecuación de iluminación se consideran tres términos: el ambiente, el
difuso y el especular. Cada término se calcula utilizando una intensidad de
iluminación Lλ recibida en un punto p y una reflexión Rλ que está relacionada
con las propiedades del material de la superficie.
Modelos de Reflexión Simples en CG
S. Castro, N. Gazcón CG 2015
El modelo de iluminación de Phong. La calidad de la imagen es la típica
esperada con este modelo de iluminación.
9
Modelo de Phong
S. Castro, N. Gazcón CG 2015
El modelo de iluminación de Phong considera que la reflexión de
una superficie consiste en tres componentes linealmente
combinadas
Inicialmente derivaremos el modelo considerando únicamente
luces y superficies monocromáticas. Luego veremos cómo se
extiende el modelo para luces y superficies coloreadas.
Luz reflejada = componente ambiente +
componente difusa +
componente especular
I = LaRa + LdRd + LsRs
Modelo de Phong
S. Castro, N. Gazcón CG 2015
Término Ambiente
La= Ia
La cantidad de luz reflejada estará dada por el coeficiente de
reflexión ambiente ka , es decir :
Ra= ka donde 0 ka 1
Por lo tanto la cantidad de luz ambiente reflejada en p estará
dada por:
Ra La= ka Ia
S. Castro, N. Gazcón CG 2015
La cantidad de luz reflejada estará dada por el coeficiente de
reflexión difusa kd y siendo también proporcional al cos , es decir :
Rd= kd cos donde 0 kd 1
Por lo tanto el término difuso en p estará dado por:
dado que L y N son vectores unitarios.
Ld Rd = fat Ip kd cos = fat Ip kd (L·N)
Ld= fat Ip
siendo fat el factor de atenuación de la fuente de luz.
Término Difuso
Modelo de Phong
S. Castro, N. Gazcón CG 2015
Término Especular
p
N
L
R
V
Ld = fat Ip
La cantidad de luz reflejada
especularmente, de acuerdo a lo
propuesto por Phong, estará dada por:
Rs = ks (cos )n donde 0 ks 1
Por lo tanto el término especular en p estará dado por:
LsRs = fat Ip ks (cos )n = fat Ip ks (R·V)n
siendo ks el coeficiente de reflexión especular y n el de brillo.
Modelo de Phong
El diagrama muestra cómo cae la reflectancia en el modelo de iluminación
de Phong en función de y de n. Para un valor de n grande, la
reflectancia decrece rápidamente con el ángulo desde el cual se mira ().
S. Castro, N. Gazcón CG 2015
LsRs = fat Ip ks (cos )n
Modelo de Phong
S. Castro, N. Gazcón CG 2015
Perfil de variación de intensidad en el modelo de Phong
IPhong = Ia ka + fatt Ip [ kd ( N L ) + ks ( R V ) n ]
L
V
Término ( R V )
R Término ( N L )
Término Ambiente
n = 10, 40 , 160
N
Modelo de Phong
10
S. Castro, N. Gazcón CG 2015
IPhong = Ambiente + Difusa + Especular
= LaRa + LdRd + LsRs
= kaIa + fat Ip kd (L·N) + fatIp ks cosn()
De acuerdo al modelo de Phong, la intensidad luminosa en un punto p visto
desde una determinada distancia a lo largo de una dirección V está dada
por la suma de tres términos:
IPhong = kaIa + fat Ip (kd (L·N) + ks (R·V)n)
Ésta se denomina ecuación de Iluminación de Phong
Incorporamos ahora tanto fuentes de luz como superficies coloreadas.
Modelo de Phong
S. Castro, N. Gazcón CG 2015
Las superficies, al igual que las fuentes de luz de color, se tratan con ecuaciones
separadas para cada componente del modelo de color. La tripla (OdR, OdG, OdB),
por ejemplo, define las componentes difusas roja, verde y azul. Por lo que, para
una dada longitud de onda, la ecuación de iluminación teniendo en cuenta los
términos ambiente y difuso es:
siendo =R,G,B respectivamente.
Una formulación alternativa usa coeficientes separados para cada componente y
sustituye ka Od por ka y kd por kd Od .
En el modelo de Phong, la iluminación para fuentes y superficies coloreadas se
define como
I = Ia ka Od + fat Ip kd Od (L·N)
I = Ia ka + fat Ip (kd (L·N) + ks (R·V)n)
Modelo de Phong
S. Castro, N. Gazcón CG 2015
Difusa Pura Con Modelo de Phong
Modelo de Phong
S. Castro, N. Gazcón CG 2015
Aumentando la difusa Aumentando la ambiente
Aumentando la especular
Ejemplos
Modelo de Phong
Modelo de Iluminación de Phong
S. Castro, N. Gazcón CG 2015
Modelo de Phong
S. Castro, N. Gazcón CG 2015
Reflexión Difusa de la Luz
Ambiente
Es constante; simula la
iluminación global o
indirecta
Modelo de Phong
11
S. Castro, N. Gazcón CG 2015
Ambiente + Difusa
Modelo de Phong
S. Castro, N. Gazcón CG 2015
Ambiente + Difusa + Especular
Modelo de Phong
Propiedades de los Materiales
S. Castro, N. Gazcón CG 2015
Modelo de Phong
S. Castro, N. Gazcón CG 2015
Usando el modelo de Phong, los objetos pueden renderizarse con distintos colores
simulando distintos materiales
Modelo de Phong
S. Castro, N. Gazcón CG 2015
Hierro Acero Acero Inox Acero de máq Bronce antiguo
Bronce pulido Cobre Bronce Níquel Zinc
Plomo Al fundido Al maquinado Magnesio Oro
Oro lustrado Oro pulido Plata Plata pulida Tungsteno
Platino Cromo Cromo Plateado Grafito Mercurio
S. Castro, N. Gazcón CG 2015
kd
ks 0.0 0.2 0.4 0.6 0.8 1.0
0.0
0.2
0.4
0.6
0.8
1.0
12
S. Castro, N. Gazcón CG 2015
ks
10
30
90
270
810
0.0 0.25 0.5 0.75 1.0
n
Modelo de Phong
S. Castro, N. Gazcón CG 2015
- Se asume que las fuentes de luz son puntos luminosos. Se ignora
cualquier distribución de intensidad.
- Se ignora cualquier geometría que no sea la normal
- Los términos difusos y especular se modelan como componentes
locales
- Se usa un modelo empírico para simular el decremento del término
especular a ambos lados del vector de reflexión
- Se asume que el color de la reflexión especular es el de la fuente de
luz
- El término global se modela como una constante no considerándose
interreflexiones.
S. Castro, N. Gazcón CG 2015
Modelo de Blinn-Phong
Este modelo también es un modelo empírico (no es un modelo teórico
correspondiente al proceso de reflexión especular) de iluminación local
Al igual que el modelo de Phong, también calcula el color de un punto p sobre
una superficie cuando ésta es iluminada por una luz ambiente y una
determinada cantidad de luces puntuales del siguiente modo:
Iblinn-Phong = Ambiente + Difusa + Especular
= Ia ka Od + fat Ip kd Od (L·N) + Especular
Modelo de Blinn-Phong
S. Castro, N. Gazcón CG 2015
Modelo de Blinn-Phong
Este modelo define un vector halfway H.
y así el nuevo término especular se calcula como (N∙H)n. El vector H
se calcula como (L+V)/|L+V| y la ecuación de iluminación es entonces:
IBlinn-Phong = Ia ka Od + fat Ip (kd Od (L·N) + ks Od (N·H)n)
Modelo de Blinn-Phong
S. Castro, N. Gazcón CG 2015
Modelo de Blinn-Phong
Además de la conveniencia computacional, Blinn notó que las reflexiones de
espejo perfecto sólo se observaban cuando la normal a la superficie está
alineada con H. En tanto la normal a la superficie macroscópica es N, a nivel
microscópico la superficie tiene variaciones de altura que resultan en muchas
orientaciones diferentes. La apertura del lóbulo especular puede pensarse
como el resultado de microsuperficies orientadas en la dirección del vector H
con una vecindad relacionada con el cos ρ.
Modelo de Blinn-Phong
Modelos de Sombreado
S. Castro, N. Gazcón CG 2015
13
S. Castro, N. Gazcón CG 2015
La iluminación retorna el color en un solo punto. ¿Cómo calculamos
la iluminación en toda la superficie del objeto?
Sombreado
Sombreado de un objeto
S. Castro, N. Gazcón CG 2015
Tratamos el problema de calcular la intensidad de la luz en un punto del
objeto.
Este cálculo puede hacerse:
- Por caras. Se usa la normal a la cara y se calcula la iluminación sobre la
misma..
- Por vértices. Se usa la normal al vértice y se interpola la iluminación en
toda la cara.
- Por pixels (o fragmentos). Es la más exaca y cara. Se interpolan las
normales sobre la cara.
Sombreado
S. Castro, N. Gazcón CG 2015
El método más simple.
- Realiza un cálculo de iluminación por polígono y se determina
así un solo valor de intensidad que se aplicada a todo el
polígono.
- Se denomina sombreado plano o constante.
Sombreado plano
La iluminación se calcula usualmente en el
centroide de la cara:
n
i
ipn
centroide1
1
S. Castro, N. Gazcón CG 2015
l Sombreado plano:
→ Trabaja bien para todos los objetos hechos con todas las caras realmente planas.
→ Si el modelo no tiene caras planas la apariencia depende de la cantidad de polígonos usados para simular caras curvas.
l Si el modelo poliédrico es una aproximación, entonces debe ser suavizado.
Sombreado plano
S. Castro, N. Gazcón CG 2015
Esto es válido cuando:
- El observador está infinitamente lejano, es
decir que V es constante en todo el
polígono (R·V es constante) -Se está modelando un polígono que no es
una aproximación de una superficie curva
(superficie plana N es constante)
- La fuente de luz está infinitamente lejana (paralela), es decir, que
L es constante en todo el polígono (L·N es constante)
Sombreado plano
S. Castro, N. Gazcón CG 2015
Sombreado plano
14
S. Castro, N. Gazcón CG 2015
Con el objetivo de no calcular todos los parámetros para
evaluar la ecuación de iluminación en cada punto que
corresponda del polígono, se propuso el sombreado
interpolante.
La interpolación se realiza a lo largo de las líneas de scan y,
para aumentar la eficiencia se puede utilizar, para los
parámetros que corresponda, un cálculo incremental.
Métodos Interpolantes
S. Castro, N. Gazcón CG 2015
Se calcula la intensidad de la luz en los vértices del polígono y se
interpolan estas intensidades para encontrar los valores en los pixels en
los que proyecta el polígono en pantalla.
La intensidad en cada vértice se calcula usando un modelo de reflexión
local, por ejemplo, el método de Phong.
La intensidad de cada pixel se interpola
bilinealmente a partir de la iluminación calculada
en los vértices.
IPhong = ka Ia + fat Ip (kd (L·N) + ks (R·V)n)
Sombreado de Gouraud
La interpolación se realiza a lo largo de las
líneas de scan de manera incremental.
S. Castro, N. Gazcón CG 2015
Sombreado de Gouraud
Se calcula la intensidad de la luz en los vértices del polígono y se
interpolan estas intensidades para encontrar los valores en los pixels en
los que proyecta el polígono en pantalla.
La intensidad en cada vértice se calcula usando un modelo de reflexión
local, por ejemplo, el método de Phong. Para calcular la intensidad en
cada vértice, ¿qué normal se utiliza?.
S. Castro, N. Gazcón CG 2015
Las normales para cada vértice se calculan:
4321
4321
NNNN
NNNNNv
Nv se utiliza para calcular la intensidad en el vértice v que es
común a todos los polígonos que lo comparten
Sombreado de Gouraud
S. Castro, N. Gazcón CG 2015
… la interpolación bilineal se realiza del siguiente modo:
Sombreado de Gouraud
Se interpola entre puntos a lo
largo de los lados
Se interpola a lo largo de las
líneas de scan.
A partir de la iluminación calculada en ciertos
puntos clave como los vértices del polígono …
S. Castro, N. Gazcón CG 2015
La interpolación bilineal se realiza del siguiente modo:
babaabp III )1(
ab
ap
abscanscan
xx
xx
yy
yy
yy
yy
13
113
12
112
Sombreado de Gouraud
313113
212112
)1(
)1(
III
III
b
a
15
S. Castro, N. Gazcón CG 2015
La iluminación en cada punto se calcula entonces:
10 )(
10 )(
10 )(
131313113131
121212112121
abababaababap
b
a
IIIII
IIIII
IIIII
babaabp
b
a
III
III
III
)1(
)1(
)1(
313113
212112
Sombreado de Gouraud
Se puede realizar un cálculo incremental:
S. Castro, N. Gazcón CG 2015
Si la interpolación bilineal se realiza incrementalmente:
)(
)1(
1
ab
ab
p
ppp
a
ab
pb
b
ab
pb
p
IIxx
xI
III
Ixx
xxI
xx
xxI
Sombreado de Gouraud
S. Castro, N. Gazcón CG 2015
Sombreado de Gouraud
S. Castro, N. Gazcón CG 2015
l Sombrear cada vértice con su
normal.
l Interpolar linealmente el color en toda
la cara
l Ventajas:
Cálculos incrementales que son
rápidos en el proceso de
rasterizado.
Mucho más suave – usa una
normal por vértice compartido
para lograr continuidad de
sombreado entre distintos
parches.
l Desventajas:
¿Cuáles son los problemas?
¿Es exacto?
Sombreado de Gouraud
S. Castro, N. Gazcón CG 2015
Se calculan las normales en cada vértice del polígono. Luego
se interpolan para cada punto del polígono que se proyecta
en un pixel.
Estas normales interpoladas se
utilizan en el cálculo de intensidad
en los puntos del polígono que
corresponden a cada pixel
proyectado.
Sombreado de Phong
S. Castro, N. Gazcón CG 2015
El sombreado de Phong
da una imagen de mejor
calidad que el de
Gouraud. Esto ocurre
especialmente cuando
hay puntos brillantes. El
costo computacional es
más alto.
Se utilizan la misma forma funcional para interpolar normales
bilinealmente que para interpolar intensidades.
En cada pixel, la normal interpolada se transformada a coordenadas
del sistema de coordenadas del mundo. Se calcula una nueva
intensidad para el pixel en coordenadas del mundo.
Sombreado de Phong
16
S. Castro, N. Gazcón CG 2015
Los puntos brillantes se reproducen mejor con el sombreado de Phong;
por ejemplo, si consideramos con diferentes valores de normales en
los vértices compartidos:
Gouraud Phong
V1
V2
V3
- tiene un vértice con alto
coeficiente de brillo (n alto).
El sombreado de Gouraud desparrama incorrectamente el brillo sobre
el porque interpola intensidades.
El sombreado de Gouraud se implementa por hardware para la mayoría
de las APIs. El de Phong puede implementarse con shaders.
Sombreado de Phong
S. Castro, N. Gazcón CG 2015
La interpolación de las normales tiene un efecto geométrico favorable:
Esto muestra que la interpolación de las normales tiende a
restablecer la curvatura de la superficie original que se aproximó
mediante una red poligonal.
Observar qué ocurre con la magnitud de las normales.
Sombreado de Phong
S. Castro, N. Gazcón CG 2015
l Interpola las normales en todo el parche
l Realiza el sombreado de cada pixel
l Ventajas:
Mejor calidad, especularidades más
exactas
l Desventajas:
Es más caro que el sombreado de
Gouraud.
Es aún una aproximación para la
mayoría de las superficies.
l No debe confundirse con el modelo de
iluminación especular de Phong.
Sombreado de Phong
S. Castro, N. Gazcón CG 2015
Sombreado de Phong
S. Castro, N. Gazcón CG 2015
Plano Gouraud Phong
Red
más
gruesa
Comparación
S. Castro, N. Gazcón CG 2015
Siluetas poligonales
No importa cuán bueno sea el modelo de sombreado interpolante usado en
una superficie curva: la silueta es aún claramente poligonal. Esto se mejora subdividiendo la superficie en mayor número de polígonos a
expensas de costo computacional.
Problemas de los métodos interpolantes para sombreado
17
S. Castro, N. Gazcón CG 2015
Distorsión por la perspectiva
Son las anomalías que ocurren debido a que la interpolación es llevada a cabo
luego de la transformación en perspectiva en el sistema de coordenadas 3D de
la pantalla: la interpolación lineal hace que la información de sombreado sea
incrementada en forma constante de una línea de scan a la siguiente.
¿Cómo se soluciona este problema?
De una línea de scan a la siguiente Pero no es cierto que zs=(z1+z2)/2
ys=(y1+y2)/2 Is=(I1+I2)/2
Problemas de los métodos interpolantes para sombreado
S. Castro, N. Gazcón CG 2015
Distorsión por la perspectiva
Primitiva original
Sombreado de Gouraud Sombreado correcto
Espacio del objeto
Problemas de los métodos interpolantes para sombreado
S. Castro, N. Gazcón CG 2015
Vértices compartidos
Pueden ocurrir discontinuidades de sombreado en C. La información de
sombreado determinada directamente en C por los polígonos 1 y 2,
típicamente no será la misma que la información interpolada en C por los
valores en A y en B
Problemas de los métodos interpolantes para sombreado
S. Castro, N. Gazcón CG 2015
Normales no representativas en los vértices
Las normales calculadas en los vértices pueden no representar
adecuadamente la geometría de la superficie.
Problemas de los métodos interpolantes para sombreado
S. Castro, N. Gazcón CG 2015
Sombreado en OpenGL
¿Cómo debe ser la red poligonal que modela estos cuerpos? ¿En qué
difieren?
Modelos Locales y Globales
S. Castro, N. Gazcón CG 2015
18
S. Castro, N. Gazcón CG 2015
Los modelos de iluminación local calculan los colores de puntos sobre la
superficie considerando sólo propiedades locales:
- La posición del punto
- Las propiedades de la superficie
- Las propiedades de las fuentes de luz que
la afectan
No se consideran:
- Los otros objetos presentes en la escena
- Bloqueadores u otros reflectores
Esto es típico de los renderizadores
inmediantos como el de OpenGL
Modelos Locales y Globales
S. Castro, N. Gazcón CG 2015
La iluminación depende de
los objetos en forma local y
de las fuentes de luz directa.
Modelos Locales Modelos Globales
La iluminación en un punto
puede depender de la
iluminación proveniente de
cualquier punto de la escena.
Modelos Locales y Globales
S. Castro, N. Gazcón CG 2015
Modelos Locales Modelos Globales
Modelos Locales y Globales
S. Castro, N. Gazcón CG 2015
Modelos Locales Modelos Globales
Modelos Locales y Globales
S. Castro, N. Gazcón CG 2015
Iluminación directa
Modelos Locales
Modelos Locales y Globales
S. Castro, N. Gazcón CG 2015
En el mundo real, la luz toma caminos indirectos. La luz
- refleja otros materiales (posiblemente múltiples objetos)
- es bloqueada por otros objetos
- puede ser dispersada
- puede ser enfocada en determinados puntos
- puede ser desviada
Estos fenómenos sondifíciles de modelar
- En cada punto debemos considerar no
sólo cada fuente de luz, sino todos
aquellos puntos que podrían reflejar la
luz hacia éste.
Modelos Locales y Globales
19
S. Castro, N. Gazcón CG 2015
Iluminación
directa Sombras Interreflexiones
Modelos Globales
Ray tracing
Radiosidad
Modelos Locales y Globales
Modelos Locales y Globales
Iluminación en el Pipeline 3D
S. Castro, N. Gazcón CG 2015
Objeto Mundo Ojo
C. Modelado C. del Mundo C. del ojo o cámara
C. de Clipping C. 3D de Pantalla C. Ventana
Clipping Pantalla 3D Ventana
¿Dónde se calcula la iluminación de los vértices?
Iluminación en el Pipeline 3D
S. Castro, N. Gazcón CG 2015
Objeto Mundo Ojo Ojo
C. Modelado C. del Mundo C. de la cámara C. de la cámara
C. de Clipping C. 3D de Pantalla C. Ventana
Clipping Pantalla 3D Ventana
¿Dónde se calcula la iluminación de los vértices?
Iluminación en el Pipeline 3D
S. Castro, N. Gazcón CG 2015
Objeto Mundo Ojo
C. Modelado C. del Mundo C. del ojo o cámara
C. de Clipping C. 3D de Pantalla C. Ventana
Clipping Pantalla 3D Ventana
¿Dónde se calcula la iluminación de los fragmentos?
Iluminación en el Pipeline 3D
S. Castro, N. Gazcón CG 2015
C. Modelado C. del Mundo C. de la cámara C. de la cámara
C. de Clipping C. 3D de Pantalla C. Ventana
Clipping Pantalla 3D Ventana
¿Dónde se calcula la iluminación de los fragmentos?
Objeto Mundo Ojo Ojo
Iluminación en el Pipeline 3D
S. Castro, N. Gazcón CG 2015
CO CO CM COjo COjo
Pantalla 3D (CND)
T.Model
.
CP CP CP
T.Mundo T.Vista Iluminación T.Perspectiva
CClip
División
Perspectiva (/w)
T. Viewport
Rasterización Proc.fragmento,
Texturado, Ilum
fragmento, …
Operaciones
Raster
CP
Procesamiento Geométrico (de vértices)
Procesamiento de Fragmentos
20
S. Castro, N. Gazcón CG 2015
Ejemplos
Sombreado Gouraud Sombreado Phong
Ejemplo 1 Ejemplo 2
Ejemplo 1
Calcularemos la iluminación por vértice. Para ello utilizaremos la siguiente
ecuación:
y los coeficientes que representan el material son entonces:
uniform vec4 ka;
uniform vec4 kd;
uniform vec4 ks;
uniform float CoefEsp;
S. Castro, N. Gazcón CG 2015
IBlinn-Phong = ka + kd (L·N) + ks (N·H)n
Ejemplo 1
Programa de vértices (shader de vértices)
in vec4 posV
in vec4 norm
out vec4 colorV;
uniform mat4 Proy;
uniform mat4 MV;
uniform mat4 MVProy;
Uniform mat4 MN;
uniform vec4 posL;
uniform vec4 ka;
uniform vec4 kd;
uniform vec4 ks;
uniform float CoefEsp;
S. Castro, N. Gazcón CG 2015
Ejemplo 1
S. Castro, N. Gazcón CG 2015
{// transformar posición de los vert de entrada del EO al EClipping
gl_Position = MVP * posV;
// transf posición de los vértices de entrada del Esp.obj al Esp.ojo(vE)
vec3 vE = vec3(MV * posV);
// Calc. vector luz en Esp. ojo
vec3 vLE = vec3(posL – vE);
vec3 L= normalize(vLE);
vec3 N = normalize(MN * norm);
vec3 H = normalize(L+V);
// Calc térm difuso+espec de Blinn-Phong
float difuso = max(dot(L,N), 0.0);
float specBlinnPhong = pow(max(dot(N, H), 0.0), CoefEsp);
if (dot(L,N) < 0.0)
specBlinnPhong = 0.0;
colorV = ka + kd *difuso + ks*specBlinnPhong;
}
¡Cuidado!
IBlinn-Phong = ka + kd (L·N) + ks (N·H)n
S. Castro, N. Gazcón CG 2015
Ejemplo 2
¿Cómo realizamos el sombreado de Phong?. Para esto,
debemos calcular la iluminación en cada punto del objeto. Se
interpolarán las normales.
En nuestro programa de fragmentos debemos contar con las
normales interpoladas en cada punto del objeto.
Recordemos que el rasterizador genera fragmentos para todas
las primitivas que no se clipearon. Cada fragmento puede
corresponder a un pixel en el frame buffer y los atributos del
mismo son el color y la posición.
Hay otros atributos que pueden determinarse a partir de los
atributos de los vértices interpolando los valores en los
vértices.
S. Castro, N. Gazcón CG 2015
Ejemplo 2
Aún cuando tengamos:
in vec4 vColor;
out oColor;
void pasarf(void)
{ oColor = vColor;}
el color de cada fragmento se interpolará a partir del color de los
vértices.
Del mismo modo, también se interpolan las coordenadas de textura de
los vértices.
Adicionalmente podemos hacer que se interpole automáticamente
cualquier variable de salida del programa de vértices. Esto permitirá
que podamos hacer cálculos de iluminación fragmento a fragmento.
21
S. Castro, N. Gazcón CG 2015
Ejemplo 2
Así, en lugar de interpolar colores, podemos interpolar las
normales a través del polígono y aplicar el modelo de
sombreado a cada fragmento usando esas normales
interpoladas.
Nuestro procesador de vértices ¿qué debe hacer?
Éste debe transferir datos del programa de vértices al de
fragmentos.
En el programa de vértices debemos calcular:
- posición en coordenadas del ojo
- normal en coordenadas del ojo
y luego pasarlas al programa de fragmentos.
S. Castro, N. Gazcón CG 2015
Ejemplo 2
l Para llevar a cabo el sombreado de Phong (por fragmentos), el
programa de fragmentos necesita conocer la posición y la
normal en el fragmento.
l Como el programa de fragmentos no puede leer gl_Position,
debemos usar otro parámetro para pasar la posición.
l Entonces, pasamos la posición y la normal en parámetros de
tipo out e in.
l Notar que estos parámetros se interpolan bilinealmente de
manera automática cuando se pasan del programa de vértices
al de fragmentos.
Ejemplo 2
S. Castro, N. Gazcón CG 2015
En lugar de calcular la iluminación por vértice la calcularemos en cada fragmento
out vec3 vNE; // vector normal en esp ojo
out vec3 vLE; // vector de dir de luz
out vec3 vVE; // vector de vista (al ojo)
…
out vec4 posV
uniform vec4 posL; // posición luz
void main(void)
{
// transformar posición de los vert de entrada del esp obj al de clipping
gl_Position = MVP * posV;
// transformar posición de los vert de entrada del esp del obj al del ojo
vec3 vE = vec3(MV * posV);
// calc vector luz en esp ojo
vLE = normalize(vec3(posL – vE));
// transformar normal del esp objeto al del ojo
vNE = normalize(MN * norm);
// calcular el vect del ojo en esp del ojo; el ojo, por def, está en el origen
vVE= normalize(-vE);
}
Ejemplo 2
S. Castro, N. Gazcón CG 2015
Vimos cómo es el programa de vértices (shader de vértices); el programa de fragmentos es el siguiente:
in vec3 vNE; uniform vec4 ka;
in vec3 vLE; uniform float CoefEspec;
in vec3 vVE; uniform vec4 kd;
out vec4 oColor; uniform vec4 ks; . . . . .
void main(void)
{
// calcular los distintos vectores y normalizarlos
vec3 N = normalize(vNE);
vec3 L = normalize(vLE);
vec3 R = reflect(L, N);
vec3 V = normalize(vVE);
vec3 H = normalize(L+V);
// Calc térm difuso+espec de Blinn-Phong
float difuso = …
float specBlinnPhong = …
…
oColor = ka + kd*difuso + ks*specBlinnPhong;
}
S. Castro, N. Gazcón CG 2015
Otros ejemplos
l ¿Cómo incorporaría a su programa de vértices/fragmentos la
atenuación con la distancia?
l ¿Cómo incorporaría un spot?
S. Castro, N. Gazcón CG 2015