Title: An Improved Illumination Model for Shaded Display
1An Improved Illumination Model for Shaded Display
Turner Whitted
- António Oliveira
- Paula Rego
Iluminação e FotoRealismo
2Estrutura da Apresentação
- Introdução
- Modelo de Iluminação
- Modelos Convencionais
- Modelo Melhorado
- 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
3Introduçã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 - O modelo de Shading determina quando é aplicado o
modelo de Iluminação e que argumentos recebe - Os cálculos de shading podem ser efectuados a
escalas diferentes - microscópica
- local
- global
4Modelo de Iluminação
- A luz recebida é função de
- direcção e intensidade da fonte de luz
- posição do observador
- orientação e propriedades da superfície
5Modelo de Iluminação
- As interacções luz - superfície são de natureza
microscópica - Contudo, os modelos são normalmente bastante
limitados - 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
6Modelos 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 Ipkd (N.L)
- Ipkdcos ?
7Modelos 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
j1 j1
I intensidade reflectida Ia reflexão devida
à luz ambientekd coeficiente reflexão difusaN
normal à superfície (unitária) Lj vector na
direcção da fonte de luz iks coeficiente
reflexão especular n expoente de reflexão
especular do material
8Modelos 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
jls jls I
Ia kd ? (N . Lj) ks ? (N . Hj )n
j1 j1
H (LV)/2 normal na direcção a metade da
distância entre L e V
9Modelos Convencionais
- Sombras
- É 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 - Transparência
- 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
10Modelo Melhorado
- Introduzido por Turner Whitted (1980)
- onde
- 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)
11Reflexão Especular
Intensidade da Luz
N V
V
N
R
Superfície reflectora
V V / VN R V 2N P kf (N V) -
N onde kf função do índice de
refracção kn
P
-N
(N V)
k
f
Refracção
12Reflexão Especular
- A reflexão especular de uma superfície rugosa
- Produzida por faces microscópicas
- Intensidade proporcional à distribuição das
normais da superfície - Simulando esta reflexão (baseado no trabalho de
J.F. Blinn) - 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
13Transmissã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
14Índices de Refracção
- Razão entre a velocidade da luz no vácuo e a
velocidade da luz numa substância
Substância Índice
Vácuo 1,0
Ar 1,00029
Água 1,33
Vidro 1,52
Diamante 2,417
Safira 1,77
Sal 1,54
15Geração de Árvores de Raios
- 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)
16Cálculo da Visibilidade
- Um algoritmo de Ray Tracing constitui uma boa
aproximação - 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 - O cálculo não termina com o primeiro objecto
intersectado pelo raio - Considera também os raios reflectidos e
refractados - Objectos são visíveis através de reflexões em
outros objectos
17Cálculo da Visibilidade
- Simplificações
- 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
18Cálculo da Visibilidade
- O algoritmo faz anti-aliasing
- Aliasing é mais aparente em 3 casos
- 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
19Ray Tracing Recursivo
- Para cada pixel da imagem
- Calcular raio que passa pelo pixel e observador
- Determinar objecto intersectado pelo raio
- Ponto de intersecção
- Normal
- Propriedade do material
- Propriedade de textura
- 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
- Adicionar contribuição da reflexão especular
- Adicionar contribuição da refracção
20(No Transcript)
21Ray 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 - pixelRT_trace(raio,1)
-
22Ray 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
23Ray 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 -
24Ray Tracing Recursivo Iluminação indirecta
- if (depthltmaxDepth)
- If (objecto é reflectivo)
- RRaioraio na direcção de reflexão a partir do
ponto - rCorRT_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)
- tCorRT_trace(tRaio, depth1)
- escalar tCor pelo coeficiente de transmissão e
adicionar a cor -
-
-
- return cor
25Ray Tracing Recursivo
- Condições de terminação
- Se os raios reflectidos ou refractados não
intersectam qualquer objecto - Se a profundidade máxima definida foi atingida
26Resultados
- Algoritmo programado em C
- S.O. UNIX
- PDP-11/45 e VAX-11/780
- Resolução da imagem 480x640 pixeis
- 9 bits por pixel
27Fig.1
Fig.3
Fig.2
Fig.4
28Resultados
- Imagens
- Fig.1 3 objectos polidos com sombras e
reflexões objecto-objecto (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
- Distribuição do tempo de processamento
- Inicialização 13
- Cálculo de intersecções 75
- Shading 12
29Resumo
- 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