30-Mar-11 Leandro Tonietto
Iluminação e Sombreamento
Leandro ToniettoComputação Grá[email protected]://professor.unisinos.br/ltonietto/jed/cgr/iluminacao.pdfago-11Baseado no material do prof. Christian Hofsetz e de Cristiano Franco
quarta-feira, 31 de agosto de 11
30-Mar-11 Leandro Tonietto 2
Sumário
IntroduçãoModelos de iluminação
Luz ambienteReflexão difusaAtenuação atmosféricaAtenuação especularModelo de iluminação de PhongMúltiplas fontes de Luz
Modelos de sombreamento de polígonosFlat shadingInterpolated shadingPolygon-mesh shading
Gouraud shadingPhong shading
Problemas com sombreamento por interpolaçãoIluminação em OpenGL
quarta-feira, 31 de agosto de 11
30-Mar-11 Leandro Tonietto 3
Introdução
Idéia é determinar uma cor numa superfície, considerando suas propriedades (cor, textura, material, ...) e fatores externos, como a luz que incide sobre a superfície, num determinado ponto da mesma.Shading model x ilumination model
Modelo de sombreamento determina quando o modelo de iluminação é aplicado e quais argumentos ele recebe.
Diversos modelos são propostos para iluminação. Veremos modelos mais simples e que resolvem o problema de forma eficiente e com menor custo computacional.
quarta-feira, 31 de agosto de 11
30-Mar-11 Leandro Tonietto 4
Modelos de iluminação
Estes modelos determinam como a luz interfere (como é recebida) numa superfície.Isto implica em alterações na visualização do objeto, ou seja, em como ele será renderizado.
Fotografia que mostra um mesmo “objeto” do mundo real iluminado com duas luzes diferentes.
Dependendo da luz que incide sobre um objeto, ele muda completamente a sua colorização.
quarta-feira, 31 de agosto de 11
30-Mar-11 Leandro Tonietto 5
Luz ambiente
Num modelo de iluminação ambiente, fatores externos de iluminação são ignorados; um objeto é desenhado apenas com a cor que é intrínseca a ele. Apenas a cor dele é renderizada.
Imaginem retirada de [2]: cena renderizada com iluminação ambiente
apenas
quarta-feira, 31 de agosto de 11
30-Mar-11 Leandro Tonietto 6
Luz ambiente
Este é o modelo de iluminação mais simples possível: um objeto que é iluminado por si mesmo. Equação de iluminação:I = kiI é a intensidade resultanteki é a intensidade intrínseca do objeto
Processo de calcular a equação de iluminação em um ponto também chama-se iluminar um objeto.
quarta-feira, 31 de agosto de 11
30-Mar-11 Leandro Tonietto 7
Luz ambiente
Agora, ao invés de luminosidade própria, consideremos a existência de uma fonte de luz sem direção específica, resultante das reflexões entre as muitas superfícies presentes no ambiente: conhecida como luz ambiente.Equação:I = Ia ka
I é a intensidade resultante
Ia é a intensidade da luz ambiente, constante para todos os objetos da cenaka é o coeficiente de reflexão ambiente [0..1]. É o quanto da luz ambiente é refletida pelo objeto. É a propriedade do material do objeto.
quarta-feira, 31 de agosto de 11
30-Mar-11 Leandro Tonietto 8
Reflexão Difusa
A intensidade iluminação dos objetos é dada pela intensidade da luz ambiente. Entretanto, até momento, eles ainda são iluminados de maneira uniforme ao longo de sua superfície.
Ou eles são mais claros, ou são mais escuros.Considere agora uma fonte de luz pontual, cujos raios emanam uniformemente de um único ponto.O iluminação das partes do objeto varia de acordo com a distância e a direção em relação ao ponto de luz.
quarta-feira, 31 de agosto de 11
30-Mar-11 Leandro Tonietto 9
Reflexão Difusa
Alguns materiais apresentam reflexão difusaEssas superfícies refletem a energia luminosa igualmente, sob qualquer ângulo de visão, porque elas refletem luz com igual intensidade em todas as direções.O brilho dependerá somente do ângulo formado entre a direção da fonte da luz e a normal da superfície
Exemplo de reflexão difusa em [2].
quarta-feira, 31 de agosto de 11
30-Mar-11 Leandro Tonietto 10
Reflexão Difusa
Quantidade de luz incidente em uma área infinitesimal dA é proporcional ao cosseno Θ Quantidade de área vista é inversamente proporcional ao cosseno do ângulo Quantidade de luz refletida para o observador é diretamente proporcional ao cosseno do ângulo entre a direção do observador V e N (Lei de Lambert)Logo, esses dois fatores se cancelam
Ex: Quando o ângulo de visão cresce, o observador vê mais área, mas a quantidade de luz por área é proporcionalmente menor
Θ
Θ
Θ
quarta-feira, 31 de agosto de 11
30-Mar-11 Leandro Tonietto 11
Reflexão Difusa
Sendo assim, reflexão difusa independe da direção do observador sendo proporcional somente ao cosseno de Θ.I = Ip kd cos Θ
Ip Intensidade da fonte de luz
kd coeficiente de reflexão difusa (constante [0..1])
Considerando vetores normalizados:I = Ip kd (N.L)
Combinando com componente de ambienteI = Ia ka + Ip kd (N.L)
→ →
→ →
quarta-feira, 31 de agosto de 11
30-Mar-11 Leandro Tonietto 13
Reflexão Difusa
Caso projetarmos duas superfícies paralelas de material idêntico, iluminadas a partir do observador, equação atual não distinguirá onde termina uma superfície e onde começa outra, não importando a distância.Para simular esta diferença de distância, criou-se um fator de atenuação da fonte de luz (fatt)
I = Ia ka + fatt Ip kd (N.L)→ →
quarta-feira, 31 de agosto de 11
30-Mar-11 Leandro Tonietto 14
Reflexão Difusa
Atenuação da fonte de luz (fatt):
A primeira equação é a uma solução mais trivial para atenuação um cálculo linear de distância.Entretanto, na prática, se a luz está mais longe há pouca variação em os objetos; se ela está mais próxima, ela pode variar mais.c1, c2 e c3 são constantes definidas pelo usuário.
X
quarta-feira, 31 de agosto de 11
30-Mar-11 Leandro Tonietto 15
Reflexão Difusa
Considerando as componentes de cor, a fórmula deve multiplicar cada termo pela cor do objeto, assim como é percebido pelo ambiente e pela cor da difusa. Portanto: Iλ = IaλkaλOλ + fattIpλkdλOdλ (N.L)
Onde:Iλ é a intensidade resultante para cada canal RGB
λ representa um canal por vez
Iaλ é a intensidade da luz ambiente para cada canal RGB
Ipλ é a intensidade resultante para cada canal RGB
Oλ é cor do objeto para cada canal RGB
Odλ é cor da luz difusa para cada canal RGB
→ →
quarta-feira, 31 de agosto de 11
30-Mar-11 Leandro Tonietto 16
Atenuação atmosférica
Simulação de atenuações atmosféricas ou condições de visibilidade do ambiente (depth cueing):
fog por exemplo. Situações aonde os objetos possuem brilho diferente conforme a profundidade.Similar a idéia de atenuação da fonte luz.Idéia é modificar uma Intensidade já calculadaModificação será determinada por fatores de escala (sf e sb) que indicarão o blending da intensidade com uma cor sugeridapara o efeito da atenuação
Sugestão de leitura a respeito de depth cueing:http://www.gamedev.net/reference/articles/article861.asp
quarta-feira, 31 de agosto de 11
30-Mar-11 Leandro Tonietto 17
Atenuação atmosférica
Distância da luz é constante,Ia=Ip=1.0; ka=0.1; kd=0.9;zf=1.0; zb=0.0; sf=1.0; sb=0.1; raio=0.09;z=1.0, 0.77, 0.55, 0.32, 0.09
I’λ = S0Iλ + (1-S0)Idcλ
S0 é calculado a partir do Z do ponto
Idcλ é a cor do fator de atenuação
S0 = Sb + (Z0–Zb)-(Sf-Sb)(Zf–Zb)
quarta-feira, 31 de agosto de 11
30-Mar-11 Leandro Tonietto 18
Reflexão especular
Círculos brilhantes (highlight) que aparecem em superfíciesPara observar: Ilumine uma maçã vermelha com uma luz branca
Aparecerá um highlight, causado pela reflexão especularNeste ponto, a maçã não parece vermelha, e sim branca, a cor da luz incidente
Movimentando a cabeça nota-se que o highlight também move-se
Superfícies refletem luz de forma diferente em diferentes direçõesPortanto, o observador recebe a cor da reflexão da luz no objeto.
quarta-feira, 31 de agosto de 11
30-Mar-11 Leandro Tonietto 19
Reflexão especular
Phong desenvolveu em 1975, um modelo para a parcela de reflexão especular que assumia que:
Máxima reflexão especular ocorre quando α é zero e cai rapidamente quando α cresceEssa mudança é representada por cosn α, onde n é o expoente de reflexão especular
Valores de n variam de 1 até centenas, dependendo do material simulado
quarta-feira, 31 de agosto de 11
30-Mar-11 Leandro Tonietto 20
Reflexão especular
Acrescentando a especular na equação (considerando-se os vetores normalizados):Iλ = IaλkaλOλ + fattIpλ[kdλOdλ(N.L) + ks(R.V)n]
incluindo a cor especularIλ = IaλkaλOλ + fattIpλ[kdλOdλ(N.L) + ksOsλ(R.V)n]
Onde:Iλ é a intensidade resultante para cada canal RGBIaλ é a intensidade da luz ambiente para cada canal RGBIpλ é a intensidade resultante para cada canal RGBOλ é cor do objeto para cada canal RGBkd é o coeficiente de contribuição da difusaks é o coeficiente de contribuição da especular
Odλ é cor da luz difusa para cada canal RGBOsλ é cor da luz para especular
quarta-feira, 31 de agosto de 11
30-Mar-11 Leandro Tonietto 21
Reflexão especular
Efeito da especular:
Ia=Ip=1.0, Ka=0.1, Kd=0.45n=3.0, 5.0, 10.0, 27.0, 200.0Ks=0.1, 0.25, 0.5
quarta-feira, 31 de agosto de 11
30-Mar-11 Leandro Tonietto 22
Reflexão especular
Múltiplas fontes de luz
Iλ = IaλkaOλ + Σ fattiIpλi[kdOdλ(N.Li) + ksOsλ(Ri.V)n]
1 ≤ i ≤ m
quarta-feira, 31 de agosto de 11
30-Mar-11 Leandro Tonietto 23
Modelos de sombreamento
Como preencher um polígono considerando aspectos de iluminação?
Solução 1: uma idéia é calcular a normal em cada ponto visível da superfície e aplicar um modelo de iluminação para cada ponto (força bruta).Problema: Custo computacional é muito elevado.Solução 2: modelos de sombreamento.
Executam o preenchimento do polígono de forma eficaz e eficiente.
quarta-feira, 31 de agosto de 11
30-Mar-11 Leandro Tonietto 24
Modelos de sombreamento
Modelos estudados:Flat shading ou constant shadingInterpolated shadingPolygon mesh shadingGouraud ShadingPhong Shading
quarta-feira, 31 de agosto de 11
30-Mar-11 Leandro Tonietto 25
Flat shading
Neste modelo de preenchimento (ou sombreamento), a cor de todos os pontos de polígono é constante.
quarta-feira, 31 de agosto de 11
30-Mar-11 Leandro Tonietto 25
Flat shading
Neste modelo de preenchimento (ou sombreamento), a cor de todos os pontos de polígono é constante.
O modelo de iluminação é aplicado uma vez para cada polígono.
quarta-feira, 31 de agosto de 11
30-Mar-11 Leandro Tonietto 25
Flat shading
Neste modelo de preenchimento (ou sombreamento), a cor de todos os pontos de polígono é constante.
O modelo de iluminação é aplicado uma vez para cada polígono.
Abordagem torna-se válida diante das seguintes condições:
quarta-feira, 31 de agosto de 11
30-Mar-11 Leandro Tonietto 25
Flat shading
Neste modelo de preenchimento (ou sombreamento), a cor de todos os pontos de polígono é constante.
O modelo de iluminação é aplicado uma vez para cada polígono.
Abordagem torna-se válida diante das seguintes condições:
Fonte de luz situa-se no infinito, então N.L é constante ao longo da face
quarta-feira, 31 de agosto de 11
30-Mar-11 Leandro Tonietto 25
Flat shading
Neste modelo de preenchimento (ou sombreamento), a cor de todos os pontos de polígono é constante.
O modelo de iluminação é aplicado uma vez para cada polígono.
Abordagem torna-se válida diante das seguintes condições:
Fonte de luz situa-se no infinito, então N.L é constante ao longo da faceObservador situa-se no infinito, então N.V é constante ao longo da face
quarta-feira, 31 de agosto de 11
30-Mar-11 Leandro Tonietto 25
Flat shading
Neste modelo de preenchimento (ou sombreamento), a cor de todos os pontos de polígono é constante.
O modelo de iluminação é aplicado uma vez para cada polígono.
Abordagem torna-se válida diante das seguintes condições:
Fonte de luz situa-se no infinito, então N.L é constante ao longo da faceObservador situa-se no infinito, então N.V é constante ao longo da faceO polígono representa uma superfície sendo modelada e não uma aproximação para uma superfície curva
quarta-feira, 31 de agosto de 11
30-Mar-11 Leandro Tonietto 25
Flat shading
Neste modelo de preenchimento (ou sombreamento), a cor de todos os pontos de polígono é constante.
O modelo de iluminação é aplicado uma vez para cada polígono.
Abordagem torna-se válida diante das seguintes condições:
Fonte de luz situa-se no infinito, então N.L é constante ao longo da faceObservador situa-se no infinito, então N.V é constante ao longo da faceO polígono representa uma superfície sendo modelada e não uma aproximação para uma superfície curva
Se duas primeiras condições são falsas, precisamos de algum método para determinarmos L e V, como centro do polígono ou primeiro vértice
quarta-feira, 31 de agosto de 11
30-Mar-11 Leandro Tonietto 25
Flat shading
Neste modelo de preenchimento (ou sombreamento), a cor de todos os pontos de polígono é constante.
O modelo de iluminação é aplicado uma vez para cada polígono.
Abordagem torna-se válida diante das seguintes condições:
Fonte de luz situa-se no infinito, então N.L é constante ao longo da faceObservador situa-se no infinito, então N.V é constante ao longo da faceO polígono representa uma superfície sendo modelada e não uma aproximação para uma superfície curva
Se duas primeiras condições são falsas, precisamos de algum método para determinarmos L e V, como centro do polígono ou primeiro vértice
z
quarta-feira, 31 de agosto de 11
30-Mar-11 Leandro Tonietto 26
Interpolated shading
Proposto por Wylie, Romney, Evans e Erdahl em 1967Informação de sombreamento é interpolada linearmente ao longo de um triângulo a partir dos valores determinados para seus vérticesInterpolação do sombreamento não é fisicamente correta
quarta-feira, 31 de agosto de 11
30-Mar-11 Leandro Tonietto 27
Polygon mesh shading
Problemas de superficíes curvas: aparência facetada.
Flat Shading e Interpolated Shading geram resultados com essas características
Efeito de Mach BandDiferença da intensidade em uma aresta é acentuada se existe uma descontinuidade de uma intensidadeCausado por um fenômeno ótico
Métodos apresentados até aqui apresentam esse efeito
Aplicam-se a cada polígono individualmente
quarta-feira, 31 de agosto de 11
30-Mar-11 Leandro Tonietto 28
Polygon mesh shading
Polígonos sombreados individualmente em [2].
quarta-feira, 31 de agosto de 11
30-Mar-11 Leandro Tonietto 29
Polygon mesh shading
Existem dois modelos para malhas poligonais que aproveitam as informações fornecidas pelospolígono adjacentes para simular uma superfície suave
Gouraud ShadingPhong Shading
quarta-feira, 31 de agosto de 11
30-Mar-11 Leandro Tonietto 30
Gouraud shading
Também conhecido como sombreamento por interpolação de intensidade ou sombreamento por interpolação de cor
Elimina descontinuidades de intensidadeNão elimina completamente mudanças de intensidade
Estende conceito de sombreamento interpolado, considerando a superfície e não cada polígono individualmente
quarta-feira, 31 de agosto de 11
30-Mar-11 Leandro Tonietto 31
Gouraud shading
Necessita da normal de cada vérticePode-se obter esta normal fazendo a média entre as normais das superfícies às quais o vértice pertence
Ver slides do Christian
quarta-feira, 31 de agosto de 11
30-Mar-11 Leandro Tonietto 32
Referências bibliográficas
1. Slides sobre CG dos professores: Christian Hofsetz, Cristiano Franco, Marcelo Walter e Soraia Musse.
2. FOLEY!!3. WRIGHT Jr., Richard S; LIPCHAK, Benjamin;
HAEMEL, Nicholas. OpenGL Superbible: Comprehenive Tutorial and Reference. 4 ed. Addison-Wesley, 2007.
quarta-feira, 31 de agosto de 11