Computação Gráfica
Iluminação
Prof. Rodrigo Rocha
[email protected]
Introdução
 Determinação da cor envolve
• Além das propriedades da superfícies
 Cor, textura, material, ...
• Incidência da luz
 Shading Model
• Modelo de sombreamento
 Determina como o modelo de iluminação será aplicado e quais seus argumentos
 Ilumination Model
• Para produção de imagens realísticas, devemos simular a aparência da
superfície sobre várias condições de iluminação
• Dado o ponto de incidência da luz
luz, quantificamos a luz refletida
1
Modelos de Iluminação
 Efeitos de luz são descritos como modelos que
consideram a interação de fontes de luz nas
superfícies de objetos
 Os
são:
O fatores
f t
ã
• Origem da luz
 Posição
 Aspecto/Eletromagnetísmo
 Forma
• Superfície
 Posição
 Propriedades reflectivas
 Posição de superfícies próximas
• Parâmetros da câmera
 Posição
 Sensibilidade do sensor
Fontes de Luz
 A-) Pontual
• Todos os raios de luz saem do mesmo ponto
 B-)) Paralela
• Raios de Luz paralelos
• Ponto infinito
 C-) Distribuída
• Todos os raios vêem de um ponto finito no espaço
2
Modelos de iluminação
 Método simples e rápido para calcular a
intensidade na superfície
 Os cálculos são baseados em propriedades
ópticas da superfície e as condições de
iluminação (objetos reflectivos, sombras, etc.)
 Fontes de luz são pontos de origem
Luz ambiente
 Assumimos que existem várias luzes não
direcionas no ambiente (luz de fundo)
 O montante de luz incidindo em cada objeto é
constante para todas as superfícies em todas
as direções
 Modelo simples, menos realístico
 Padrão no OpenGL
3
Luz Ambiente
 A intensidade da luz refletida Iamb para cada
ponto da superfícies é:
• Iambb = Ka Ia
Iamb – intensidade da luz ambiente
Ka E [0,1] – Superfície reflete a luz
• As variáveis são em função das cores RGB
 Exemplo
Reflexão Difusa
 Superfícies ásperas ou granulado,
como argila, solo, tecido
• A superfície parece
igualmente brilhante
de todos as direções
• O brilho em cada
ponto é proporcional ao
cosseno do ângulo
4
Reflexão Difusa
 A instensidade da replexão Idiff em um ponto é
• Idiff = Kd Ipcos(teta) = Kd Ip(N-L)
• Onde
 Ip – Intensidade da luz em um ponto
 Kd E [0,1] – A reflexão difusa na superfície
 N – Normal
 L – A direção da luz
 Exemplos
Reflexão Especular
 Modelos com superfícies brilhantes (como metal,
plástico, etc.)
 A intensidade da reflexão muda confome o ângulo de reflexão
 Uma superfície
p
“specular”
p
ideal é o espelho,
p
p
pois reflete a luz em uma só
direção R
 Produz pontos brilhantes
 Fórmula:
 Exemplo:
5
Modelos de Shading (tonalização)
 Método para aplicar um modelo de iluminação a um objeto (em geral,
modelado como uma malha poligonal)
 O método de shading é integrado a um algoritmo scanline (scanline
graphics)
• – o processo de tonalização é feito para cada face visível dos modelos
que compõem a cena, para determinar a cor (tom, intensidade)
associada a cada ponto visível da face
• – seria muito custoso calcular o modelo de iluminação em cada ponto
de cada face visível para determinar a cor
 4 modelos:
•
•
•
•
Constant
C
t t
Faceted
Gouraud
Phong
 – ordem crescente de qualidade de imagem e de custo computacional
Fonte: http://www.lcad.icmc.usp.br/~rosane/CG/Rendering.pdf
Constant Shading
 calcula uma única cor (tom, or shade) para
 todo o objeto (todas as faces)
