Vous êtes sur la page 1sur 15

Rafael Henrique Assis de Castro

Algoritmos de Iluminação Global


 Computação dos efeitos de iluminação indireta, como
luz refletida e luz refratada;
 Grande parte da luz em um ambiente real
normalmente não vem de fontes de luz direta;
 Ray-tracing – integra a definição da superfície visível e
definição de sombras, reflexões e refrações;
 Então reflexão especular global e transmissão suplementam a
iluminação especular, difusa e ambiente local computada para
uma superfície;
 Radiosidade – separa completamente sombreamento e
determinação da superfície visível;
 Modela toda as interações de um ambiente com as fontes de
luz primeiro, em um estágio independente da visualização, e
então computa uma ou mais imagens para os pontos de
visualizações desejados, utilizando algoritmos de
determinação de superfície visível e sombreamento
interpolativo.
 Algoritmos dependentes da visualização: discretizam o
plano de visualização para determinar os pontos onde
calcular a equação de iluminação, dada a direção do
observador; Bom para lidar com fenômeno especular que é
altamente dependente da posição do observador.
 Algoritmos independentes da visualização: discretizam o
ambiente, e o processam para proporcionar informação
suficiente para calcular a equação de iluminação em
qualquer ponto e para qualquer direção de visualização;
Modela fenômeno difuso eficientemente, mas requer muita
quantidade de armazenamento para capiturar informações
necessárias sobre o fenômeno especular.
Visible-Surface Ray Tracing
 Determina a visibilidade de superfícies traçando raios de
luz imaginários do olho do observador aos objetos na cena.
 Um centro de projeção (observador) e uma janela em um
plano de visualização arbitrário são selecionados.
 A janela pode ser pensada como sendo dividida em uma
grade regular, onde cada elemento correspondem à pixels
na resolução desejada.
 Então, para cada pixel na janela, um eye ray é disparado do
centro de projeção através do centro do pixel para a cena. A
cor do pixel é definida como a cor do objeto da intersecção
mais próxima.
Calculando Interseções
 Utiliza-se normalmente a representação paramétrica de um
vetor ou reta;
 Cada ponto (x, y, z) ao longo deumraio com origem no
ponto (x0, y0, z0) e direção do ponto (x0, y0, z0) para o ponto
(x1, y1, z1) é definido em função do parâmetro t;
 x = x0 + t(x1 – x0);
 y = y0 + t(y1 – y0);
 z = z0 + t(z1 – z0);
 x = x0 +t∆x; ∆x = x1 – x0
 y = y0 +t ∆y; ∆y = y1 – y0
 z = z0 +t ∆z; ∆z = z1 – z0
 Para a esfera:
 (x – xc)² + (y – yc)² + (z – zc)² = r²;
 Aplicando-se a forma paramétrica da reta em substituição
de x, y e z:
(x0 + t(x1 – x0))² – 2 xc(x0 + t(x1 – x0)) + xc² +
(y0 + t(y1 – y0))² – 2 yc (y0 + t(y1 – y0)) + yc² +
(z0 + t(z1 – z0))² – 2 zc (z0 + t(z1 – z0)) + zc² = r²;
 Se não houver raizes reais, não intersecta;
 1 raiz real, o raio raspa a esfera;
 2 raizes reais, as raizes são os pontos de interseção, a de
menor valor positivo é o ponto mais próximo.
 Para um polígono, 1º determinamos se o ray intersecta o
plano do polígono, e depois se o ponto de interseção está
dentro do polígono;
 A equação do plano é:
 Ax + By + Cz + D = 0
 Substituindo pelos valores parametrizados, temos:
 A(x0 + t(x1 – x0)) + B(y0 + t(y1 – y0)) + C(z0 + t(z1 – z0)) + D = 0;
 Resolvendo a equação, temos:
 t = (Ax0 + By0 + Cz0 + D) / (A(x1 – x0) + B(y1 – y0) + C(z1 – z0));
 Se o denominador for zero, a equação não tem solução e o
raio é paralelo ao plano.
 Depois de ver que o raio intersecta o plano, deve-se
verificar se a interseção está dentro do polígono;
 O modo de fazer isso, é projetar o polígono e o ponto
de interseção em um dos 3 planos que definem o
sistema de coordenadas;
 O teste para verificar se o ponto está no polígono é
feito inteiramente em 2D
Recursive Ray Tracing
 Estende-se o algoritmo de ray tracing anterior para
lidar com sombras, reflexão e refração;
 Para calcular sombras, é disparado um raio adicional a
partir do ponto de interseção para cada fonte de luz. Se
esses shadow rays intersecta qualquer objeto no
caminho, o objeto está em sombra naquele ponto e o
algoritmo ignora a contribuição da fonte de luz do
shadow ray.
 O ray tracing foi estendido para incluir reflexão especular e
transparência com refração.
 Esse algoritmo recursive ray tracing dispara
condicionalmente reflection rays e refraction rays do
ponto de intersecção.
 Se o objeto tem reflexão especular, então um reflection ray
é refletido a partir da normal da superfície na direção do
vetor R.
 Se o objeto é transparente, e reflexão total interna não
ocorre, um refraction ray é lançado na direção do vetor T a
um ângulo definido pela lei de Snell, que define o desvio da
trajetória de um raio de luz quando transita por espaços
com densidades diferentes.
 Cada um desses raios podem recursivamente gerar
outros shadow, reflection e refraction rays.
 Os raios formam uma ray tree.
 Nesse algoritmo um galho é terminado quando:
 os raios refletidos e refratados falham em intersectar um
objeto;
 se uma profundidade máxima definida pelo usuário é
alcançada;
 o sistema fica sem mais espaço de armazenamento.
Considerações de eficiência para
Recursive Ray Tracing
 Item buffer – evitar o traçar de raios, definindo um item
buffer a partir de uma técnica de definição de superfície
visível mais simples, como z-buffer, no pixel do buffer é
guardado a identidade do objeto mais perto, então só esse
objeto precisa ser tratado pelo ray tracer para determinar o
a interseção do eye ray para esse pixel, para que outros raios
possam ser gerados;
 Reflections Map – evitar o traçar de raios combinando ray
tracing com reflection maps. Usa-se ray-tracing nos
elementos mais visíveis e reflection map nos demais;
 Adaptive tree-deph control – raio não é usado se sua
contribuição para a intensidade do pixel é mais baixa do
que um limiar pré-definido;
Distributed Ray Tracing
 Abordagem de supersamplig aleatório que troca o
aliasing pelo ruído;
 Stochastic Sampling:
 Aliasing é resultante quando se tem amostras
regularmente espaçadas abaixo da taxa de Nyquist. Se as
amostras não são regularmente espaçadas, então temos
ruído, que os observadores acham menos incômodo.
Amostragem aleatória pode gerar duas amostras muito
próximas, fazendo que parte da imagem fique sem ser
mostradas.
 A solução é fazer uma distribuição mínima de Poisson
onde nenhum par de amostras têm distância menor do
que um valor mínimo;
 Uma aproximação satisfatória dessa distribuição é
obtida, mudando por uma pequena distância aleatória
o valor de cada elemento de uma amostragem regular;
 Essa técnica é chamada jittering;

Vous aimerez peut-être aussi