1 / 29

Ray Tracing com Octree

Ray Tracing com Octree. Fundamentos da Computação Gráfica Thiago Marques Toledo. Objetivos. Implementar um ray tracer básico Tal como nos slides de aula Inteiramente em CPU Melhorar desempenho com uso de Octree. Ray Tracer Básico. Modelo Blinn-Phong Sombra Reflexão

Download Presentation

Ray Tracing com Octree

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Ray Tracing com Octree FundamentosdaComputaçãoGráfica Thiago Marques Toledo

  2. Objetivos • Implementar um ray tracer básico • Tal comonos slides de aula • Inteiramenteem CPU • Melhorardesempenho com uso de Octree

  3. Ray Tracer Básico • ModeloBlinn-Phong • Sombra • Reflexão • Aplicação de Textura • Suporte a esferas e caixasalinhadas

  4. CenaBásica com OpenGL

  5. CenaBásica com Ray Tracing

  6. CenaBásica com Ray Tracing

  7. Experiências • EstruturasCríticas • Raio e Vetor • Devem ser tãopequenosquantopossível • Criação de cópiasdeve ser evitada • Impacto MUITO grande no desempenho • Uso de referênciasconstantesnapassagem de funções • Cálculos com vetoresdurantetratamento de colisãodeve ser feito com cuidado

  8. Experiências • Tratamento de Interseções • Normalmente a primeiraimplementação é ingênua • Nemsempre é necessário saber ponto de colisão e normal relacionada • Testes de raio contra hierarquias de volume • Podemexistirotimizações • Hámuitapesquisaemalgoritmos de colisão • Se não é o objeto de pesquisa, procure o maisrecente! • É o bottleneck do Ray Tracer

  9. Experiências • Tratamento de Interseções • Raio x Esfera • Tal comonos slides de aula • Avaliaumaequação de segundograu • Háalgoritmosmaiseficientes • Raio x AABB (avaliandoponto de contato) • Método desenvolvido por Kay e Kayjia • Avaliação por Slabs (espaço entre dois planos paralelos) • Calcula Interseção do Raio com slabs XYZ (pontos T1 e T2) • Se o maior T1 (T-Near) for menor que o menor T2 (T-Far) • Há interseção

  10. Experiências

  11. Octree • Hierarquia de AABBs • Espaço é divididoem 8 AABBs sucessivamente • Níveldaárvoredefinidoporusuário • Não é necessáriodescer um nívelnumaregiãoemquenãoháobjetos • Testes de interseçãosãofeitos a partirdaraiz • Se nãohouverinterseção, toda a área é descartada (filhosnãoprecisam ser testados)

  12. Octree • Pode-se considerar um volume envolventerepresentando o objetonaconstruçãodaárvore • Falsopositivo no teste de intreseçãonão é um problema

  13. Octree (1 Nível)

  14. Octree (2 Níveis)

  15. Octree (3 Níveis)

  16. Octree (4 Níveis)

  17. Octree (5 Níveis)

  18. Octree (6 Níveis)

  19. Octree (7 Níveis)

  20. Octree (8 Níveis)

  21. Octree (8 Níveis)

  22. Octree • OpenGL • Frustum Culling • Não é necessárioenviarpararenderizaçãoobjetosfora do campo de visão • Objetospodem ser referenciadosemmais de um nónahierarquia • Necessárioidentificarobjetosquejáforamrenderizados • Frame Par/Frame Ímpar • Nãoháganhoquandotodososobjetosestãovisíveis

  23. Octree • Ray Tracer • Objetosfora do frustrumpodeminfluenciarrenderização • Ganhoemdiminuir o número de testes de interseção de raio • Raiopodecruzarváriosnóscontendo um mesmoobjeto, quedeve ser testadoumaúnicavez • Objetoarmazena ID e resultado do últimoraio • Falsopositivonão é um problema, jáqueraioprecisasempre ser testado contra objeto • Podehaverganhomesmoquetodososobjetosestejamvisíveis

  24. Octree • InterseçãoRaio x AABB • Não é necessárioponto de contato • É críticopara o desempenho • AlgoritmopropostoporEisemann • Uso de Slabs, mas com pré-processamentoparaclassificação do raio • Maisrápidoque o método anterior, masnãoidentificaponto de contato

  25. Comparação de Tempo

  26. Comparação de Tempo

  27. Comparação de Tempo • Diferençagrande entre esferas e AABBs • 229,8s x 144,7s • Superfíciesnãoexatamente do mesmotamanho… • Maiordiferençaestánaeficiência do tratamento de interseção • AlgoritmoparaEsfera é caro • Existemoutrosmelhores • Algoritmopara AABB tem boa performance

  28. Comparação de Tempo • Ganhomáximoemtorno de 97,5% emrelação à renderizaçãosemOctree • Há um número de níveis a partir do qual é melhortestartodososobjetos • Dependedacena, de tamanho dos objetos, etc. • Nascenastestadas, melhorresultadofoi com 4 níveis

  29. Referências • Slides de aula • Real Time Rendering • T. Akenine-Möller, E. Haines, N. Hoffman • Chapter 16: Intersection Test Methods • http://www.siggraph.org/education/materials/HyperGraph/raytrace/rtinter3.htm • http://jgt.akpeters.com/papers/EisemannEtAl07/

More Related