Iluminando o Cenário
Fundamentos:
Fisicamente: a percepção da iluminação depende da distribuição da energia (dos fótons) que alcançam as células (cones/bastonetes) nos nossos olhos
Essa energia se distribui de maneira complexa.
Os fótons podem vir de uma fonte
De luz ou combinações de várias fontes; Parte dos fótons são absorvidos
A absorção ou reflexão dos fótons influenciam na
percepção da Iluminação e também sofre influência de diversos fatores:
A polidez da superfície: a luz é espalhada em função da suavidade e orientação da superfície;
A cor da superfície: reflexão da cor da luz incidente; A intensidade da luz incidente: intensidade de brilho;
Resumindo: a percepção de brilho e cor
(iluminação) de uma cena depende...:
- Das próprias fontes de luz;
- Das propriedades dos materiais;
- Da localização do observador e;
- Da orientação das superfícies.
Em CG, especialmente em aplicações de tempo real, não é necessário uma iluminação perfeita.
Em geral adota-se a “renderização” local onde cada polígono é “pintado” de maneira independente do outro.
O modelo empírico a ser abordado considera as
seguintes componentes:
Luz Ambiente
Luz Ambiente
Luz Difusa
Luz Difusa
Luz Especular
Luz Especular
Luz Ambiente
Luz Ambiente
Trata-se de uma luz que está tão espalhada no
ambiente a ponto de ser impossível
determinar a sua direção ou fonte – ela parece vir de
todas as direções.
Funciona como uma
Cálculo da Luz Ambiente (Iluminação ambiental)
Cálculo da Luz Ambiente (Iluminação ambiental)
A percepção de brilho e cor (intensidade refletida) é
calculada através da equação:
Ka = refletividade em relação à luz ambiente (característica do material)
I = intensidade de luz ambiental incidente
Luz Difusa
Luz Difusa
A reflexão de luz difusa é proporcional ao cos(θi) Sendo L (direção para a fonte de luz difusa)
e N (a normal à superfície)
dois vetores unitários, então: cos(θi)=L.N
Luz Difusa
Luz Difusa
Luz difusa refletida:
Kd= refletividade da luz difusa; I = intensidade da luz incidente;
L = vetor unitário orientado para a fonte de luz difusa;
N = normal (unitária) no ponto da superfície que recebe a luz difusa.
Luz Difusa
Luz Difusa
Surge o efeito de sombra em função da direção da luz em relação à normal.
Se θ aumenta tendendo para 90o então proporcionalmente o
Luz Difusa
Luz Difusa
Se θ aumenta tendendo para 90o então, proporcionalmente, o
cos(θ) decai e ocorre a formação de um gradiente de sombra.
θ1
θ2
θ2 > θ1 → reflexão menor → mais sombra em B do que em A
θ1
Luz Difusa
Luz Difusa
A reflexão da luz difusa depende
apenas do ângulo
θde incidência.
Independente da posição do
Luz Difusa
Luz Difusa
Uma superfície Lambertiana espalha a luz em todas as direções apresentando brilho perfeitamente uniforme.
O gesso é uma superfície quase Lambertiana
Quanto mais constante for a luz difusa mais lambertiana é a
Luz Especular (modelo empírico de Phong)
Luz Especular (modelo empírico de Phong)
A luz especular produz o efeito de reflexão em uma superfície polida, onde a luz incidente se reflete com mais intensidade em certo ponto do objeto.
Luz Especular (modelo Phong)
Luz Especular (modelo Phong)
A intensidade de luz especular refletida depende da posição do observador (câmera sintética)
Luz Especular (modelo Phong)
Luz Especular (modelo Phong)
A intensidade refletida é proporcional a
Luz Especular (modelo Phong)
Luz Especular (modelo Phong)
shininess = 50 shininess = 10
Luz Especular (modelo Blinn)
Luz Especular (modelo Blinn)
Ao aplicar Phong para cálculo da iluminação especular, é
É importante salientar:
Na prática, I
ttem que ser calculada para
Relembrando os principais fatores que influenciam na percepção de iluminação (reflexão da luz):
Características dos materiais:
As superfícies podem ser mais
ou menos polídas o que influencia na reflexão mais ou menos difusa ou especular.
Características das fontes de luz
Além disso as fontes de luz podem ser posicionais/spots (raios não paralelos)
ou direcionais (raios paralelos);
É importante salientar:
Há também a atenuação f(d) causada pela distância da fonte de iluminação.
Este fator pode ser linear constante ou quadrático:
f(d)=1/(a+b.d+c.d
2)
d=distância
Até aqui vimos o Modelo Empírico que calcula a
Até aqui vimos o Modelo Empírico que calcula a
iluminação.
iluminação.
A tonalização é a aplicação deste modelo sobre os
polígonos que formam as superfícies da cena...
A tonalização pode ocorrer das seguintes formas:
Facetado (FLAT);
Suave (SMOOTH)
Gourald
Tonalização Facetada
Tonalização Facetada
(a mais simples)
cada polígono da superfície recebe a iluminação
calculada para um ponto. Ou seja, calcula-se a
iluminação apenas uma vez e aplica-se ao polígono
em questão.
FLAT
(facetado)
Tonalização Suave -
Tonalização Suave - Gouraud Gouraud
A iluminação é calculada para cada vértice do polígono; A iluminação de cada ponto na superfície do polígono é determinada por interpolação bilinear tomando como
referência os valores de iluminação calculados nos vértices do polígono.
Tonalização Suave -
Tonalização Suave - Gouraud Gouraud
SMOOTH
glShadeModel(GL_FLAT); glShadeModel(GL_SMOOTH);
Tonalização Suave - Phong
Tonalização Suave - Phong
As normais em uma aresta são Interpoladas a partir dos vértices desta aresta.
As normais internas são interpolação bilinear do par de normais calculadas em arestas.
Tonalização Suave - Phong
Tonalização Suave - Phong
A iluminação de cada ponto do polígono pode ser calculada a partir das normais interpoladas
Tonalização Suave - Phong
Tonalização Suave - Phong
A tonalização de Phong é melhor que a de Gouraud porém, é computacionalmente mais cara.
Execute os seguintes programas identificando a prametrização
Execute os seguintes programas identificando a prametrização
da iluminação:
da iluminação:
www.opengl.org/resources/code/samples/redbook/material.c www.opengl.org/resources/code/samples/redbook/colormat.c
Exercício1:
Dados do exercício 1:
Dados do exercício 1:
• Vetores normais (normas unitárias): N1,N2,N3 e N4;
• As intensidades refletidas das componentes de luz são unitárias;
• A única fonte de luz é branca, R=1,G=1,B=1 para todos os componentes: ambiental, especular e difuso. Dessa forma, a cor do objeto será percebida (determinada) pelos coeficientes (K) dos materiais;
• Os coeficientes de reflexão Ka=Kd=Ke são conhecidos e iguais a (1,1,0); • “Shininess” da componente especular: n=128;
•A reflexão da componente especular é calculada pelo modelo de Phong;
Dados do exercício 1:
Dados do exercício 1:
• A fonte de luz é direcional, na direção do vetor D=(0,0,-1): fonte no infinito, raios paralelos;
Dados do exercício 1:
Dados do exercício 1:
: bilinear ão interpolaç a feita é isso Após e , para mesmo O 2 3 4 1 1 1 1 v t I v t I v t I v esp I v d I v a I v t I = + + Solução exercício 1:
Solução exercício 1: calcular a iluminação em cada vértice e
interpolar a iluminação no ponto p:
) 0 ; 58 , 2 ; 58 , 2 ( ) 0 , 1 , 1 ( 0 , 3 1 , 3 1 ) 0 , 1 , 1 ( : 1 v em Iluminação 1 1 1 1 ≈ + + = + +
= Iambientalv Idifusav Iespecularv v
I
Solução exercício 1:
Após calcular a iluminação para cada vértice aplique as equações de Após calcular a iluminação para cada vértice aplique as equações de interpolação levando em conta as coordenadas dos vértices, as
interpolação levando em conta as coordenadas dos vértices, as coordenadas
coordenadas
Solução exercício 1:
Exercício 2:
Exercício 2:
Exercício 3:
Exercício 3:
Considerando o seguinte trecho de código, qual a intensidade da luz incidindo no ponto P(17,1,-200):
Solução do Exercício 3:
Solução do Exercício 3:
Deseja-se a intensidade da luz incidente sobre o ponto P
Na incidência sobre o material: as luzes especular e ambiente estão praticamente desligadas (cor preta), há apenas uma
componente difusa.
(
)
0131 , 0 128 cos ≈ − − • = ⇒ − • = = D D L L ifusa incidenteD I n D D L L n ifusa incidenteD I αA fonte de luz foi parametrizada para o “formato” SPOT, então a intensidade da luz incidente IincidenteDifusa é proporcional ao cosseno, elevado ao expoente 128, do
ângulo de fall-off.
Os cálculos de L e D constam nos próximos slides...
Solução do Exercício 3: qual é a
dado. é direção de vetor o , 2 2 , 0 , 2 2 390 2 ) 10 ( 2 ) 1 ( 2 ) 17 ( ] 10 , 1 , 17 [ ] 200 , 1 , 1 [ ] 190 , 0 , 0 [ : forma Dessa ). 190 0 0 (ponto luz de fonte da origem de ponto no coincidam vetores dois dos origens as que para e ) ( utilizando porém L vetor o e D direção vetor ao relação em aplicado é racíocinio Esse B A ) cos( T D L T T T P p L T ] ,-, p [ L D − − = − = + − + − = − − = − − − = − = − • = θ
Solução do Exercício 3: calculando L e D
. ) cos( : teremos os, normalizad vetores são B e A disso, além Se, , ) cos( ) cos( : então , ângulo um formam e origem, mesma de vetores são B e A se tria, trigonome Da B A B A B A B A B A • = ⋅ • = ⇒ ⋅ = • θ θ θ θ
Solução do Exercício 3: calculando L e D
Exercício 4:
Exercício 4:
Execute o seguinte trecho de código e teça comentários sobre o resultado da iluminação obtida (crie o objeto a ser iluminado). Descreva o papel dos parâmetros especificados por
mat_shininess e GL_SPOT_EXPONENT? void init(void) { GLfloat mat_specular[ ] = {0.0, 0.0, 0.0, 1.0 }; GLfloat mat_diffuse[ ] ={0.0, 0.0, 0.0, 1.0 }; GLfloat mat_environmental[ ] = {0.0, 1.0, 0.0, 1.0 }; GLfloat mat_shininess[ ] ={3}; GLfloat light_position[ ] = { 1.0, 0.0, 0.0, 1.0 }; GLfloat light_specDirection[ ] = { 1.0, 0.0, 1.0, 1.0 }; glClearColor (0.0, 0.0, 0.0, 0.0); glShadeModel(GL_SMOOTH);
glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular); glMaterialfv(GL_FRONT, GL_SHININESS, mat_shininess); glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_diffuse);
glMaterialfv(GL_FRONT, GL_AMBIENT, mat_environmental); glLightfv(GL_LIGHT0, GL_POSITION, light_position);
glLightfv(GL_LIGHT0, GL_SPOT_DIRECTION, light_specDirection); glLightf(GL_LIGHT0,GL_SPOT_CUTOFF,100.0);
Exercício 5:
Exercício 5:
1A)Determine a componente difusa da luz de intensidade (200;100;50) colocada na
posição (0;1;0;0) sobre o vértice A do triângulo A=(3,2,1), B=(8,2,1), C=(4,8,-4).
Utilize a regra da mão direita para a determinação da normal ao polígono. Kd=(0.6,0.5,0.3).
Resp: L≈[0,1,0]
Nn•Ln =0.64 // Nn Normal normalizado e Ln vetor L normalizado Id=(76.8 32.0 9.6)
Exercício 6:
Exercício 6:
2A) Determine a componente especular de uma lâmpada de intensidade (1.0,0.4,1.0) colocada na posição (3,5,1,1) em relação ao ponto A=(6,2,1). O observador encontra-se em (8,10,1), a normal N=(-1,2,0), material: Ke=(1,1,1) e n=8.
A figura abaixo é uma ilustração geral e pode não retratar exatamente os parâmetros da questão: Resp: Rn=(-0.1394 0.9902 0) Vn=(0.242 0.97 0) Rn•Vn=0.9267 Ie=(0.5437 0.2175 0.5437)