MCGAV 2004 – Universidade do Minho
| tema | Ray Tracing Distribuído
| autores | Robert L. Cook, Thomas Porter e Loren Carpenter
| instituição | Computer Division - Lucasfilm Ltd.
Rudolfo Quintas e Tiago Rodrigues | apresentação |
Ray Tracing Distribuído
:: Vantagem
Uma das técnicas mais elegantes na computação gráfica.
Permite representar sombras, reflexos e refracções de luz,
sem grandes dificuldades.
:: Desvantagem
As direcções dos raios são determinadas de modo preciso.
Não existe a simulação de fenómenos ruidosos
Ray Tracing Distribuído
:: Proposta
Distribuição das direcções dos raios de acordo
uma função analítica.
Incorporação de fenómenos ruidosos.
Soluções para motion blur, profundidade de campo,
penumbras, translucidez e reflexões esbatidas.
Os cálculos podem ser integrados
nos cálculos da superfície visível.
Ray Tracing Distribuído
| 1. Introdução |
::As imagens traçadas por os raios resultam
sharp porque as direcções dos raios são determinadas precisamente da geometria
:: Esta abordagem não foi conseguida anteriormente por causa do aliasing
:: O ray tracing é uma forma de amostragem por ponto
teve sujeito ao artefacto do aliasing
:: Este aliasing não é inerentepode
Pode ser filtrado como qualquer outro método analítico. -> Jittering
Ray Tracing Distribuído
| 1. Introdução (continuação)|
:: O antialiasing proposto
é baseado na abordagem proposta por Rodney Stock.
:: A técnica de antialiasing abre novas possibilidades para o ray tracing
:: Calculado com o antaialiasing devido, os raios podem amostrar movimento,
as lentes da câmara, a função de shading completa.
:: A chave -> não são necessários raios extra para lá daqueles usados para a
sobreamostragem espacial
:: Por exemplo,
em vez de tirar múltiplas amostragens temporais a todas as localizações
espaciais,os raios são distribuídos no tempo de forma a que raios em localizações
espaciais diferentes sejam traçados em diferentes instâncias do tempo.
:: raios distribuídos oferecem benefícios substanciais com pouco custo adicional.
Ray Tracing Distribuído
| 1. Introdução (continuação)|
:: Amostrar o raio reflectido de acordo com a função de distribuição especular produz
gloss (reflexão esbatida)
:: Amostrar o raio transmitido produz translucencia (transparência esbatida).
:: Amostrar o ângulo sólido das fontes de luz produz penumbras.
:: Amostrar as lentes da câmara produz o efeito de profundidade de campo.
:: Amostrar ao longo do tempo produz motion blur
Ray Tracing Distribuído
| 2. Shading |
A intensidade I da luz reflectida num ponto da superfície é um integral da função
de iluminação L e da função da reflexão R no domínio representado pelo hemisfério
acima da superfície.
I( Φr, θr) = ∫ ∫ L(Φi, θi) R(Φi, θi, Φr, θr) dΦidθi
Φi
θi
(Φi, θi) - o ângulo de incidência.
(Φr, θr) - o ângulo de reflexão.
:: Problema:
Complexidade de cálculo do integral.
:: Solução:
Simplificar através de aproximações.
Ray Tracing Distribuído
:: Solução 1:
O integral L é substituído por um somatório
num domínio discreto de direcções.
Estas direcções indicam as fontes de luz
como fontes pontuais.
Estes pressupostos originam sombras definidas.
Ray Tracing Distribuído
:: Solução 2:
As direcções onde não existe uma fonte de luz são agrupadas
numa fonte de luz ambiente.
A luz ambiente é a mesma em qualquer direcção.
Se L é independente de Φi e θi,
então pode ser retirada do integral.
O integral de R é substituído por uma média, ou ambiente, reflectância.
Ray Tracing Distribuído
:: Solução 3:
A função R é simplificada de modo que uma superfície apenas reflicta a luz
numa direcção, ou seja , que funcione como um espelho.
Estes pressupostos originam superfícies com reflexos definidos.
:: Solução 4:
Um método equivalente ao acima referido
pode ser aplicado para a luz transmitida.
Estes pressupostos originam superfícies com refracções definidas.
Ray Tracing Distribuído
| 2.1. Gloss |
(reflexão esbatida)
:: As reflexões são processadas como espelhos na computação gráfica,
mas na vida real são normalmente esbatidas ou desviadas/irregulares.
:: A forma como uma superfície reflecte o seu meio ambiente é chamado gloss
:: Qualquer simulação analítica destas reflexões tem que ser baseada no integral
da reflectância sobre qualquer ângulo sólido.
:: As reflexões espelhadas são determinadas traçando raios desde
a superfície na direcção do espelho
Ray Tracing Distribuído
| Exemplos Gloss |
Ray Trace Clássico
Ray Trace Distribuído
Ray Tracing Distribuído
| 2.2. Translucidez|
:: Similiar ao problema do gloss, a translucidez necessita um integral da luz transmitida.
:: A translucidez difere da transparência porque as imagens observadas através de
objectos translúcidos não são nítidas
:: A translucidez é determinada pela distribuição dos raios secundários em torno da
direcção da luz transmitida.
:: A função de transmissão T:
- Similar à que foi apresentada para a luz reflectida
- O domínio é definido pelo hemisfério que se encontra por detrás da superfície
- A luz transmitida contém componentes de luz ambiente, difusa e especular.
- A distribuição dos raios transmitidos é definida pela função de transmissão especular.
Ray Tracing Distribuído
| 2.3 Penumbras |
:: As penumbras ocorrem quando uma fonte de luz está parcialmente escondida/escurecida
:: A intensidade reflectida devido a uma luz neste estado é proporcional ao
angulo sólido da porção visível da luz
::Nota:
O ângulo sólido foi explicitamente incluído num modelo de shading, mas nenhum
algoritmo foi sugerido para determinar este ângulo sólido por causa da
complexidade da computação envolvida
:: As sombras são calculadas traçando raios desde a superfície até as fontes de luz,
e as penumbras podem ser calculadas distribuindo estes raios secundários.
:: O raio da sombra (shadow ray) pode sertraçado para qualquer ponto na fonte de luz
Ray Tracing Distribuído
| 2.3 Penumbras (continuação) |
:: O raio da sombra (shadow ray) pode sertraçado para qualquer ponto na fonte de luz
:: A distribuição destes raios de sombreamento deve ser pesada tendo em conta
a área projectada e a luminosidade das diferentes partes da fonte de luz.
:: O numero de raios traçados para cada região deveria ser proporcional
à quantidade de energia de luz que viria dessa região se a luz não estivesse obstruída.
:: A proporção de amostras de pontos iluminados numa região da superfície é igual
á proporção dessa intensidade de luz que é visível nessa região
Ray Tracing Distribuído
|Exemplo Penumbras|
Ray Trace Clássico
Ray Trace Distribuído
Ray Tracing Distribuído
| 3. Profundidade de campo |
:: Ray Tracing clássico
O modelo de camera utilizado tem uma abertura
infinitesimamente pequena.
As imagens resultantes têm um campo de visão finito.
Os objectos apresentam-se bem definidos nas imagens.
Ray Tracing Distribuído
| 3. Profundidade de campo (continuação) |
:: Postmesil
- Simulação de profundidade de campo com uma técnica de pós-processamento.
- Primeiro, cada objecto é desenhado de modo definido.
- Segundo, cada objecto é envolvido com um filtro definido pela dimensão do
circulo confusion.
- O programa despende a maior parte do tempo no pós-processamento.
- O tempo de pós-processamento aumenta drasticamente à medida que a abertura
de lente diminui.
Ray Tracing Distribuído
| 3. Profundidade de campo (continuação) |
:: Postmesil (continuação)
A abordagem de pós-processamento não é correcta porque a visibilidade é calculada a
partir de um único ponto, o centro da lente.
O visionamento do ambiente é diferente a partir das diferentes partes da lente, e as
diferenças incluem mudanças na visibilidade e na aparência (shading).
A informação sobre essas partes não estarão disponíveis no pós-processamento.
Ray Tracing Distribuído
| 3. Profundidade de campo (continuação) |
:: Ray Tracing Distribuído
As camera e o olho têm uma abertura de lente finita.
Cada ponto na cena apresenta-se como um
círculo (confusion) no plano da imagem..
O seu tamanho depende da distância do ponto
e da distância focal.
Ray Tracing Distribuído
| 3. Profundidade de campo (continuação) |
:: Ray Tracing Distribuído
- A superfícies visíveis e a sua aparência (shading) podem ser diferentes de acordo as
diferentes partes da lente.
:: Seguir o percurso do raio
- Primeiro é definida uma linha entre do pixel (plano da imagem) e um ponto escolhido
no círculo definido pela lente (jittering relativamente ao centro da mesma)
- O raio primário é disparado a partir deste ponto da lente passando pelo ponto focal.
- O processo é repetido N vezes para cada pixel.
As especificações da camera necessárias para estes cálculos são a distância focal e o
diâmetro da lente.
Este método não tem em consideração o efeito de difracção.
Ray Tracing Distribuído
| 4. Motion Blur |
o problema do motion blur e as tentativas anteriores de o solucionar:
:: O método de motion blur discutido por Potmesi não somente é dispendioso,
mas também separa os cálculos das superfícies visíveis dos cálculos do motion blur
:: na maior parte dos casos não podemos somente calcular uma só imagem e esbater o resultado
:: Problemas com as imagens de fundo, rotação de objectos e mudanças de textura
:: As sombras resultantes do motion blur também são importantes e
não são processadas correctamente se calcularmos somente uma shade por frame
Ray Tracing Distribuído
| 4. Motion Blur (cotntinuação) |
:: A técnica de pontos amostrados parece ser a única abordagem que oferece algum
compromisso para resolver o problema do motion blur.
:: Uma solução por pontos amostrados foi proposto por Karein e Badler.
no entanto, amostra os pontos somente nos espaço e não no tempo.
:: Problema:As amostragens do shading não são esbatidas pelo movimento.
Ray Tracing Distribuído
| 4. Motion Blur (cotntinuação) |
:: O método envolve manter uma lista de todos os objectos que cruzam cada
ponto de amostra durante o tempo da frame
:: uma lista que poderia ser bastante grande para uma cena complexa com movimentos rápidos.
:: Eles também impõem a restrição infeliz que ambos os vértices de uma aresta
devem mover-se à mesma velocidade
:: O algoritmo também está limitado ao movimento linear
Ray Tracing Distribuído
| 4. Motion Blur (cotntinuação) |
Distribuindo os pontos de amostragem no tempo soluciona o problema do motion blur
:: O único requisito é a habilidade para calcular a posição do objecto a um tempo específico
:: mudanças na visibilidade e shading de um objecto são correctamente calculadas/tidas em conta.
:: mudanças na visibilidade e shading de um objecto são correctamente calculadas/tidas em conta.
:: As sombras (umbras e penumbras), profundidade de campo, reflexos e intersecções são
todos correctamente esbatidos.
Ray Tracing Distribuído
| 4. Motion Blur (cotntinuação) |
:: Noção Geral:Utilizando diferentes distribuições de raios, o movimento pode ser esbatido
:: Esta distribuição dos pontos amostrados no tempo não envolve a adição de mais
pontos de amostragem
:: Actualizar as posições do objecto para cada momento de tempo é o único tempo
extra que os cálculos necessitam parar fazer o motion blur
Ray Tracing Distribuído
| 4. Motion Blur (cotntinuação) |
Imagens com Motion Blur com tempos de exposição diferentes
Ray Tracing Distribuído
| 5. Outras implicações do algoritmo |
:: Determinar a posição
Visto que cada raio ocorre num único instante do tempo, é necessário actualizar as
posições dos objectos para esse instante do tempo.
:: A união, a intersecção e a diferença.
A intersecção de superfícies é lidada de modo trivial, apenas determina-se qual é o
objecto que se encontra mais próximo, num determinado instante do tempo.
Em cada ponto de amostragem, apenas uma das superfícies é visível.
Ray Tracing Distribuído
| 5. Outras implicações do algoritmo (continuação) |
Sendo r a transparência e R a reflexão detectada por um raio num determinado
instante e local.
R e r são independentes do comprimento de onda r a cor da transparência não é
necessariamente igual à cor da reflexão.
Por exemplo, um plástico vermelho transparente pode ter brilho branco.
Se existires n-1 superfícies transparentes em frente de uma superfície opaca, a luz que
chega até ao observador é
n-1
n-2
n
i-1
i=1
i=1
i=1
j=1
Rn ∏ri + Rn-1 ∏ri + … + R2 ∏r1 + R1 = ∑ Ri ∏rj
Ray Tracing Distribuído
| 6. Sumário Do Algoritmo |
1- Escolher um momento no tempo para o raio e move os objectos de acordo
2-O numero de raios num determinado momento é proporcional aos valores do desejado filtro temporal nesse
momento de tempo.
3- Construir um raio desde o ponto do olho (centro da lente) a um ponto no ecrã
4- Escolher uma localização na lente e traça um raio desde essa localização ao ponto focal do raio original
5- Determinar qual o objecto que está visível.
6- Calcular as sombras.
7- Para cada fonte de luz, escolher uma localização na luz e traçar um raio
desde o ponto visível a essa localização
Ray Tracing Distribuído
| 6. Sumário Do Algoritmo (continuação) |
8- O numero de raios traçados a uma localização na luz deveria ser proporcional
à intensidade e área projectada daquela localização como vista da superfície
9- Para reflexões, escolher uma direcção à volta do espelho de direcção e
traçar um raio nessa direcção desde o ponto visível.
10- O número de raios traçados numa direcção específica deve ser proporcional à quantidade de luz desde essa
direcção que è reflectida na direcção do observador
11- Para a luz transmitida, escolher uma direcção à volta
da direcção da luz transmitida e traça um raio nessa direcção desde o ponto visível.
12- O número de raios traçados nessa direcção específica deve ser proporcional à
quantidade de luz desde essa direcção que é transmitida até ao observador
Ray Tracing Distribuído
| 7. Conclusão |
:: O ray tracing distribuído é um novo paradigma para a computação gráfica que resolve
um conjunto de problemas ou problemas parcialmente resolvidos
:: A abordagem também foi bem resolvida quando adaptada a uma algoritmo de scanline
:: Incorpora os cálculos da profundidade de campo nos cálculos das superfícies visíveis,
eliminando os problemas dos métodos anteriores
:: Torna possivel os fenómentos esbatidos, como as penumbras, o gloss e translucencia.
Tudo isto pose ser esbatido com o movimento distribuindo os raios no tempo.
:: Esta abordagem na síntese de imagens é praticamente tão dispendiosa quanto o
ray tracing clássico e resolve todos estes problemas de uma só vez.
Ray Tracing Distribuído
| 7. Conclusão (continuação) |
:: Os problemas nunca poderiam ser resolvidos separadamente porque estão todos interligados
:: Diferenças no shading, nas penumbras e na visibilidade são tidas em conta
para os cálculos da profundidade de campo
:: As mudanças na profundidade de campo e na visibilidade são esbatidas com o movimento.
:: Os cálculos de penumbras e de shading são esbatidos com o movimento
-Todos este fenómenos estão interligados
e a nova abordagem soluciona todos eles de uma só vez amostrando (by sampling)
o espaço multidimensional que eles definem
:: A chave para isto é a habilidade de esbater a amostra por ponto (antialias point sampling).
Download

ppt - Universidade do Minho