Logo Studenta

iluminacion ppt

¡Este material tiene más páginas!

Vista previa del material en texto

Computación Gráfica
Modelado de la Iluminación y el Color
Docentes:
Néstor Calvo
Ángel Calegaris
Walter Sotil
2008
Color y Sombreado
2
1a Parte: COLOR
Como se percibe y como se cuantifica el color
Color y Sombreado
3
Reproducción: Colores Aditivos y Sustractivos
Agregan color (emisores, monitor) Quitan color (tintas, impresora)
-La tinta cian (celeste) absorbe el color rojo
-La tinta magenta absorbe el color verde
-La tinta amarilla absorbe el color azul
-Las tres tintas C+M+Y absorben todo el color = negro
(Las impresoras suelen usar también tinta negra)
Colores Aditivos (RGB) Colores Sustractivos (CMY)
Complementarios
Color y Sombreado
4
Creemos saber todo sobre el color
¿Ya está? 
¿Con una terna de RGB podemos representar cualquier color? 
¿Por que una terna?
• ¿Que tres colores?
• ¿Que hace el violeta cerca del rojo?
Color y Sombreado
5
Pero la realidad es mucho más complicada
Un color es una distribución continua o espectro de longitudes 
de onda P(λ). Es una función, no un valor.
Además el ojo tiene sus particularidades fisiológicas
color
Color y Sombreado
6
Tres tipos especializados de Conos
Color y Sombreado
7
Teoría Tricromática: Von Helmholtz (1859)
Los colores son percibidos de acuerdo a las respuestas 
relativas de los tres tipos de receptores.
Color y Sombreado
8
Teoría de Colores Opuestos: Hering (1872)
•¿Alguien vio un rojo verdoso o un azul 
amarillento?
•¿Cómo se explican los contrastes y las 
afterimages con la teoría tricromática?
Y
Cb
Cr
Color y Sombreado
9
Teoría Dual
Los colores son percibidos de acuerdo a las respuestas 
relativas de los tres tipos de receptores. Pero se procesan 
tanto las contribuciones individuales como las sumas y las 
diferencias.
Color y Sombreado
10
Percepción del color
Hue, Saturation, Value or Lightness (HSV o HSL)
Tono, Saturación, Intensidad o Luminancia
Color y Sombreado
11
Reproducción del color
λr
λg
λb
λ
Los valores negativos (del rojo en este caso) significan que:
1) no se puede reproducir ese color en RGB
2) a menos que se agregue luz (roja) al campo de referencia
Wright and Guild 1930: Comparación visual entre un color 
de referencia y uno generado mediante tres luces (RGB)
Color y Sombreado
12
Commission Internationale de l’Éclairage (CIE)
CIE 1931: Standard Colorimetric Observer
Color y Sombreado
13
Commission Internationale de l’Éclairage (CIE)
CIE 1931: 
Chromaticity Diagram
CIE 1975: 
Uniform Chromaticity Scale
x = 
4X
X+15Y+3Z
 
y = 
9Y
X+15Y+3Z
 
x = 
X
X+Y+Z
 
y = 
Y
X+Y+Z
 
