Ray Tracing Disciplina: Fundamentos de Computação Gráfica Professor : Marcelo Gattass Allan...

Post on 17-Apr-2015

106 views 1 download

Transcript of Ray Tracing Disciplina: Fundamentos de Computação Gráfica Professor : Marcelo Gattass Allan...

Ray Tracing

Disciplina: Fundamentos de Computação Gráfica

Professor : Marcelo Gattass

Allan Carlos Avelino Rocha

Departamento de Informática

Departamento de Informática

Introdução

Ray tracing (traçado de raios) é um algoritmo de computação gráfica usado para síntese (renderização) de imagens tridimensionais.

Algoritmo (Brute Force)

Departamento de Informática

Introdução

Caro:

- Intersecção raio-objeto (Triângulos)

- Cena com |O| número de objetos e imagem compostaPor | I | pixels, temos complexidade | I |x| O |.

Departamento de Informática

Análise

Como melhorar o Ray Tracing?

- Descarte de triângulos

- Cálculo de interseção

- Estrutura de dados eficientes

- Técnicas de programação

Departamento de Informática

Análise

Descarte de Triângulos

Departamento de Informática

Análise

Melhorar o cálculo de interseção

Idéia:

Calculo de Interseção com o triângulo Exemplo : Algoritmo de Möller

Departamento de Informática

Análise

Uso de estruturas de dados eficientes

Grid Unifome (HBV)

- Cálculo do bbox da scena- Divide o bbox em uma certa resolução- Calcula a interseção com cada bbox

Octree, Kdtree ...

c

Departamento de Informática

Análise

Técnicas de programação

- Chamadas de função (#define, inline)

- Passagem por referência- Aproveitar o paralelismo dos raios

- Openmp - Threads

Outros : occlusion queries (opengl)

Departamento de Informática

Conclusão

Mudanças feitas

Mudança no código de impressão dos pixels na tela, já que cada vez que uma interrupção de tela é lançada, o processamento tem que parado instantaneamente.

Inserção de #defines no código para evitar chamadas de função Utilização de parametros de compilação para paralelizar trechos independentes de codigo

Tentativas

- Mudança nas passagens por valor das funções- Algoritmo de moller- Openmp(programacao paralela)- Uso de uma HBV ou Octree

Departamento de Informática

Conclusão

Tentativas

- Mudança nas passagens por valor das funções- Algoritmo de moller- Openmp(programacao paralela)- Uso de uma HBV ou Octree

Departamento de Informática

Referências

Ray Tracing Acceleration Techniques, Greg Humphreys and Rui Wang and Nolan Goodnight, University of Virginia, 2003.

Biblioteca de Traçado de Raios em Tempo Real, Paulo Ivson, Puc-rio, 2007.

Algorithms to test ray-triangle intersection. Comparative study, Rafael J. Segura1, Francisco R. Feito, Universidad de Jaén, Spain.

Ray Tracing Triangular Meshes, John Amanatides and Kin Choi, York UniversityNorth York, Ontario, Canada.

Opengl Programming Guide Fifth Edition, Redbook.

A Fast Triangle-Triangle Intersection Test, Thomas Moller.

Fast Ray-Triangle Intersection Test Using Orientation Determinants, Philippe Guigueand Olivier Devillers, 2003.