computação gráfica - fenix.tecnico.ulisboa.pt · § carga computacional
Post on 21-Sep-2018
216 Views
Preview:
TRANSCRIPT
Licenciatura em Engenharia Informática e de Computadores Computação Gráfica
Modelos de Iluminação e Reflexão
© 2012 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL
Edward Angel, Cap. 5
LEIC CG Sumário
� Iluminação e Reflexão
§ Modelo de Reflexão de Phong
§ Aproximação de Blinn
§ Modelo de Reflexão de Blinn-Phong
© 2012 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL
LEIC CG
Pipeline de Visualização 3D
© 2012 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL
LEIC CG
© 2012 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL
Pipeline de Visualização 3D
LEIC CG
© 2012 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL
Pipeline de Visualização 3D
LEIC CG
Luz e Materiais
© 2012 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL
LEIC CG Interacção Luz - Materiais � Energia luminosa reflectida na direcção da câmara
§ Define a cor representada • Objecto vermelho e fonte de luz branca
� material absorve a energia luminosa em todos os comprimentos de onda excepto no vermelho
• Objecto transparente � toda a energia luminosa é transmitida/refractada
� Resultado diferente se alterada posição de § câmara § objecto § fonte de luz § observador
© 2012 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL
LEIC CG Fontes de Energia Luminosa
� Compostas por múltiplos pontos de emissão
� Cada ponto pode emitir de modo diferente I(x1, y1, z1, θ1, ϕ1, λ)
I(x2, y2, z2, θ2, ϕ2, λ)
Na prática L=(IR, IG, IB)
© 2012 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL
LEIC CG Fontes de Luz Simplificadas
� Pontual § Posição e cor § Intensidade diminui com a distância
� Direccional § Cor e direcção (localizada no infinito)
� Spotlight § Posição, cor, emissão num dado um ângulo sólido
� Luz Ambiente § Contribuição de múltiplas fontes § Constante em todos os pontos da cena § Não tem direcção © 2012 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL
LEIC CG Tipos de Materiais � Modo como reflectem a energia luminosa:
§ Especular: numa só direcção § Difusa: igual em todas as direcções
� Especificação dos materiais § Cor § Coeficientes de reflexão
Especular Difusa
© 2012 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL
LEIC CG Vectores Envolvidos
� Direcção da fonte de luz ( l )
� Direcção da câmara ( v )
� Normal à superfície ( n )
� Direcção de reflexão perfeita ( r )
l
nv
r
© 2012 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL
LEIC CG
Modelos de Iluminação e Reflexão
© 2012 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL
LEIC CG Iluminação e Reflexão (1/2)
� Modelos de Iluminação e Reflexão § Essenciais para representação de cenas 3D
• a duas dimensões • com um significativo grau de realismo
© 2012 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL
LEIC CG Iluminação e Reflexão (2/2)
� Modelo de Reflexão § descreve como luz interage com superfície dos objectos
• Em função de � propriedades dessas superfícies � natureza da luz incidente
� Modelo de Iluminação § descreve a natureza e a distribuição de intensidade da luz
• emanada pelas fontes luminosas presentes na cena
© 2012 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL
LEIC CG Sombreamento
� Depois de se ter § Definido modelos de iluminação e reflexão § Determinado as posições e orientações relativas de
• objectos • fontes de luz
� Pode-se proceder ao § Cálculo de sombreamento das superfícies dos objectos
“Shading” No terceiro andar
do pipeline.
© 2012 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL
LEIC CG
Modelo de Iluminação de Phong
© 2012 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL
LEIC CG Modelo de Reflexão de Phong
� Garante compromisso equilibrado entre § grau de realismo § carga computacional
� Modela a intensidade luminosa § Combinação linear de três componentes
• Reflexão Ambiente • Reflexão Difusa • Reflexão Especular
© 2012 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL
LEIC CG
Modelo de Reflexão de Phong Reflexão Ambiente
� Permite iluminar § objectos que não estão directamente iluminados
� Complementa iluminação § Objectos directamente iluminados
� Definida por
Ia = ka La � Onde:
§ Ka: coeficiente de reflexão de luz ambiente (0 ≤ ka ≤ 1) § La: valor de luz ambiente
• global ou contribuição de fontes de luz individuais
© 2012 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL
LEIC CG
Modelo de Reflexão de Phong Reflexão Difusa
� Superfície difusora perfeita § difunde igual intensidade luminosa em todas as direcções § a luminosidade apreendida por um observador
• não depende do seu ponto de vista
� Intensidade da luz Difusa § Estimada pela lei de Lambert
n v l
© 2012 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL
LEIC CG Lei de Lambert
� Estima intensidade da energia luminosa difundida
� Dada por: Id=Ld . kd cos Θ
� Onde: § Θ : ângulo entre fonte de luz e normal à superfície (0 ≤ Θ ≤ π/2) § kd : coeficiente de reflexão difusa (0 ≤ kd ≤ 1 ) § Ld: intensidade da componente difusa da fonte de luz
n
l
Θ
© 2012 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL
LEIC CG
Modelo de Reflexão de Phong Reflexão Difusa
� Intensidade da luz Difusa § Estimada pela lei de Lambert
� Dada por:
n
v l Θ
( )0,max nlLkI ddd!!⋅=
© 2012 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL
LEIC CG
Modelo de Reflexão de Phong Reflexão Especular
� Superfícies reflectoras perfeitas (especulares) § Energia luminosa reflectida numa única direcção…
n
raio reflectido
raio incidente
Superfície especular perfeita
Θ Θ
© 2012 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL
LEIC CG
Modelo de Reflexão de Phong Reflexão Especular
� Modela grau de brilho de uma superfície § Representada pela quantidade de luz reflectida
• de modo especular • em torno da direcção de reflexão ideal
(ângulo de reflexão igual ao ângulo de incidência)
n r l
v
© 2012 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL
LEIC CG
Modelo de Reflexão de Phong Reflexão Especular
� Superfícies especulares imperfeitas
© 2012 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL
LEIC CG
Modelo de Iluminação de Phong Reflexão Especular � Intensidade diminui cosα
§ com o aumento do ângulo entre R e V
� Intensidade dada por:
� Onde: § α : coeficiente de brilho (shininess) § ks: coeficiente de reflexão especular § Ls: intensidade da componente especular da fonte de luz
n r l
v Θ Θ φ
( )( )0,max αvrLkI sss!!⋅=
© 2012 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL
LEIC CG
Modelo de Reflexão de Phong Coeficiente de Brilho � Metais – α entre 100 e 200
� Plásticos – α entre 5 e 10
cosα φ
φ 90 -90
© 2012 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL
LEIC CG
Superfícies especulares Exemplo
© 2012 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL
LEIC CG
Modelo de Reflexão de Phong Resultado Global
n
r l
P
v
(α >>) (α <<)
ambiente + difusa
especular
( ) ( )( )0,max0,max αvrLknlLkLkI ssddaa!!!!⋅+⋅+=
© 2012 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL
LEIC CG
Modelo de Reflexão de Phong
Atenuação Atmosférica � Valor da energia luminosa depende da distância
§ Entre superfície e fonte de luz
� Intensidade de luz é dada por:
� Onde
§ d: distância do objecto à fonte de luz § a, b,e c: constantes empíricas § L: intensidade de luz na fonte
2cdbdaLI++
=
© 2012 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL
LEIC CG
Modelo de Reflexão de Phong Resultado Global
n
r l
P
v
(α >>) (α <<)
ambiente + difusa
especular
( ) ( )( )0,max0,max 22αvr
cdbdaLknl
cdbdaLkLkI s
sd
daa!!!!⋅
+++⋅
+++=
© 2012 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL
LEIC CG
Modelo de Reflexão de Phong Resultado Global
� Várias (i) fontes de luz § Componente Especular
§ Componente Difusa
α)( vrLkI ii
isss!!⋅= ∑
)( nlLkI ii
iddd!!⋅= ∑
© 2012 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL
LEIC CG
© 2012 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL
r2 l2
L2
r3
l3
L3
Modelo de Reflexão de Phong Resultado Global � Intensidade de luz num ponto da superfície
§ Dada pela expressão:
I = 1a+ bdi + cdi
2 kdLidmax(!li ⋅!n)+ ksLismax(
!ri ⋅!v)α( )
i∑ + kaLia
n
r1 l1
P
v L1
LEIC CG
Modelo de Reflexão de Phong Controlo da Cor
� No objecto § kra, kga, kba : coeficientes de reflexão ambiente
§ krd, kgd, kbd : coeficientes de reflexão difusa
§ krs, kgs, kbs : coeficientes de reflexão especular
� Na fonte de luz § Lra, Lga, Lba: intensidade de luz ambiente § Lrd, Lgd, Lbd: intensidade de luz difusa § Lrs, Lgs, Lbs: intensidade de luz especular
© 2012 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL
LEIC CG
Modelo de Reflexão de Phong Resultado Global � Intensidade de luz num ponto da superfície
§ Dada pelas expressões:
( ) irarai
iirsrsiirdrdii
r LkvrLknlLkcdbda
I +⋅+⋅++
=∑ α)0,max()0,max(12
!!!!
( ) igagai
iigsgsiigdgdii
g LkvrLknlLkcdbda
I +⋅+⋅++
=∑ α)0,max()0,max(12
!!!!
( ) ibabai
iibsbsiibdbdii
b LkvrLknlLkcdbda
I +⋅+⋅++
=∑ α)0,max()0,max(12
!!!!
© 2012 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL
LEIC CG
Modelo de Reflexão de Phong
© 2012 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
=
b
g
r
P
III
I
r2 l2
L2
r3
l3
L3
n r1 l1
P
v L1
bgrP IIII ++≠
LEIC CG
Modelo de Reflexão de Phong
r2 l2
L2
r3
l3
L3
n r1 l1
P
v L1
( )
( )
( )⎥⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢⎢
⎣
⎡
+⋅+⋅++
+⋅+⋅++
+⋅+⋅++
=
∑
∑
∑
ibabai
iibsbsiibdbdii
igagai
iigsgsiigdgdii
irarai
iirsrsiirdrdii
P
LkvrLknlLkcdbda
LkvrLknlLkcdbda
LkvrLknlLkcdbda
I
α
α
α
)0,max()0,max(1
)0,max()0,max(1
)0,max()0,max(1
2
2
2
!!!!
!!!!
!!!!
LEIC CG
Modelo de Phong Modificado
© 2012 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL
LEIC CG Modelo de Reflexão de Phong
� Na aplicação do modelo de Phong original § Tem de se determinar
• Para todos os pontos da superfície • Na determinação da componente especular
� Pode-se obter uma aproximação § do valor da componente especular § de forma mais eficiente
r!
n r l
v
© 2012 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL
LEIC CG
Aproximação de Blinn (1/2)
� Cálculo de vector é caro § Calcula-se
• Vector normal a uma hipotética faceta reflectora pura • Vector médio normalizado (halfway vector)
r!!h
!h =!l + !v!l + !v
n l
v
h
Vectores l e v unitários
© 2012 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL
LEIC CG Aproximação de Blinn (2/2)
� No cálculo da componente especular § Usar § em vez de
§ escolhendo β de modo a que
( )αvr !! ⋅
( )βhn !! ⋅
( ) ( )αβvrhn !!!!⋅≈⋅
© 2012 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL
LEIC CG
© 2012 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL
h2
l2
L2
r3
l3
L3
Modelo de Phong Modificado (Modelo de Blinn-Phong) � Intensidade de luz num ponto da superfície
§ Dada pela expressão:
( ) iaai
iissiiddii
LkhnLknlLkcdbda
I +⋅+⋅++
=∑ β)0,max()0,max(12
!!!!
n h1
l1
P
v L1
LEIC CG
Modelo de Reflexão de Blinn-Phong
h2
l2
L2 h3
l3
L3
n h1
l1
P
v L1
( )
( )
( )⎥⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢⎢
⎣
⎡
+⋅+⋅++
+⋅+⋅++
+⋅+⋅++
=
∑
∑
∑
ibabai
iibsbsiibdbdii
igagai
iigsgsiigdgdii
irarai
iirsrsiirdrdii
P
LkhnLknlLkcdbda
LkhnLknlLkcdbda
LkhnLknlLkcdbda
I
β
β
β
)0,max()0,max(1
)0,max()0,max(1
)0,max()0,max(1
2
2
2
!!!!
!!!!
!!!!
LEIC CG
© 2012 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL
Modelo de Phong Modificado (Modelo de Blinn-Phong)
� Modelo usado por omissão no OpenGL § Aplicado a todos as vértices
• Que passem ao � 3º passo do 2º andar do pipeline
LEIC CG
Iluminação e Materiais em OpenGL
� Activar cálculo da Iluminação § glEnable(GL_LIGHTING) § Depois de activado, glColor() é ignorado
� Activar individualmente cada fonte de luz § glEnable(GL_LIGHTi) // i=0,1…
� Escolher parâmetros do modelo de iluminação § glLightModel{fi}{v}(pname, params) § Exemplo: Definir luz ambiente global GLfloat amb[] = {0.2f, 0.2f, 0.2f, 1.0}; glLightModelfv(GL_LIGHT_MODEL_AMBIENT,amb); …
© 2012 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL
LEIC CG
Iluminação e Materiais em OpenGL
� Propriedades das fontes de luz: § Ia, Is e Id
§ Posição e direcção (se aplicável) § Atenuação, spot cut-off e spot exponent
© 2012 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL
GLfloat ambient[] = { 0.0, 0.1, 0.0, 1.0 }; GLfloat diffuse[] = { 0.0, 1.0, 1.0, 1.0 }; GLfloat specular[] = { 1.0, 1.0, 1.0, 1.0 }; (…) glLightfv(GL_LIGHT0, GL_AMBIENT, ambient); glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse); glLightfv(GL_LIGHT0, GL_SPECULAR, specular); (…)
LEIC CG
Iluminação e Materiais em OpenGL
� Propriedades das fontes de luz: § Is, Id e Ia
§ Posição e direcção (se aplicável) § Atenuação, spot cut-off e spot exponent
© 2012 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL
GLfloat position[] = {2.0, 2.0, 0.0, 1.0} GLfloat directional[] = {-1.0, -1.0, 0.0, 0.0 } (…) // point light glLightfv(GL_LIGHT0, GL_POSITION, position); // directional light glLightfv(GL_LIGHT1, GL_POSITION, directional); (…)
LEIC CG
Iluminação e Materiais em OpenGL
� Propriedades das fontes de luz: § Is, Id e Ia
§ Posição e direcção (se aplicável) § Atenuação, spot cut-off e spot exponent
© 2012 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL
(…) glLightf(GL_LIGHT0, GL_CONSTANT_ATTENUATION, a) glLightf(GL_LIGHT0, GL_LINEAR_ATTENUATION, b) glLightf(GL_LIGHT0, GL_QUADRATIC_ATTENUATION, c) (…)
21
iii cdbdaf
++=
LEIC CG
Iluminação e Materiais em OpenGL
� Propriedades das fontes de luz: § Is, Id e Ia
§ Posição e direcção (se aplicável) § Atenuação, spot cut-off e spot exponent (α)
© 2012 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL
(…) glLightfv(GL_LIGHT0, GL_SPOT_DIRECTION, direction) glLightf(GL_LIGHT0, GL_SPOT_CUTOFF, theta) // 0~180 glLightf(GL_LIGHT0, GL_SPOT_EXPONENT, alpha) // 0~128 (…)
θ-θ φ
cosαφ
LEIC CG
Iluminação e Materiais em OpenGL
� Propriedades das fontes de luz: § Is, Id e Ia
§ Posição e direcção (se aplicável) § Atenuação, spot cut-off e spot exponent (α)
© 2012 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL
(…) glLightfv(GL_LIGHT0, GL_SPOT_DIRECTION, direction) glLightf(GL_LIGHT0, GL_SPOT_CUTOFF, theta) // 0~180 glLightf(GL_LIGHT0, GL_SPOT_EXPONENT, alpha) // 0~128 (…)
( )( )⎪⎩
⎪⎨
⎧
⋅
=
otherwisedvinspotifspotlightif
0,max)(! 0
)(! 1effectspotlight_
α
LEIC CG
Iluminação e Materiais em OpenGL
� Material das superfícies: § ks, kd e ka
§ kemmisive – Componente “emissiva” do material
© 2012 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL
GLfloat matambient[] = { 0.5, 0.5, 0.5, 1.0 }; GLfloat mat_diffuse[] = { 0.6, 0.6, 0.0, 1.0 }; GLfloat mat_specular[] = { 0.8, 0.8, 0.8, 1.0 }; GLfloat mat_emission[] = {0.3, 0.2, 0.2, 0.0}; GLfloat mat_shine = 100.0 (…) glMaterialfv (GL_FRONT, GL_AMBIENT, mat_ambient); glMaterialfv (GL_FRONT, GL_DIFFUSE, mat_diffuse); glMaterialfv (GL_FRONT, GL_SPECULAR, mat_specular); glMaterialfv (GL_FRONT, GL_EMISSION, mat_emission); glMaterialf (GL_FRONT, GL_SHININESS, mat_shine); (…)
LEIC CG
Iluminação e Materiais em OpenGL
© 2012 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL
LEIC CG
Iluminação e Materiais em OpenGL
© 2012 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL
LEIC CG
© 2012 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL
Pipeline de Visualização 3D
LEIC CG Próxima Aula
Colisões e Sombreamento
© 2012 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL
Edward Angel, Cap. 7 Apontamentos CG
top related