Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Marcos Garca
1 G3D
2
ndice
1. Introduccin
2. Modelos de iluminacin para tiempo real
3. Modelos de sombreado para tiempo real
G3D
G3D 3
Introduccin
Entendemos por modelo de iluminacin el clculo
de la intensidad de cada punto de la escena.
En el clculo de la intensidad de un punto
intervienen:
Luz
El tipo y la intensidad de la fuente de luz.
El material del objeto.
La orientacin del objeto con respecto a la luz.
La orientacin y posicin de la cmara respecto a la
superficie y a las fuentes de luz.
G3D 4
Introduccin
Vector de luz
Vector de vista
Vector normal
G3D 5
Introduccin
Existen dos familias de modelos:
Modelos locales:
Dependen exclusivamente de los parmetros anteriores.
La alternativa ms usada para tiempo real.
No pueden simular gran cantidad de efectos:
Sombras, custicas, refracciones, reflejos (tanto difusos como especulares)
Este tipo de efectos deben aadirse de forma artificial.
Los modelos generalmente heursticos, basados en el modelo de Phong.
Modelos globales:
A la hora de iluminar un punto tienen el resto de elementos de la
escena.
Suelen estar basados en modelos fsicos de la luz.
6
Introduccin
Clasificacin de las fuentes de luz
Luz ambiental: luz residual de la escena sin direccin.
Luces puntuales:
Luces sin dimensin.
Emiten luz radial (en todas direcciones).
Una buena aproximacin si la fuente es mucho menor al resto de elementos de la
escena.
Luces de rea:
Luces con 1 o ms dimensiones.
NO utilizadas en modelos de iluminacin local.
Luces direccionales:
Luces situadas en el infinito.
Los haces de luz son paralelos.
Modelan luces muy lejanas como el sol.
Luz focal:
Luz situada en el espacio con una direccin principal.
Pueden definirse una zona de penumbra.
G3D 7
Introduccion
8
Introduccin
Distintos parmetros de configuracin
Componente ambiental, especular, difusa
Posicin, orientacin
ngulo de apertura
Atenuacin
Dependen del tipo de foco utilizado!
G3D
9
Introduccin
Modelo de iluminacin vs sombreado
El modelo de iluminacin define la ecuacin.
El modelo de sombreado define como se aplica
dicha ecuacin.
El modelo de iluminacin puede aplicarse en
distintas etapas del cauce:
Vrtices
Fragmentos
G3D
G3D 10
ndice
1. Introduccin
2. Modelos de iluminacin para tiempo real
3. Modelos de sombreado para tiempo real
G3D 11
Modelo de iluminacin de Phong
Es un modelo emprico simplificado para
iluminar puntos de una escena.
Los resultados son muy buenos en la mayora de
las escenas.
En este modelo los objetos no emiten luz, solo
reflejan la luz que les llega de las fuentes de luz.
G3D 12
Modelo de iluminacin de Phong
Divide el clculo de la luz en 3 componentes:
Componente ambiental: proviene de todas las direcciones e ilumina
todas las caras del objeto por igual.
Componente difusa: proviene de una direccin y se refleja en todas
direcciones.
Componente especular: proviene de una direccin y se refleja en una
direccin.
I
Phong
= I
amb
+ I
dif
+ I
esp
G3D 13
Iluminacin ambiental
Todos los objetos reciben algo de luz
Reflexiones mltiples (difusas y especulares).
Muy difcil de modelizar de forma precisa.
Luz residual.
Se modeliza con dos parmetros
Intensidad ambiental: aporte de una determinada luz a la intensidad
ambiental (0 I
a
1).
Coeficiente de reflexin ambiental: (0 K
a
1).
Independiente de la
\
|
+ +
= 1 ,
1
min
2
3 2 1
d c d c c
f
att
Ci: constantes definidas por el usuario para cada fuente.
G3D 18
Iluminacin difusa (reflexin difusa)
Podemos definir luces focales:
Luces puntuales con un ngulo de apertura.
Zonas de penumbra.
Variables adicionales
D
l
: direccin del foco.
l
: ngulo de corte, por detrs de este ngulo la intensidad es 0.
n: controla la atenuacin de la luz
si D
l
* (-L) > cos(
l
)
I
p
= 0 e.o.c
Modelo de iluminacin de Phong
D
G3D 19
Iluminacin especular (reflexin especular)
Modela el brillo de los objetos: objetos metlicos, plsticos,
barnizados
La mayor parte de los rayos de luz que proceden de una fuente se
reflejan en su superficie en una direccin determinada (depende de
cmo incida la luz en la superficie).
Modelo de iluminacin de Phong
G3D 20
Iluminacin especular (reflexin especular)
Si la cmara se sita en la trayectoria de dichos rayos, captar una
mayor intensidad en dicho punto.
La intensidad especular depender de la posicin del observador y la
direccin del rayo reflejado.
Modelo de iluminacin de Phong
G3D 21
Iluminacin especular (reflexin especular)
La iluminacin especular depende de
V: vector de posicin del observador.
L: vector de incidencia de la luz.
I
l
: intensidad de la fuente de luz (podemos definir una intensidad especfica para
la componente especular I
s
).
K
e
: coeficiente emprico de reflexin especular (0 ke 1).
n: un ndice que simula la rugosidad de la superficie.
ngulo entre V y R.
I = I
l
K
e
cos
n
= I
l
K
e
(R V)
n
Se puede calcular R de la siguiente forma
R = (L*N)N - (L - (L*N)N) = 2(L*N)N - L
Modelo de iluminacin de Phong
G3D 22
Iluminacin especular (reflexin especular)
Modelo de Phong: reflexin especular expresable dependiendo de
cos
n
(o), siendo o el ngulo formado por los vectores reflejado y de
visualizacin, R y V.
Modelo de iluminacin de Phong
G3D 23
Reflexin especular
N: 3 5 10 27 200
K
s
:
0,1
0,25
0,5
K
a
: 0,1 K
d
: 0,45
G3D 24
Iluminacin especular (reflexin especular)
Existen multitud de variantes del mtodo de Phong que aceleran los clculos
con modelos aproximados.
R = 2(L * N)N - L.
BlinnPhong: supone que el observador y la fuente de luz estn en el infinito.
R V es aproximadamente igual a N H. La relacin se cumple si los ngulos son
pequeos.
H = L + V / |L + V| (si L y V estn normalizados aprox. => (L + V) / 2)
H tiende a ser constante cuando las luces y el observador estn lejos del objeto. En
este caso es mucho ms eficiente ya que es independiente de la posicin de la
superficie y puede ser pre-calculado para cada luz.
I = I
l
K
e
(N H)
n
Modelo de iluminacin de Phong
G3D 25
Iluminacin especular (reflexin especular)
Se puede ajustar el valor de n para obtener resultados
similares.
Modelo de iluminacin de Phong
G3D 26
Iluminacin especular (reflexin especular)
En algunos materiales, los brillos solo se producen cuando la luz incide
con un ngulo cercano a los 90 con respecto a la normal de la
superficie (por ejemplo, el cristal).
Para modelar esto, podemos sustituir la constante Ke por una funcin
W del ngulo .
I = I
l
W() cos
n
()= I
l
W() (RV)
n
Modelo de iluminacin de Phong
G3D 27
Iluminacin especular (reflexin especular)
Podemos aadir el mismo modelo de atenuacin que con la luz difusa
I = f
att
I
l
K
s
(R * V)
n
Modelo de iluminacin de Phong
|
|
.
|
\
|
+ +
= 1 ,
1
min
2
3 2 1
d c d c c
f
att
G3D 28
Expresin global (incluyendo ambiental, difusa y
especular)
I = I
a
K
a
+ f
att
I
l
[K
d
( N * L) + K
s
(R * V)
n
]
De momento, hemos trabajado siempre con un
planteamiento monocromtico.
Modelo de iluminacin de Phong
|
|
.
|
\
|
+ +
= 1 ,
1
min
2
3 2 1
d c d c c
f
att
G3D 29
Modelo de iluminacin de Phong
|
|
.
|
\
|
+ +
= 1 ,
1
min
2
3 2 1
d c d c c
f
att
G3D 30
Color:
Calculamos la reflexin y emisin para cada longitud
de onda :
I
a
K
a
O
d
+ f
att
I
l
[K
d
O
d
( N * L) + K
s
O
s
(R * V)
n
|
O
d
, O
s
son el % de luz reflejada en la longitud de
onda ; se puede englobar en las K.
suele reducirse a 3 colores bsicos (R, V, A) para
simplificar.
Modelo de iluminacin de Phong
G3D 31
Fuentes luminosas mltiples:
Sumamos las contribuciones de cada fuente de luz,
para cada color bsico o longitud de onda
I
= I
a
K
a
O
d
+ f
att
I
p
[K
d
O
d
( N * L) + K
s
O
s
(R * V)
n
|
Modelo de iluminacin de Phong
I
= I
a
K
a
+ f
att
I
p
[K
d
( N * L) + K
s
(R * V)
n
|
32
Iluminacin emisiva
Como simular objetos que emiten luz.
Suponemos que la intensidad de luz emiten es mayor a la intensidad de
luz reflejan.
Se simulan con un color fijo independiente de la luz K
emissive
Modelo de iluminacin de Phong
33
Iluminacin emisiva
1. La componente emisiva se suma a las dems (lo ms comn)
2. Pero podemos hacer todo aquello que se nos ocurrar. Se fusiona la componente
emisiva atendiendo a factor de fusin o blending ()
Modelo de iluminacin de Phong
I
= K
emissive
+I
a
K
a
+ f
att
I
p
[K
d
( N * L) + K
s
(R * V)
n
|
I
= K
emissive
+ (1- )(I
a
K
a
+ f
att
I
p
[K
d
( N * L) + K
s
(R * V)
n
|)
34
Iluminacin emisiva
Modelo de iluminacin de Phong
35
Iluminacin emisiva
Modelo de iluminacin de Phong
36
Modelo de iluminacin de Phong
vec3 shading (in vec3 vertex /*point*/, in vec3 normal)
{
//vector vrtice - cmara
vec3 E = normalize(-vertex); //La cmara est en el 0,0,0
//Color derivado de la luz ambiental y emisivo
vec3 color = gl_FrontLightModelProduct.sceneColor.xyz;
for (int i=0;i<nlights;i++)
{
//Ambiental
vec3 Iamb = ambientMat.xyz*gl_LightSource[i].ambient.xyz;
Iamb = clamp(Iamb, 0.0, 1.0);
vec3 resi = Iamb;
//Se comprueba del ngulo de cutoff
//Vector vrtice-luz (si w=0 la luz es direccional)
vec3 L = normalize(gl_LightSource[i].position.xyz - vertex * gl_LightSource[i].position.w);
//Si la luz es direccional se anula el vrtice
vec3 D = normalize(gl_LightSource[i].spotDirection);
float cosLD=dot(-L, D);
37
Modelo de iluminacin de Phong
//Inicialmente es 180, equivale a una luz puntual o direccional
if (cosLD >= gl_LightSource[i].spotCosCutoff)
{
//Diffusa
vec3 Idiff = diffuseMat*gl_LightSource[i].diffuse.xyz * max(dot(normal,L), 0.0);
//vec3 Idiff = gl_FrontLightProduct[i].diffuse.xyz * abs(dot(normal,L));
Idiff = clamp(Idiff, 0.0, 1.0);
//Especular
vec3 R = normalize(-reflect(L,normal));
vec3 Ispec = specularMat*gl_LightSource[i].specular.xyz*
pow(max(dot(R,E),0.0),0.3*gl_FrontMaterial.shininess);
Ispec = clamp(Ispec, 0.0, 1.0);
//Calculamos la atenuacin del foco (si es un foco)
float spotAtt=1.0;
if (gl_LightSource[i].spotCutoff!=180.0) spotAtt=cosLD*gl_LightSource[i].spotExponent;
resi += (Ispec+Idiff)*spotAtt;
}
38
Modelo de iluminacin de Phong
//Atenuacin en funcin de la distancia
if(gl_LightSource[i].position.w==1.0)
{
float d=length(gl_LightSource[i].position.xyz - vertex);
resi /= ( gl_LightSource[i].constantAttenuation +
(gl_LightSource[i].linearAttenuation*d) +
(gl_LightSource[i].quadraticAttenuation*d*d) );
}
color+=resi;
}//For
return color;
}
G3D 40
ndice
1. Introduccin
2. Modelos de iluminacin para tiempo real
3. Modelos de sombreado para tiempo real
G3D 41
Modelos de sombreado para
tiempo real
Definida la frmula que vamos a utilizar para calcular el
color de cada punto se debe definir como utilizarla:
Sombreado plano: todos los puntos de un polgono se
sombrean con el mismo color.
Gouraud: el color se calcula en los vrtices y se interpola
en los puntos internos.
Phong: se interpolan las normales de los vrtices y las
propiedades de color y se aplica la frmula de Phong para
calcular el color de los puntos internos.
G3D 42
Sombreado plano
1. Iluminacin constante o plana (flat): obtenemos
una intensidad que aplicamos a un conjunto de
puntos de un objeto
Aceleramos el proceso de sntesis.
Correcto si se verifica:
Fuente de luz en el infinito.
Observador en el infinito.
El polgono representa una superficie plana real del
objeto que se modela y no es una aproximacin de un
objeto curvo.
G3D 43
Sombreado plano
Ventaja:
Es muy eficiente.
Desventajas:
Problemas con objetos curvos.
Se necesita mucha resolucin para represntalos correctamente.
No pueden representarse brillos interiores a
los polgonos.
G3D 44
Sombreado plano
G3D 45
Sombreado de Gouraud
2. Sombreado interpolado:
La iluminacin cte. no produce buenos resultados en
superficies curvas (aprox. por facetas planas).
Evaluar la ecuacin de iluminacin en cada punto de una
superficie genrica es muy costoso.
Posible solucin: aproximar mediante facetas planas e
interpolar dentro de cada polgono.
G3D 46
Sombreado de Gouraud
Se basa en la interpolacin de intensidad o color.
Considera que facetas planas vecinas proceden de aproximar
una superficie curva (salvo que se declare una arista real
entre ambas).
Es necesario calcular las normales en los vertices
Elimina en gran medida las discontinuidades de iluminacin.
G3D 47
Sombreado de Gouraud
Necesita la direccin de la normal en cada vrtice (si se desconoce, se
calcula a partir de las normales de las facetas que contienen el vrtice).
Si dos facetas estn separadas por una arista real, se utilizan dos normales
diferentes para trabajar en cada faceta (se promedian las normales situadas
solo a un lado de la arista).
A partir de la normal en cada vrtice, se evala la ecuacin de iluminacin
(solo para cada vrtice) y se obtiene un valor de intensidad para cada uno
de ellos.
Se realiza una interpolacin bilineal para obtener la intensidad en cada
punto dentro de la faceta (de forma incremental).
G3D 48
Sombreado de Gouraud
G3D 49
Sombreado de Gouraud
Ventajas:
Los clculos ms complejos se realizan en la etapa de vrtices.
A las etapas siguientes del cauce solo se les pasa el color.
Desventajas:
La mxima intensidad solo se puede alcanzar los vrtices.
Problemas con la reflexin especular.
Puede remarcar las aristas.
G3D 50
Sombreado de Gouraud
G3D 51
Sombreado de Phong
Se basa en la interpolacin de la direccin de la normal y el
material de los vrtices del polgono, calculadas de la misma
forma que antes.
Igual que en Gouraud, se interpola a lo largo de cada lnea de
barrido, entre los puntos inicial y final, interpolados a su vez
de los valores de los vrtices de la arista.
Captura mejor los brillos especulares en el medio de facetas
planas (Gouraud los puede omitir).
G3D 52
Sombreado de Phong
Desventajas:
Se realiza en la etapa de fragmentos con un coste computacional mayor.
Hay que pasar ms informacin al shader de fragmentos.
Ventajas:
Captura mucho mejor el comportamiento de la luz especular.
El valor de mxima intensidad puede darse en el interior del polgono.
Elimina casi completamente las bandas de Mach. Las aristas son solo
apreciables en los bordes del modelo.
G3D 53
Diferencias Gouraud-Phong
Gouraud, Phong: mximo brillo
en el vrtice
Gouraud, Phong: mximo brillo en
el interior del tringulo
Esta etapa puede hacerse en distintos puntos
A nivel de vrtice.
A nivel de fragmento.
54
Plano Gouraud Phong
Diferencias Gouraud-Phong
G3D 55
Representacin (1)
Modelo de
alambre
(eliminacin
de lneas
ocultas)
G3D 56
Representacin (2)
Iluminacin
ambiental
(eliminacin
de
superficies
ocultas)
G3D 57
Representacin (3)
Modelo de
iluminacin
plano (solo
reflexin
difusa)
G3D 58
Representacin (4)
Modelo de
iluminacin
de Gouraud;
solo
reflexin
difusa
(aspecto suave;
contornos
poligonales)
G3D 59
Representacin (5)
Gouraud
(iluminacin
difusa y
reflexin
especular)
G3D 60
Representacin (6)
Phong
(iluminacin
difusa y
reflexin
especular)
G3D 61
Representacin (7)
Superficies
curvas y
reflexin
difusa y
especular
G3D 62
Representacin (8)
Iluminacin
mejorada.
Mltiples
luces
G3D 63
Representacin (9)
Correspond.
de texturas
G3D 64
Representacin (10)
Correspond.
de bultos y
sombras
G3D 65
Representacin (11)
Correspond.
de bultos,
reflejos y
sombras