Color y Sombreado
14
Gamut
3D!?
I=0.299R+0.587G+0.114B
Color y Sombreado
15
2a Parte: Iluminación y Sombreado
Como interactúan los materiales con la luz
Color y Sombreado
16
Sombreado
Analizaremos el sombreado debido a la forma del 
objeto en relación con el ojo y las fuentes de luz.
(No confundir sombreado con sombras)
Color y Sombreado
17
Iluminación Local / Global
Iluminación local: depende del 
material, la luz ambiente, el 
ángulo de incidencia de la luz 
y el ángulo con el eje visual
Iluminación Global: considera 
además la luz reflejada por los 
otros objetos y un ambiente 
mas complejo. 
Color y Sombreado
18
BRDF: Bidirectional Reflectance Distribution Function
Cantidad de luz que refleja una superficie en función del 
ángulo de incidencia y el ángulo de visión (4D) 
Los ángulos se miden respecto a la normal a la superficie en el 
punto considerado
Dirección 
de incidencia
de la luz Dirección
de visualización
Normal
Color y Sombreado
19
Modelo de luz e iluminación recibida
I(θ) = Il max(cos(θ),0)
Superficie
θ
n
d
γγγγ
δδδδ
I(θ) = Il cos(θ)
I = Il cos
r(δ) si δ<γ
(kc + kl d + kq d
2)
I = 0 si δ>γ
Color y Sombreado
20
Reflexión Difusa Lambertiana o Ideal
Superficie
Ir = Kd Il cos(θ)
Color y Sombreado
21
Reflexión Especular Ideal
Superficie
θ
l
n
r
θ
La luz de un foco puntual (o la luz que llega a la 
superficie desde un dado punto) solo es visible si el 
ángulo de visión es exactamente igual al de incidencia
Color y Sombreado
22
Reflexión no ideal
θ
l
n
r
θ
v
α
Ir = Ks Il cos
q(α)
independiente de cos(θ)!!?? (Fresnel?)
q
Color y Sombreado
23
Iluminación Ambiente
Ir = Il Ka
La luz reflejada por todo el entorno se simplifica como luz ambiente. 
Es independiente de la dirección de las fuentes y la de visualización
Color y Sombreado
24
Modelo de Phong (Phong Bui Tong 1975)
Ir = Il (Ka + Kd cos(θθθθ) + Ks cosq(αααα))
= + +
Color y Sombreado
25
Modelos avanzados de Iluminación
Ray Casting
Ray Tracing
Radiance
Radiosity
Photon Map
Color y Sombreado
26
2a Parte: Implementación en Opengl
Color y Sombreado
27
Color RGBA
El color se asigna a cada vértice con glColor…(…)
Puede usarse dentro del loop glBegin(…) – glEnd()
La asignación es RGB o RGBA (index no se usa más)
En general hay que usar reales (float) entre 0 y 1, los distintos 
tipos de enteros se mapean con dificultad y luego se pasan a 
[0,1], siempre clampeados.
La A se refiere a un adicional alpha que puede considerarse como
“nivel de opacidad”, pero en realidad se puede usar para 
algunos trucos:
- Alpha Test (el fragmento pasa si se cumple el test)
- Blending (el entrante se mezcla con el almacenado)
El truco básico con alpha es la transparencia que se hace 
mediante el blending: D=AS+(1-A)D
D es cada uno de los valores R, G o B del píxel almacenado en el color buffer.
S es lo mismo, pero del píxel entrante. A es el alpha del píxel entrante.
Color y Sombreado
28
Color
void glColor3{b s i f d ub us ui} (TYPEr, TYPEg, TYPEb);
void glColor4{b s i f d ub us ui} (TYPEr, TYPEg, TYPEb, TYPEa);
void glColor3{b s i f d ub us ui}v (const TYPE*v);
void glColor4{b s i f d ub us ui}v (const TYPE*v);
Color y Sombreado
29
Iluminación y Sombreado
void glLightModel{if}(GLenum pname, TYPEparam);
void glLightModel{if}v(GLenum pname, TYPE *param); 
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT_0);
... 
glEnable(GL_LIGHT_7);
Color y Sombreado
30
Luces
void glLight{if}(GLenum light, GLenum pname, TYPEparam);
void glLight{if}v(GLenum light, GLenum pname, TYPE *param); 
γγγγ
δδδδ
I = Il cos
r(δ) si δ<γ
(kc + kl d + kq d
2)
I = 0 si δ>γ
Color y Sombreado
31
Modelo de Phong (modificado)
Ir = Ka Iga + Ke + ∑i (Ka Ilai + Ildi Kd cos(θ) + Ilsi Ks cos(α)
q)
void glColorMaterial(GLenum face, GLenum mode); 
void glMaterial{if}(GLenum face, GLenum pname, TYPEparam);
void glMaterial{if}v(GLenum face, GLenum pname, TYPE *param); 
face: GL_FRONT, GL_BACK, or GL_FRONT_AND_BACK (default). 
mode: GL_AMBIENT, GL_DIFFUSE, GL_AMBIENT_AND_DIFFUSE (default), GL_SPECULAR, or GL_EMISSION
Color y Sombreado
32
Un par de consejos básicos
• El “color” puede representarse mediante las 
componentes ambiente y difusa, haciendo 
que siempre la reflexión especular sea blanca 
(el color de la luz sin cambiar)
• Cambiar materiales con glMaterial() es caro, 
conviene habilitar glColorMaterial y cambiar 
solo las componentes arriba mencionadas. 
El cambio se realiza en cada llamada a glColor.
• Los cálculos de iluminación se simplifican, sin que se vea mal, poniendo la luz en 
el infinito y deshabilitando “local viewer”.
• Si se quieren objetos transparentes u otras formas de blending, hay que saber 
que el único alpha válido es de la componente difusa del material
• Si el modelo lo construye uno mismo mediante primitivas simples, en cada 
vértice hay que asignar una normal con glNormal.
glColorMaterial(GL_FRONT_AND_BACK,GL_AMBIENT_AND_DIFFUSE);
glEnable(GL_COLOR_MATERIAL);
glLightModeli(GL_LIGHT_MODEL_LOCAL_VIEWER,0);
glLightfv(GL_LIGHT0,GL_POSITION,lpos); // lpos[3]=0 -> infinito
Color y Sombreado
33
Simulación de materiales
M
a
te
ri
a
l
G
L
_
A
M
B
IE
N
T
G
L
_
D
IF
F
U
S
E
G
L
_
S
P
E
C
U
L
A
R
G
L
_
S
H
IN
IN
E
S
S
M
a
te
ri
a
l
G
L
_
A
M
B
IE
N
T
G
L
_
D
IF
F
U
S
E
G
L
_
S
P
E
C
U
L
A
R
G
L
_
S
H
IN
IN
E
S
S
M
a
te
ri
a
l
G
L
_
A
M
B
IE
N
T
G
L
_
DIF
F
U
S
E
G
L
_
S
P
E
C
U
L
A
R
G
L
_
S
H
IN
IN
E
S
S
Brass 0.329412 0.780392 0.992157 27.8974 Gold 0.24725 0.75164 0.628281 51.2 Jade 0.135 0.54 0.316228 12.8
0.223529 0.568627 0.941176 0.1995 0.60648 0.555802 0.2225 0.89 0.316228
0.027451 0.113725 0.807843 0.0745 0.22648 0.366065 0.1575 0.63 0.316228
1 1 1 1 1 1 0.95 0.95 0.95
Bronze 0.2125 0.714 0.393548 25.6 Polished 0.24725 0.34615 0.797357 83.2 Obsidian 0.05375 0.18275 0.332741 38.4
0.1275 0.4284 0.271906 Gold 0.2245 0.3143 0.723991 0.05 0.17 0.328634
0.054 0.18144 0.166721 0.0645 0.0903 0.208006 0.06625 0.22525 0.346435
1 1 1 1 1 1 0.82 0.82 0.82
Polished 0.25 0.4 0.774597 76.8 Pewter 0.105882 0.427451 0.333333 9.84615 Pearl 0.25 1 0.296648 11.264
Bronze 0.148 0.2368 0.458561 0.058824 0.470588 0.333333 0.20725 0.829 0.296648
0.06475 0.1036 0.200621 0.113725 0.541176 0.521569 0.20725 0.829 0.296648
1 1 1 1 1 1 0.922 0.922 0.922
Chrome 0.25 0.4 0.774597 76.8 Silver 0.19225 0.50754 0.508273 51.2 Ruby 0.1745 0.61424 0.727811 76.8
0.25 0.4 0.774597 0.19225 0.50754 0.508273 0.01175 0.04136 0.626959
0.25 0.4 0.774597 0.19225 0.50754 0.508273 0.01175 0.04136 0.626959
1 1 1 1 1 1 0.55 0.55 0.55
Copper 0.19125 0.7038 0.256777 12.8 Polished 0.23125 0.2775 0.773911 89.6 Turquoise 0.1 0.396 0.297254 12.8
0.0735 0.27048 0.137622 Silver 0.23125 0.2775 0.773911 0.18725 0.74151 0.30829
0.0225 0.0828 0.086014 0.23125 0.2775 0.773911 0.1745 0.69102 0.306678
1 1 1 1 1 1 0.8 0.8 0.8
Polished 0.2295 0.5508 0.580594 51.2 Emerald 0.0215 0.07568 0.633 76.8 Black 0 0.01 0.5 32
Copper 0.08825 0.2118 0.223257 0.1745 0.61424 0.727811 Plastic 0 0.01 0.5
0.0275 0.066 0.0695701 0.0215 0.07568 0.633 0 0.01 0.5
1 1 1 0.55 0.55 0.55 1 1 1
Black 0.02 0.01 0.4 10
Rubber 0.02 0.01 0.4
0.02 0.01 0.4
1 1 1
Color y Sombreado
34
Interpolación del Sombrado
void glShadeModel (GLenum mode); 
GL_SMOOTH (default) or GL_FLAT. 
- Flat Shading: El color calculado en uno de los vértices 
(generalmente el ultimo) define el color del polígono.
- Gouraud Shading: El color resultante en cada vértice se 
interpola en cada píxel interior.
- Phong Shading: Normales interpoladas y cálculo de 
iluminación en cada píxel (no está implementado en OpenGL 
y no confundir con el modelo de iluminación de Phong)

Continuar navegando