40
30-Mar-11 Leandro Tonietto Iluminação e Sombreamento Leandro Tonietto Computação Gráfica Unisinos [email protected] http://professor.unisinos.br/ltonietto/jed/cgr/iluminacao.pdf ago-11 Baseado no material do prof. Christian Hofsetz e de Cristiano Franco quarta-feira, 31 de agosto de 11

Ilumina o e Sombreamento - professor.unisinos.brprofessor.unisinos.br/ltonietto/jed/cgr/iluminacao.pdf · modelo de iluminação é aplicado e quais argumentos ele recebe. ... ou

Embed Size (px)

Citation preview

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 12

Reflexão Difusa

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

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