Professional Documents
Culture Documents
6 Iluminao
Engenharia Informtica (5385) - 2 ano, 2 semestre
Motivao
Modelo de Iluminao = aproximao da iluminao do mundo real Sensao da 3-dimensionalidade, percepo da profundidade Na maior parte das aplicaes, usa-se o modelo de iluminao de Phong porque temporalmente mais eficiente e porque permite uma representao bastante aproximada do mundo real.
wireframe
sem iluminao
iluminao directa
Cor ou intensidade determinada somente pela profundidade" do polgono. Cores ou intensidades mais escuras em pontos de maior profundidade no objecto: por exemplo, na modelao de superfcies terrestres. Evita os clculos complexos dos modelos dependentes da luz. Faz uma simulao realstica.
Percepo
Reduz a intensidade do pixel quando a distncia ao observador aumenta. Simula a reduo em claridade quando a distncia ao observador aumenta. A imagem desvanece com a distncia. Frequentemente usada em imagiologia mdica.
Propriedades da fonte de luz, tais como: cor, distncia entre a fonte de luz e o objecto, direco definida pela fonte de luz e pelo objecto, intensidade da fonte de luz Caractersticas da superfcie do objecto, tais como: cor e propriedades de reflexo Localizao do observador. Reflectida (reflexo difusa & reflexo especular) Absorvida Transmitida (translucente ou transparente) Combinao das trs anteriores
From: http://jedi.ks.uiuc.edu/~johns/raytracer/raygallery/stills.html
Directa ou Local
Interaco simples entre luz & objectos Processo em tempo-real suportado pela OpenGL Exemplo: modelo de iluminao de Phong
Iluminao
Indirecta ou Global
Interaco mltipla entre luz & objectos: reflexes entre objectos, sombras e refraces No em tempo-real (ainda) Exemplos: raytracing, radiosidade, photon mapping
5
Directa ou Local
Tipos de Luz Fontes de Luz (emisso) Materiais da superfcie dos objectos (reflexo)
Iluminao
Indirecta ou Global
Direct Illumination
Tipos de Luz
Luz
Ambiente
Vem de todas as direces; quando atinge a superfcie, espalha-se igualmente em todas as direces. Consequncia do espalhamento da luz: no depende do ponto de vista (do observador).
Luz
Difusa
Vem de uma direco; quando atinge a superfcie, espalha-se igualmente em todas as direces. Consequncia do espalhamento da luz: no depende do ponto de vista (do observador).
Luz
Especular
Vem de uma direco; tende a reflectir na superfcie numa direco preferencial. Consequncia do espalhamento da luz: depende do ponto de vista (do observador).
7
Ambiente
Pode ser usada para dar a sensao da cor principal do ambiente. Contribuies:
iluminao em contra-luz tem uma grande percentagem de luz ambiente um foco de luz fora-de-portas tem uma percentagem muito pequena de luz ambiente
Luz
Difusa
o tipo de luz que mais se aproxima da cor da luz. Contribuies:
Luz
Especular
a luz que mais se aproxima da luz unidireccional. Contribuies:
um feixe laser bem-colimado que incida num espelho de elevada qualidade produz quase 100 porcento de reflexo especular um metal brilhante tem uma elevada componente de luz especular o giz no reflecte quase nenhuma luz especular
de Luz
Tipos:
ambiente, posicional, direccional, cnica A cor de luz emitida dada pelas quantidades de luz vermelha, verde e azul. Cada fonte de luz pode ser ligada ou desligada.
Cor
Nmero
Material
da Superfcie
A cor do material dada pela percentagem das componentes vermelha, verde e azul que so reflectidas em vrias direces. Superfcies diferentes tm propriedades diferentes; algumas so brilhantes,pelo que reflectem preferencialmente a luz em certas direces, ao passo que outras espalham igualmente a luz em todas as direces. A maior parte das superfcies situam-se entre os dois extremos anteriores.
9
Tipo de luz emitida: emitida Tipos de luz reflectida: ambiente, difusa, especular
descreve a intensidade de energia, que sai da fonte de luz e que chega posio P(x, y, z) vinda da direco D (vector normalizado) com comprimento de onda
10
os seguintes:
Fonte de luz ambiente Fonte de luz pontual Fonte de luz direccional Fonte de luz cnica (spotlight)
LMPADA SOL HOLOFOTE
Modelada
ambiente
Em vez de calcular as reflexes nas superfcies dos objectos, especifica-se uma luz ambiente constante para todas as superfcies Definida somente pelas intensidades de luz ambiente RGB
Intensidade
No vem de nenhuma fonte de luz em particular. Permite-nos ver objectos numa cena mesmo que nela no haja quaisquer fontes de luz. A sua intensidade RGBA especificada pelo parmetro GL_LIGHT_MODEL_AMBIENT como se segue:
RGBA
13
Definida pelas intensidades de luz emitida RGB de todos os tipos, e pela direco D
direco importante para calcular a luz reflectida Intensidade da luz IL que chega ao ponto P(x,y,z):
I(P, D, I L ) = I L
14
emitida a partir dum ponto duma forma radial em todas as direces (fonte omni-direccional)
Definida pelas intensidades de luz (RGB) emitida de todos os tipos, pela posio L(x,y,z), e pelos factores (kc, kl, kq) de atenuao com a distncia d a P(x,y,z)
P (x,y,z)"
Intensidade
IL I(P, L, kc , kl , kq , I L ) = kc + k1d + kq d 2
15
Definida pelas intensidades de luz (RGB) emitida de todos os tipos, pela posio L, direco D, expoente de recorte do holofote pelos factores de atenuao constante, linear e quadrtica (kc, kl, kq)
P L
L D
Intensidade
Fonte de luz direccional. Est localizada no infinito relativamente cena. Fonte de luz pontual ou posicional. A sua distncia cena finita.
semelhana da fonte de luz pontual, uma fonte luz de holofote (spot light) tambm uma fonte de luz posicional. Fonte de luz pontual. Por defeito, a propriedade spotlight est inactiva porque o parmetro GL_SPOT_CUTOFF 180.0 graus. Este valor significa que a luz emitida em todas as direces (o ngulo no pice do cone 360 graus, ou seja, no um cone afinal de contas). Fonte de luz de holofote. O valor do ngulo de recorte GL_SPOT_CUTOFF do holofote est limitado ao intervalo [0.0,90.0].
GL_AMBIENT. a intensidade RGBA da luz ambiente que uma fonte de luz particular adiciona cena.
Valores
GL_DIFFUSE. a intensidade RGBA da luz difusa que uma fonte de luz particular adiciona cena.
Valores
RGBA por omisso: (1.0,1.0,1.0,1.0) para a LIGHT0 (brilhante, luz difusa branca) e (0.0,0.0,0.0,0.0) para qualquer outra fonte de luz.
GL_SPECULAR. a intensidade RGBA da luz especular que uma fonte de luz particular adiciona cena.
Valores
RGBA por omisso: (1.0,1.0,1.0,1.0) para a LIGHT0 e (0.0,0.0,0.0,0.0) para qualquer outra fonte de luz.
19
20
Componentes de Luz
A imagem ao lado mostra os efeitos da luz ambiente (canto superior esquerdo), da luz difusa (canto superior direito), luz especular (canto inferior esquerdo), e todas as 3 componentes combinadas (canto inferior direito).
luz ambiente
luz difusa
Direct Illumination
luz especular
21
Directa ou Local
Tipos de Luz Fontes de Luz (emisso) Materiais da superfcie dos objectos (reflexo)
Iluminao
Indirecta ou Global
Direct Illumination
22
Descreve a quantidade de energia incidente na superfcie que vem da direco (,) e que reflecte segundo a direco (,) com o comprimento de onda
23
Modelo de Reflexo
Modelo
Analtico Simplificado:
24
Reflexo Difusa
Um reflector difuso ideal, a nvel microscpico, uma superfcie muito rugosa (exemplo do mundo real: giz) Devido a estas variaes microscpicas, um raio de luz incidente igualmente reflectido em todas as direces acima do hemisfrio definido pela superfcie. Ou seja, assume-se que a superfcie reflecte igualmente em todas as direces.
superfcie
25
Reflexo Difusa
Depende do ngulo da luz incidente. surface Quanto maior o valor de , menor a quantidade de luz reflectida. A quantidade de luz reflectida depende da posio da fonte de luz e da posio do objecto, mas independente da posio do observador.
surface
surface
26
Reflexo Difusa
Modelo
Lambertiano
Lei dos Cosenos de Lambert (producto interno) A intensidade de luz difusa ID reflectida pela superfcie no ponto P (x,y,z) proporcional ao coseno do L ngulo entre o vector na direco fonte de luz e o vector da normal N superfcie em P(x,y,z). ID = intensidade de luz difusa reflectida I = intensidade da fonte de luz em P(x,y,z) KD = coeficiente de reflexo da superfcie (0<= KD <=1) = entre 0 e 90 graus
N
!
superfcie
ID = KD
N L I
27
Reflexo Especular
Reflexo
N
! !
surface
Quanta
luz vista?
observador
Depende do ngulo da luz incidente e do ngulo ao observador Se o reflector no perfeito, a intensidade da luz reflectida diminui rapidamente quando o ngulo ao observador aumenta relativamente ao ngulo de incidncia.
R
!
surface
N
! !
P
28
Reflexo Especular
Modelo de n (cos )
Phong
n = expoente de reflexo especular (reflector perfeito n=) IS = intensidade de luz especular reflectida I = intensidade de luz em P(x,y,z) KS = coeficiente de luz especular reflectida (0<= KS <=1) = entre 0 e 90 graus
observador
! V !
N
!
superfcie
n IS = KS V R I
29
produzida por uma fonte de luz superficial, no por uma fonte de luz pontual. Representa a luz emitida directamente por um polgono ou disco dum objecto. Isto preciso porque alguns objectos do mundo-real, nomeadamente lmpadas, emitem luz. Assim, se uma lmpada faz parte duma cena, temos de especificar no s a sua fonte de luz posicional, mas tambm que o material da sua superfcie emite luz.
I EL = I E
30
Pela especificao duma cor RGBA para GL_EMISSION, podemos fazer com que um objecto parea emitir luz daquela cor. Dado que os objectos do mundo-real (excepto luzes) no emitem luz, podemos usar o parmetro GL_EMISSION para simular o funcionamento de lmpadas e outras fontes de luz de uma cena.. Contudo, uma fonte de luz superficial no funciona realmente como uma fonte de luz. Para conseguir tal efeito, necessrio tambm criar uma fonte de luz e posicion-la na mesma posio que o objecto emissivo de luz.
31
Reflexo Ambiente
Representa
I AL = K A I A
Isto evita a complexidade da iluminao global! 32
Modelo de Reflexo
Modelo
Analtico Simplificado:
33
Modelo de Reflexo
Soma
34
Fonte de Luz:
R N
!
observador
! V !
superfcie
I = IE + KAIA + KD
n N L I + KS V R I
35
Fontes de Luz:
observador
N L2
L1
superfcie
# lights
P
D
I = IE + KAIA +
[K (
i =1
n N Li + K S V Ri ]I i
36
Materiais em OpenGL
As propriedades do material dum objecto definem como ele interage com as fontes de luz por forma a produzir a sua cor final. As propriedades do material so definidas atravs de:
Os objectos podem ter materiais diferentes para os polgonos visveis (anteriores) e para os polgonos ocultos (posteriores).
37
GL_AMBIENT, GL_DIFFUSE, GL_AMBIENT_AND_DIFFUSE, e GL_SPECULAR so usadas para definir como o material interage com as componentes respectivas da fonte de luz. GL_SHININESS controla o extenso do realce ou brilho especular. GL_EMISSION controla a quantidade de luz que um objecto emite.
38
Normalmente, quando a iluminao activada, a cor primria (especificada por glColor()) ignorada. Contudo, pode ser conveniente mudar as cores do material atravs de glColor() em vez de usar glMaterial(). Isto possvel se se activar a cor do material com: glEnable(GL_COLOR_MATERIAL);
As componentes de material (ambiente, difusa, ambiente e difusa, ou especular) e as faces (anteriores, posteriores, ou ambas) afectadas pela cor do material podem ser controladas com: glColorMaterial(GLenum face, GLenum mode);
39
Normais em OpenGL
A normal corrente activada com: void glNormal3{bsifd}(TYPE nx, TYPE ny, TYPE nz); void glNormal3{bsifd}v(const TYPE *v); As normais devem ter comprimento unitrio para que os resultados sejam correctos. Se a matriz modelview mudar o comprimento das suas normais, h que renormaliz-los usando: glEnable(GL_NORMALIZE);
Se se variar a escala dum modo uniforme, uma forma alternativa a GL_NORMALIZE : glEnable(GL_RESCALE_NORMAL);
40
As propriedades que podemos modificar incluem as seguintes: GL_LIGHT_MODEL_AMBIENT controla a luz ambiente global aplicada a todos os aobjectos GL_LIGHT_MODEL_LOCAL_VIEWER controla se o observador est no infinito (modelo menos aproximado) ou est na posio da cmara (modelo mais aproximado) GL_LIGHT_MODEL_TWO_SIZE controla se a iluminao calculada para as faces anteriores e posteriores separadamente ou no. GL_LIGHT_MODEL_COLOR_CONTROL permite que a OpenGL interpole a cor especular separadamente, aplicando-a ento aps a texturizao, por forma a preservar os brilhos reflexos.
41
Directa
ou Local
Tipos de Luz Fontes de Luz (emisso) Materiais da superfcie dos objectos (reflexo)
Iluminao
Indirecta
Global Illumination
ou Global
FIM
42