objeto
 não há variações de tonalidade ao longo do objeto,
i.e., na verdade, não há shading.
Fonte: http://www.lcad.icmc.usp.br/~rosane/CG/Rendering.pdf
6
Flat Shading
 modelo mais simples
• calcula uma cor (tonalidade) para cada polígono (face)
• Toda a face associada a uma cor única, calculada aplicando o modelo de
iluminação
• vetor L no modelo : vai de qualquer ponto no polígono à posição da fonte de
luz em geral, usa apenas os termos ambiente e de reflexão difusa do modelo
de iluminação
• Simples e rápido, mas arestas entre faces são acentuadas
• Em OpenGL: glShadeMode(GL_FLAT)
Fonte: http://www.lcad.icmc.usp.br/~rosane/CG/Rendering.pdf
Gouraud shading
 Interpola cores: aplica o modelo de iluminação nos vértices de cada face
poligonal para obter a cor (intensidade) em cada vértice da face
 interpola os valores obtidos nos vértices (IR,IG,IB) para determinar a cor
nos pontos interiores aos polígonos
 interpolação bi-linear das intensidades ao longo das linhas de varredura
Fonte: http://www.lcad.icmc.usp.br/~rosane/CG/Rendering.pdf
7
Gouraud Shading
 Algoritmo
• 1. determina a normal N em cada vértice do
polígono
• 2. usa N e L para calcular a intensidade I em
cada vértice do polígono (usando o modelo de
iluminação)
• 3. usa interpolação bi-linear para calcular a
intensidade I em cada pixel no qual o polígono
visível é projetado
• 4. “pinta” o pixel de acordo com a cor
determinada
RGB
R,G,B
Fonte: http://www.lcad.icmc.usp.br/~rosane/CG/Rendering.pdf
Phong Shading

Calcula as normais nos vértices, interpola para determinar a normal em cada
ponto da face
•
•



Normais em pontos ao longo de uma aresta calculadas por interpolação linear dos
valores nos vértices (e precisam ser re-normalizadas)
Normais
o ase
em po
pontos
tos no
o interior
te o da face
ace ca
calculadas
cu adas po
por interpolação
te po ação linear
ea das normais
o as
nas arestas (e renormalizadas)
Aplica o modelo de iluminação de Phong em cada ponto visível do polígono para
determinar I
Melhor queGouraud para capturar highlights especulares
Custo computacional muito maior
Fonte: http://www.lcad.icmc.usp.br/~rosane/CG/Rendering.pdf
8
Exercícios
 1-) Qual a importância da iluminação em computação gráfica?
 2-) Quais os problemas da iluminação do tipo ambiente?
 3-) Quais as diferenças entre reflexão difusa e especular, cite exemplo de
tipos de materiais que sofrem estas reflexões.
 4-) Explique os modelos de iluminação Phong e Cook-Torrance?
 5-) Em relação ao custo computacional, coloque em ordem os modelos
d shading
de
h di (d
(do menor ao maior).
i ) E
Explique
li
o por quê
ê di
disso?
?
 6-) Implemente em OpenGL um modelo de iluminação e shading.
 7-) Como posso aplicar os modelos de iluminação e shading o Blender
3D.
Bibliografia

Livro texto (Programa do Livro texto - PLT)
•

FORBELLONE, A. Lógica de Programação. São Paulo: Pearson,
2005“
Complementar
• CORMEN, Thomas H. Algoritmos: teoria e prática. 1.ed. Rio de
Janeiro: CAMPUS, 2002.
• MANZANO, J. A. N. G. Algoritmos: lógica para desenvolvimento
de programação. 1.ed. São Paulo: Erica, 1996.
• ASTÊNCIO, A .F.G.; CAMPOS, E.D.. Fundamentos da
Programação de Computadores. 1.ed. São Paulo: PRENTICE
HALL BRASIL, 2002.
9
Download

5. Iluminação - BolinhaBolinha.com