Sei sulla pagina 1di 24

Iluminao

Mrcio Bueno
{cgtarde,cgnoite}@marciobueno.com)

Fonte: Material do Prof. Claudio Esperana


e do Prof. Paulo Roma Cavalcanti

Iluminao
Estudo de como a luz
interage com objetos de
uma cena

Emisso
Transmisso
Absoro
Refrao
Reflexo

Computao Grfica - Mrcio Bueno

Modelo Fsico
Luz modelada como radiao eletromagntica
Leva em conta todas as interaes (todos os caminhos da
luz)
Intratvel computacionalmente

Computao Grfica - Mrcio Bueno

Modelos de Iluminao
Tipicamente, a luz amostrada em um nmero discreto
de primrias (comprimentos de onda)
Modelos locais (primeira ordem)

Apenas caminhos do tipo fonte luminosa superfcie olho


so tratados
Simples
Ex.: OpenGL

Modelos globais

Muitos caminhos (ray tracing, radiosidade)


Complexos

Computao Grfica - Mrcio Bueno

Modelo de Booknight
Considera apenas a reflexo difusa.

Iluminao recebida em um ponto de uma superfcie refletida


uniformemente em todas as direes

Contribuio proveniente da iluminao recebida de


forma indireta modelada como uma constante.
Baseia-se apenas na reflexo lambertiana.

Computao Grfica - Mrcio Bueno

Iluminao Difusa
Caracterstica de materiais foscos.
Lei de Lambert (fluxo de energia):

a luminosidade aparente da superfcie no depende da


posio do observador, mas apenas do cosseno do ngulo
entre a normal e a direo da luz

Computao Grfica - Mrcio Bueno

Modelo Difuso
Intensidade em um ponto p dada por:

L N
I p I a ka I d kd cos I a ka I d kd (
)
LN
N

L
p

Computao Grfica - Mrcio Bueno

Iluminao Especular
Simula a reflexo maneira de um espelho (objetos
altamente polidos).
Depende da disposio entre observador, objeto e fonte
de luz.
Em um espelho perfeito, a reflexo se d em ngulos
iguais

Observador s enxergaria a reflexo de uma fonte pontual


se estivesse na direo certa.

No modelo de Phong, simulam-se refletores imperfeitos


assumindo que luz refletida segundo um cone cujo eixo
passa pelo observador.

Computao Grfica - Mrcio Bueno

Modelo de Phong
Contribuio especular dada por

RE n
I p I e ke cos I e ke (
)
RE
n

N
R

L
p

Computao Grfica - Mrcio Bueno

Coeficiente de Especularidade

Indica quo polida a superfcie

10

Espelho ideal tem especularidade infinita


Na prtica, usam-se valores entre 5 e 100

Computao Grfica - Mrcio Bueno

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 (independe da posio do
observador)
Especular: contribuio referente ao comportamento de
superfcies polidas

11

Computao Grfica - Mrcio Bueno

Componentes do Modelo de Phong


I p I a ka I d kd L, N I e ke H , N n

12

Difusa

Especular

Ambiente

Iluminao em OpenGL

Assume fontes pontuais de luz

Onidirecionais
Spot

Interaes de luz com superfcie modeladas em


componentes (modelo de Phong):

13

Emisso
Ambiente
Difusa
Especular

Computao Grfica - Mrcio Bueno

Iluminao em OpenGL

Suporte a efeitos atmosfricos como:

Fog
Atenuao

Modelo de iluminao computado apenas nos vrtices


dos polgonos.
Suporta Gouraud shading

14

Cor dos pixels no interior dos polgonos obtida por


interpolao linear.

Computao Grfica - Mrcio Bueno

Fontes de Luz

Para ligar uma fonte: glEnable (source);

source uma constante cujo nome GL_LIGHTi, 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

15

glEnable (GL_LIGHTING);

Computao Grfica - Mrcio Bueno

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:

Geometria da fonte

GL_POSITION, GL_SPOT_DIRECTION, GL_SPOT_CUTOFF,


GL_SPOT_EXPONENT

Coeficientes de atenuao

16

GL_AMBIENT, GL_DIFFUSE, GL_SPECULAR

GL_CONSTANT_ATTENUATION, GL_LINEAR_ATTENUATION,
GL_QUADRATIC_ATTENUATION

Computao Grfica - Mrcio Bueno

Propriedades de Material

Especificados por

glMaterialfv (face, property, value)


Face designa quais lados da superfcie se quer configurar:

Property designa a propriedade do modelo de iluminao:

17

GL_FRONT, GL_BACK, GL_FRONT_AND_BACK

GL_AMBIENT, GL_DIFFUSE, GL_SPECULAR,


GL_EMISSION, GL_SHININESS

Computao Grfica - Mrcio Bueno

Geometria

Alm das propriedades da luz e do material, a geometria


do objeto tambm importante

A posio dos vrtices com relao ao olho e fonte luminosa


contribui no clculo dos efeitos atmosfricos
A normal fundamental

18

No calculada automaticamente
Precisa ser especificada com glNormal ()

Computao Grfica - Mrcio Bueno

Computando o Vetor Normal

Tringulo

Dados trs vrtices,

n normalizar(( A B) (C A))

Polgono planar

Uma opo usar a frmula do tringulo para quaisquer 3


vrtices

Outra opo determinar a equao do plano

19

Sujeito a erros (vetores pequenos ou quase colineares)


ax + by + cz + d = 0
Normal tem coordenadas (a, b, c)

Computao Grfica - Mrcio Bueno

Calculando o Vetor Normal de Superfcies


Implcitas

Normal dada pelo vetor


gradiente

f ( x, y , z ) 0
f / x


n f / y
f / z

f (x,y,z) = c1
f (x,y,z) = c2
20

Computao Grfica - Mrcio Bueno

f (x,y,z) = c3

Calculando o Vetor Normal de


Superfcies Paramtricas

Normal dada pelo


produto vetorial dos
gradientes em relao aos
parmetros u e v

n
f
u
f
v

f x (u , v)

P f y (u , v)
f (u , v)
z

f x / u f x / v

f f
n

f y / u f y / v
u v
f / v

f
/

u
z

21

Computao Grfica - Mrcio Bueno

Iluminao Ambiente

Componente que modela como uma constante o efeito


da reflexo de outros objetos do ambiente
Depende dos coeficientes GL_AMBIENT tanto das
fontes luminosas quanto dos materiais
ainda possvel usar luminosidade ambiente no
relacionada com fontes luminosas

glLightMaterialfv (GL_LIGHT_MODEL_AMBIENT,
params)

Contribuio dada por

A I a ka
22

Computao Grfica - Mrcio Bueno

Atenuao

Para fontes de luz posicionais (w = 1), possvel definir


um fator de atenuao que leva em conta a distncia d
entre a fonte de luz e o objeto sendo iluminado
Coeficientes so definidos pela funo glLight ()
Por default, no h atenuao (c0=1, c1=c2=0)

1
aten
c0 c1d c2 d 2

23

Computao Grfica - Mrcio Bueno

Juntando tudo

A atenuao s aplicada sobre s componentes difusa e


especular.
A frmula que calcula a cor de um vrtice devida a uma fonte
luminosa i dada por:

Ci Ai aten Di Si
Portanto, no total, a cor dada pela contribuio da
iluminao ambiente (parcela no associada com fontes de
luz) somada luz emitida e s contribuies Ci

C Amb E Ai aten Di Si
24

Computao Grfica - Mrcio Bueno

Potrebbero piacerti anche