An Improved Illumination Model
for Shaded Display
Turner Whitted
António Oliveira
Paula Rego
Iluminação e FotoRealismo
Estrutura da Apresentação




Introdução
Modelo de Iluminação
Modelos Convencionais
Modelo Melhorado
–
–
–
–
–
–


2
Reflexão Especular
Transmissão Refractiva
Índices de Refracção
Geração de Árvores de Raios
Cálculo de Visibilidade
Ray Tracing Recursivo
Resultados
Conclusões
Introdução

O cálculo eficiente (e correcto) da iluminação de uma cena é um
problema fundamental da computação gráfica

Um modelo de iluminação determina a luz que chega ao observador a
partir de um ponto visível numa superfície

O shading é o processo de realizar cálculos de iluminação e
determinar a cor dos pixeis a partir desses cálculos
–

Os cálculos de shading podem ser efectuados a escalas diferentes:
–
–
3
O modelo de Shading determina quando é aplicado o modelo de
Iluminação e que argumentos recebe
–
microscópica
local
global
Modelo de Iluminação

A luz recebida é função de:
–
–
–
4
direcção e intensidade da fonte
de luz
posição do observador
orientação e propriedades da
superfície
Modelo de Iluminação


As interacções luz - superfície são de natureza
microscópica
Contudo, os modelos são normalmente bastante
limitados:
–

5
consideram apenas a interacção fonte de luz e orientação
da superfície, ignorando o ambiente que a rodeia
Os algoritmos de determinação de superfícies
visíveis tradicionais não fornecem os dados globais
necessários
Modelos Convencionais

Reflexão Difusa
Os difusores ideais comportam-se de acordo com a Lei de
Lambert (do coseno)
–

–
a luz reflectida, por uma pequena superfície é determinada pelo
co-seno do ângulo entre a normal à superfície e a direcção da
luz
As superfícies reflectem luz com igual intensidade em todas
as direcções

surgem igualmente brilhantes a partir de todos os pontos de
vista
I = Ip*kd* (N.L)
= Ip*kd*cos 
6
Modelos Convencionais

Reflexão Especular
–
Modelo de Phong




fontes de luz a distância infinita
não considera a luz reflectida por outros objectos
os objectos não funcionam como fontes de luz
não afecta o realismo da reflexão difusa
fontes luz
fontes luz
I = Ia + kd  (N . Lj) + ks  (R . V)n
j=1
7
j=1
I = intensidade reflectida
Ia = reflexão devida à luz ambiente
kd = coeficiente reflexão difusa
N = normal à superfície (unitária)
Lj = vector na direcção da fonte de luz i
ks = coeficiente reflexão especular
n = expoente de reflexão especular do material
Modelos Convencionais

O Modelo de Phong afecta significativamente a qualidade das reflexões
especulares
–

Não é incluída a luz reflectida por outros objectos
Formulação Alternativa (Blinn e Newell, 1976)
–
–
esfera de raio infinito
fontes de luz e observador a distância infinita
j=ls
j=ls
I’ = Ia + kd  (N . Lj) + ks  (N . Hj ’)n
j=1
j=1
H = (L+V)/2 normal na direcção a metade da distância entre L e V
8
Modelos Convencionais

Sombras
–
–

Transparência
–
–
9
É um dos aspectos mais importantes no modelo de iluminação
Um ponto numa superfície está em sombra se for visível ao
observador, mas não à fonte de luz
A transmissão da luz através de objectos transparentes tem sido
simulada em algoritmos que desenham as superfícies segundo a
ordem inversa de profundidade (Algoritmo Depth-Sort – Newell et al.,
1972)
Produção de imagens interessantes, mas não simula a refracção
Modelo Melhorado

Introduzido por Turner Whitted (1980)
nº luzes
I  I a  kd
( N  L )  k S  k T
j
s
t
j 1

