Luís Paulo Santos - Computação Gráfica 08/09 Computação Gráfica Ray Tracing.
Ray Tracing Disciplina: Fundamentos de Computação Gráfica Professor : Marcelo Gattass Allan...
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.