| tema | Ray Tracing Distribuído
Rudolfo Quintas e Tiago Rodrigues | apresentação |
| autores | Robert L. Cook, Thomas Porter e Loren Carpenter
MCGAV 2004 – Universidade do Minho
| instituição | Computer Division - Lucasfilm Ltd.
Ray Tracing Distribuído
:: Vantagem
Permite representar sombras, reflexos e refracções de luz,sem grandes dificuldades.
:: Desvantagem
Não existe a simulação de fenómenos ruidosos
Uma das técnicas mais elegantes na computação gráfica.
As direcções dos raios são determinadas de modo preciso.
Ray Tracing Distribuído
:: Proposta
Incorporação de fenómenos ruidosos.
Distribuição das direcções dos raios de acordouma função analítica.
Soluções para motion blur, profundidade de campo,penumbras, translucidez e reflexões esbatidas.
Os cálculos podem ser integradosnos cálculos da superfície visível.
| 1. Introdução |
Ray Tracing Distribuído
::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 é inerentepodePode ser filtrado como qualquer outro método analítico. -> Jittering
Ray Tracing Distribuído
:: 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.
:: O antialiasing proposto é baseado na abordagem proposta por Rodney Stock.
| 1. Introdução (continuação)|
Ray Tracing Distribuído
:: Amostrar o raio transmitido produz translucencia (transparência esbatida).
:: Amostrar o raio reflectido de acordo com a função de distribuição especular produz gloss (reflexão 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
| 1. Introdução (continuação)|
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.
:: Solução 1:
O integral L é substituído por um somatórionum domínio discreto de direcções.
Ray Tracing Distribuído
Estas direcções indicam as fontes de luzcomo 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 agrupadasnuma 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 luznuma direcção, ou seja , que funcione como um espelho.
:: Solução 4:
Um método equivalente ao acima referido pode ser aplicado para a luz transmitida.
Estes pressupostos originam superfícies com reflexos definidos.
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 integralda reflectância sobre qualquer ângulo sólido.
:: As reflexões espelhadas são determinadas traçando raios desdea superfície na direcção do espelho
Ray Tracing Distribuído
| Exemplos Gloss |
Ray Trace Clássico Ray Trace Distribuído
| 2.2. Translucidez|
Ray Tracing Distribuído
- A distribuição dos raios transmitidos é definida pela função de transmissão especular.
- Similar à que foi apresentada para a luz reflectida
:: A função de transmissão T:
- 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 translucidez difere da transparência porque as imagens observadas através de objectos translúcidos não são nítidas
:: Similiar ao problema do gloss, a translucidez necessita um integral da luz transmitida.
:: A translucidez é determinada pela distribuição dos raios secundários em torno da direcção da luz transmitida.
| 2.3 Penumbras |
Ray Tracing Distribuído
:: 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 nenhumalgoritmo 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
:: A distribuição destes raios de sombreamento deve ser pesada tendo em contaa á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
:: O raio da sombra (shadow ray) pode sertraçado para qualquer ponto na fonte de luz
| 2.3 Penumbras (continuação) |
Ray Tracing Distribuído
|Exemplo Penumbras|
Ray Trace Clássico Ray Trace Distribuído
| 3. Profundidade de campo |
Ray Tracing Distribuído
:: Ray Tracing clássico
As imagens resultantes têm um campo de visão finito.
Os objectos apresentam-se bem definidos nas imagens.
O modelo de camera utilizado tem uma aberturainfinitesimamente pequena.
| 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
Ray Tracing Distribuído
:: Ray Tracing Distribuído
O seu tamanho depende da distância do pontoe da distância focal.
Cada ponto na cena apresenta-se como umcírculo (confusion) no plano da imagem..
| 3. Profundidade de campo (continuação) |
As camera e o olho têm uma abertura de lente finita.
| 3. Profundidade de campo (continuação) |
Ray Tracing Distribuído
:: 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
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 enão são processadas correctamente se calcularmos somente uma shade por frame
| 4. Motion Blur |
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) |
:: 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
:: 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.
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ãotodos correctamente esbatidos.
Ray Tracing Distribuído
| 4. Motion Blur (cotntinuação) |
:: 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
:: Noção Geral:Utilizando diferentes distribuições de raios, o movimento pode ser esbatido
Ray Tracing Distribuído
| 4. Motion Blur (cotntinuação) |
Imagens com Motion Blur com tempos de exposição diferentes
| 5. Outras implicações do algoritmo |
Ray Tracing Distribuído
:: 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.
| 5. Outras implicações do algoritmo (continuação) |
Ray Tracing Distribuído
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
Rn ∏ri + Rn-1 ∏ri + … + R2 ∏r1 + R1 = ∑ Ri ∏rj
i=1 i=1 i=1 j=1
| 6. Sumário Do Algoritmo |
Ray Tracing Distribuído
2-O numero de raios num determinado momento é proporcional aos valores do desejado filtro temporal nesse momento de tempo.
1- Escolher um momento no tempo para o raio e move os objectos de acordo
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
| 6. Sumário Do Algoritmo (continuação) |
Ray Tracing Distribuído
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
9- Para reflexões, escolher uma direcção à volta do espelho de direcção etraçar um raio nessa direcção desde o ponto visível.
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
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
| 7. Conclusão |
Ray Tracing Distribuído
:: 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 oray tracing clássico e resolve todos estes problemas de uma só vez.
| 7. Conclusão (continuação) |
Ray Tracing Distribuído
:: 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 interligadose 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).
:: Os problemas nunca poderiam ser resolvidos separadamente porque estão todos interligados
Top Related