onde:
–
–
–
–
10
S = intensidade da luz incidente a partir de R (raio reflectido)
ks = coeficiente de reflexão especular do material
ks = coeficiente de transmissão
T = intensidade da luz na direcção P (raio refractado)
Reflexão Especular
N + V’
R
N
Intensidade da Luz
V
Perfeitamente lisa
Superfície reflectora
kf 
1
(k n2 V '
2
2
 V ' N )
P
k f (N + V’)
Refracção
-N
V’ = V / |V*N|
R = V’ + 2N
P = kf (N + V’) - N
onde
kf = função do índice
de refracção kn
Reflexão Especular

A reflexão especular de uma superfície rugosa
–
–

Simulando esta reflexão (baseado no trabalho de J.F. Blinn)
–
–
–

Produzida por faces microscópicas
Intensidade proporcional à distribuição das normais da superfície
Variações aleatórias na normal da superfície
Simular faces microscópicas orientadas aleatoriamente
Impraticável em termos computacionais
Escolher a adição do termo de Phong
nº luzes
I  Ia 
[k (N  L )  k (N.H ) ]  k S  k T
d
j 1
12
j
s
n
s
t
Transmissão Refractiva

Dados os índices de refracção dos 2 lados de uma
superfície, pode-se calcular o ângulo para V e P
usando a Lei de Snell
sin 1 n2

sin  2 n1
13
Índices de Refracção

Razão entre a
velocidade da luz no
vácuo e a velocidade
da luz numa substância
cvácuo
kn 
cmat .
14
Substância Índice
Vácuo
1,0
Ar
1,00029
Água
Vidro
Diamante
1,33
1,52
2,417
Safira
Sal
1,77
1,54
Geração de Árvores de Raios
15

A luz é reflectida a partir de várias superfícies

O comportamento dos raios de luz podem ser modelados através de uma árvore

O shader percorre a árvore, aplicando a equação em cada nodo para calcular a
intensidade (esta é atenuada por uma função linear da distância entre os pontos de
intersecção)
Cálculo da Visibilidade

Um algoritmo de Ray Tracing constitui uma boa
aproximação:
–
–

O cálculo não termina com o primeiro objecto
intersectado pelo raio
–
–
16
Abordagem inicial: traçar raios de luz desde as fontes de luz
até ao observador – forward Ray Tracing
Whitted desenvolve um modelo aproximado considerando os
raios de luz que chegam ao observador no sentido inverso –
backward Ray Tracing
Considera também os raios reflectidos e refractados
Objectos são visíveis através de reflexões em outros objectos
Cálculo da Visibilidade

Simplificações:
–
–
–
17
Considerar um volume envolvente para cada
objecto na cena
Se não for intersectado, o objecto pode ser
eliminado
Por questões de simplicidade de representação e
facilidade de cálculo de intersecção, são usadas
esferas
Cálculo da Visibilidade


O algoritmo faz anti-aliasing
Aliasing é mais aparente em 3
casos:
–
–
–

18
Mudanças bruscas de intensidade
Objectos pequenos localizados
entre os pontos de amostragem
Textura mapeada a uma superfície
O Anti-aliasing é aplicado
apenas nas regiões afectadas
pelos 3 casos
Ray Tracing Recursivo

Para cada pixel da imagem
–
–
Calcular raio que passa pelo pixel e observador
Determinar objecto intersectado pelo raio




–
–
Calcular contribuição da iluminação ambiente
Para cada fonte de luz determinar visibilidade (raios sombra)

–
Se fonte visível, adicionar contribuição reflexão difusa
Se não foi atingido limite de recursividade


19
Ponto de intersecção
Normal
Propriedade do material
Propriedade de textura
Adicionar contribuição da reflexão especular
Adicionar contribuição da refracção
Ray Tracing Recursivo
seleccionar o centro de projecção e a janela no plano de
visualização;
for(cada scan line na imagem) {
for (cada pixel na scan line) {
determinar raio a partir do centro de projecção através do pixel;
pixel=RT_trace(raio,1);
}
}
21
Ray Tracing Recursivo
RT_cor RT_trace(RT_ray raio, int depth)
{
determinar a intersecção mais proxima do raio com um objecto;
if (objecto foi intersectado) {
calcular normal na intersecção;
return RT_shade(objecto de intersecção mais próxima, intersecção,
normal, depth);
}
else
return BACKGROUND_VALUE;
}
22
Ray Tracing Recursivo – Iluminação Directa
Cor = termo ambiente;
for (cada luz) {
SRaio = raio para a luz a partir do ponto;
If (produto escalar da normal e direcção para a luz é positivo) {
Calcular quanta luz é bloqueada por superfícies opacas e
transparentes, e usar termos difusos e especulares para
escalar antes de os adicionar à cor;
}
}
23
Ray Tracing Recursivo – Iluminação indirecta
if (depth<maxDepth) {
If (objecto é reflectivo) {
RRaio=raio na direcção de reflexão a partir do ponto;
rCor=RT_trace(rRaio, depth +1);
escalar rCor pelo coeficiente especular e adicionar a cor;
}
if (objecto é transparente) {
tRaio = raio na direcção de refracção a partir do ponto;
if (reflexão interna total não ocorre) {
tCor=RT_trace(tRaio, depth+1);
escalar tCor pelo coeficiente de transmissão e adicionar a cor;
}
}
}
return cor;
24
Ray Tracing Recursivo

Condições de terminação:
–
–
25
Se os raios reflectidos ou refractados não
intersectam qualquer objecto
Se a profundidade máxima definida foi atingida
Resultados





26
Algoritmo programado em C
S.O. UNIX
PDP-11/45 e VAX-11/780
Resolução da imagem 480x640 pixeis
9 bits por pixel
Fig.1
Fig.2
Fig.3
Fig.4
Resultados

Imagens:
–
–
–
–

Distribuição do tempo de processamento:
–
–
–
28
Fig.1: 3 objectos polidos com sombras e reflexões objectoobjecto (44 min.)
Fig.2: refracção através de um objecto transparente (74
min.)
Fig. 3: sem descrição (122 min.)
Fig. 4: não referida
Inicialização: 13%
Cálculo de intersecções: 75%
Shading: 12%
Resumo




29
Produz efeitos realísticos nas imagens
Não considera reflexões difusas a partir de
fontes de luz distribuídas
Não trata de forma correcta a reflexão
especular a partir de superfícies menos
polidas
Há ainda muito espaço para melhoria
Download

ppt