You are on page 1of 26

Introduo Computao Grfica

Iluminao
Adaptao: Joo Paulo Pereira
Antnio Costa
Autoria: Claudio Esperana
Paulo Roma Cavalcanti
21-11-2007 2
Iluminao
Estudo de como a luz
interage com os
objectos de uma cena
Emisso
Transmisso
Absoro
Refraco
Reflexo
21-11-2007 3
Iluminao
Modelos fsicos
Luz modelada como radiao
electromagntica
Leva em conta todas as interaces (todos os
caminhos da luz)
Intratvel computacionalmente
21-11-2007 4
Modelos de Iluminao em CG
Tipicamente, luz amostrada num nmero discreto
de primrias (cor)
Modelos locais
Apenas caminhos do tipo fonte luminosa superfcie
olho so tratados
Simples
Ex.: OpenGL
Modelos globais
Muitos caminhos (ray tracing, radiosidade)
Complexos
21-11-2007 5
Iluminao em OpenGL
Assume fontes pontuais de luz
Omnidireccionais
Spot
Interaces de luz com superfcie modeladas
em componentes (modelo de Phong):
Emisso
Ambiente
Difusa
Especular
21-11-2007 6
Iluminao em OpenGL
Suporte de efeitos atmosfricos como
Fog
Atenuao
Modelo de iluminao computado apenas
nos vrtices das superfcies
Cor dos restantes pixels interpolada
linearmente (sombreamento de Gouraud)
21-11-2007 7
Fontes de Luz
Para ligar uma fonte: glEnable (source);
source uma constante cujo nome
GL_LIGHT
i
, comeando com GL_LIGHT0
Quantas? Pelo menos 8, mas para ter certeza:
glGetIntegerv( GL_MAX_LIGHTS, &n );
No esquecer de ligar o clculo de cores pelo
modelo de iluminao
glEnable (GL_LIGHTING);
21-11-2007 8
Fontes de Luz
Para configurar as propriedades de cada fonte:
glLightfv(source, property, value);
Property uma constante designando:
Coeficientes de cor usados no modelo de iluminao
GL_AMBIENT, GL_DIFFUSE, GL_SPECULAR
Geometria da fonte
GL_POSITION, GL_SPOT_DIRECTION,
GL_SPOT_CUTOFF, GL_SPOT_EXPONENT
Coeficientes de atenuao
GL_CONSTANT_ATTENUATION,
GL_LINEAR_ATTENUATION,
GL_QUADRATIC_ATTENUATION
21-11-2007 9
Propriedades de Material
Especificados por
glMaterialfv (face, property, value)
Face designa quais os lados da superfcie que
se quer configurar:
GL_FRONT, GL_BACK, GL_FRONT_AND_BACK
Property designa a propriedade do modelo
de iluminao:
GL_AMBIENT, GL_DIFFUSE, GL_SPECULAR,
GL_EMISSION, GL_SHININESS
21-11-2007 10
Geometria
Alm das propriedades da luz e do material,
a geometria do objecto tambm importante
A posio dos vrtices em relao ao olho e
fonte luminosa contribui para o clculo dos
efeitos atmosfricos
A normal fundamental
No calculada automaticamente
Precisa de ser especificada com glNormal ()
21-11-2007 11
Clculo do Vector Normal
Tringulo
Dados trs vrtices,
Polgono planar
Uma opo usar a frmula do tringulo para
quaisquer 3 vrtices
Sujeito a erros (vectores pequenos ou quase colineares)
Outra opo determinar a equao do plano
ax + by + cz + d = 0
Normal tem coordenadas (a, b, c)
A
C
B
)) ( ) (( normalizar A C B A n =

21-11-2007 12
Clculo do Vector Normal
Polgono planar (cont.)
Coeficientes a, b, c da equao do plano so
proporcionais s reas do polgono projectado nos
planos yz, zx e xy
x
y
(x
i
, y
i
)
(x
i+1
, y
i+1
)

=
+ =
+ +
i
i i i i i
AreaXY c
x x y y AreaXY ) )( (
2
1
1 1
21-11-2007 13
Clculo do Vector Normal de
Superfcies Implcitas
Normal dada pelo
vector gradiente
|
|
|
.
|

\
|
c c
c c
c c
=
=
z f
y f
x f
n
z y x f
/
/
/
0 ) , , (

f (x,y,z) = c
2
f (x,y,z) = c
1
f (x,y,z) = c
3
21-11-2007 14
Clculo do Vector Normal de
Superfcies Paramtricas
Normal dada pelo
produto vectorial dos
gradientes em relao
aos parmetros u e v
|
|
|
.
|

\
|
c c
c c
c c

|
|
|
.
|

\
|
c c
c c
c c
=
c
c

c
c
=
|
|
|
.
|

\
|
=
v f
v f
v f
u f
u f
u f
v
f
u
f
n
v u f
v u f
v u f
P
z
y
x
z
y
x
z
y
x
/
/
/
/
/
/
) , (
) , (
) , (

u
f
c
c
v
f
c
c
n

21-11-2007 15
Componentes do Modelo de
Phong
Emisso: contribuio que no depende de
fontes de luz (fluorescncia)
Ambiente: contribuio que no depende da
geometria
Difusa: contribuio correspondente ao
espalhamento da reflexo lambertiana
(independente da posio do observador)
Especular: contribuio referente ao
comportamento de superfcies polidas
21-11-2007 16
Componentes do
Modelo de Phong
Difusa Especular Ambiente
21-11-2007 17
Iluminao Ambiente
Componente que modela como uma constante o
efeito da reflexo de outros objectos do ambiente
Depende dos coeficientes GL_AMBIENT tanto das
fontes luminosas quanto dos materiais
ainda possvel usar luminosidade ambiente no
relacionada com fontes luminosas
glLightModelfv (GL_LIGHT_MODEL_AMBIENT, params)
Contribuio dada por
A A
M I A=
21-11-2007 18
Iluminao Difusa
Iluminao recebida por uma superfcie e que reflectida
uniformemente em todas as direces
Caracterstica de materiais baos ou foscos
Esse tipo de reflexo tambm designada por reflexo
lambertiana
A luminosidade aparente da superfcie no depende do
observador, mas apenas do cosseno do ngulo de incidncia
da luz
21-11-2007 19
Iluminao Difusa
Contribuio dada por
) ( cos
N L
N L
M I M I D
D D D D

= = u
u
N
L
21-11-2007 20
Iluminao Especular
Simula a reflexo maneira de um espelho (objectos
altamente polidos)
Depende da posio do observador, objecto e fonte
de luz
Num espelho perfeito, a reflexo d-se em ngulos
iguais
Observador s veria a reflexo de uma fonte pontual
se estivesse na direo certa
No modelo de Phong simulam-se reflectores
imperfeitos, assumindo que luz reflectida segundo
um cone cujo eixo passa pelo observador
21-11-2007 21
Iluminao Especular
u
N
L

u
Contribuio dada por
n
S S
n
S S
E R M I M I S ) ( cos = =
R
E
21-11-2007 22
Coeficiente de Especularidade
Indica quo polida a superfcie
Espelho ideal tem coeficiente de especularidade
infinito
Na prtica, usam-se valores entre 5 e 100
21-11-2007 23
Clculo do vector da luz
reflectida
N
L R
L
p
L
n
L N L N L L N L N L L R
n p n
= = = ) ( 2 ) ( ) (
L
p
21-11-2007 24
Componente Especular em
OpenGL
Utiliza o ngulo entre a normal e o vector halfway
L
R
E
N
H
n
S S
n
S S
N H M I M I S ) ( cos = = o
o
( ) L E
L E
H
+ =
|
.
|

\
|
+
=
normalizar
2
normalizar
21-11-2007 25
Atenuao
Para fontes de luz posicionais (w = 1), possvel
definir um factor de atenuao que leva em conta a
distncia d entre a fonte de luz e o objecto iluminado
Coeficientes so definidos pela funo glLight ()
Por omisso no h atenuao (c
0
=1, c
1
=c
2
=0)
2
2 1 0
1
d c d c c
aten
+ +
=
21-11-2007 26
Juntando tudo
A atenuao s aplicada sobre as componentes difusa e
especular
A frmula que calcula a cor de um vrtice devida a uma
fonte luminosa i dada por
( )
i i i i
S D aten A C + + =
No final, a cor dada pela contribuio da iluminao
ambiente (parcela no associada com fontes de luz)
somada luz emitida e s contribuies C
i
( )

+ + + + =
i i i
S D aten A E Amb C

You might also like