INF  2063 Tópicos em CG II Visualização de Modelos Massivos

18
INF 2063 Tópicos em CG II Visualização de Modelos Massivos Peter Dam

description

INF  2063 Tópicos em CG II Visualização de Modelos Massivos. Peter Dam. Paper. Asynchronous BVH Construction for Ray Tracing Dynamic Scenes on Parallel Multi-Core Architectures. Thiago Ize , Ingo Wald, Steven G. Parker. Eurographics 2007. História (Ray Tracing x Hardware). - PowerPoint PPT Presentation

Transcript of INF  2063 Tópicos em CG II Visualização de Modelos Massivos

Page 1: INF  2063 Tópicos  em CG  II Visualização  de Modelos Massivos

INF 2063Tópicos em CG II

Visualização de Modelos MassivosPeter Dam

Page 2: INF  2063 Tópicos  em CG  II Visualização  de Modelos Massivos

Asynchronous BVH Construction for Ray Tracing DynamicScenes on Parallel Multi-Core Architectures

Thiago Ize, Ingo Wald, Steven G. ParkerEurographics 2007

Paper

Page 3: INF  2063 Tópicos  em CG  II Visualização  de Modelos Massivos

História (Ray Tracing x Hardware)

• O ray tracing (traçado de raios) data dos anos 90, com o uso de grandes supercomputadores para atingir tempo interativo

• Só recentemente ray tracing foi considerado como possivelmente viável para cenas complexas em tempo real

• Multi-cores, GPUs programáveis e hardware dedicado a ray tracing vêm aumentando o desempenho significativamente

Page 4: INF  2063 Tópicos  em CG  II Visualização  de Modelos Massivos

História (Ray Tracing x Algoritmos)

• Para driblar as limitações de hardware algumas técnicas de aceleração e otimização foram estudadas

• Uso de estruturas de aceleração espaciais

Page 5: INF  2063 Tópicos  em CG  II Visualização  de Modelos Massivos

Estruturas de AceleraçãoKD-Tree

• Até 2005 quase todas as implementações de ray tracing usavam kd-tree.

• Aceleração de renderização ótima• Custo de construção é altamente proibitivo• Construído geralmente em pré-

processamento• Problemas para cenas dinâmicas

Page 6: INF  2063 Tópicos  em CG  II Visualização  de Modelos Massivos

Estruturas de AceleraçãoGrid

• Aceleração da renderização média• Custo de construção ótima• Geralmente reconstruído a cada quadro para

cenas dinâmicas, já que tem custo linear• Bom para cenas dinâmicas, mas o ganho de

desempenho não é muito grande

Page 7: INF  2063 Tópicos  em CG  II Visualização  de Modelos Massivos

Estruturas de AceleraçãoBVH

• Aceleração da renderização boa• Custo de construção média• Tradicionalmente lenta para construir, então a

KD-Tree seria uma opção melhor que BVH• Com as técnias demonstradas no paper a

construção é feita em tempo aceitável, fazendo com que o BVH tenha o melhor desempenho para cenas dinâmicas

Page 8: INF  2063 Tópicos  em CG  II Visualização  de Modelos Massivos

Atualizando a BVHRefitting

• Atualiza a BVH para a nova configuração da cena

• Só funciona para cenas que não mudam a quantidade de triângulos ou conectividade de vértices

• BVH fica correto, porém não necessariamente eficiente

• Gradativamente diminui desempenho

Page 9: INF  2063 Tópicos  em CG  II Visualização  de Modelos Massivos

Atualizando a BVHRebuild

• Segundo Lauterbach, uma cena funciona bem com “refitting” durante uma certa quantidade de quadros

• Usa-se uma heurística para avaliar a eficiência da BVH atual (atualizada com “refitting”)

• Se a eficiência está abaixo de um limite, constrói uma nova BVH

Page 10: INF  2063 Tópicos  em CG  II Visualização  de Modelos Massivos

Atualizando a BVHAsynchronous Rebuild

• Mantém uma thread construindo nova BVH• Enquanto a thread construtora trabalha, todas

as outras fazem o render e manutenção (refitting) da BVH atual

• Quando a nova BVH estiver pronta, muda para esta nova e descarta a antiga, disparando a construção de uma nova BVH

Page 11: INF  2063 Tópicos  em CG  II Visualização  de Modelos Massivos

Métodos de Construção

• O algoritmo assíncrono de atualização independe do método de construção

• Pode demorar quanto tempo quiser para reconstruir a BVH, mas a estrutura estará defasada exatamente o tempo de construção

• Encontrar método de construção que equilibre tempo de construção com qualidade da estrutura

Page 12: INF  2063 Tópicos  em CG  II Visualização  de Modelos Massivos

Cenas

Cena: “Bart Museum”Dados: 262K triângulos; gerado para testes de estresse; grandes deformações

Cena: “Fairy Forest 2”Dados: 394K triângulos; animações com keyframes; quase todos os triângulos deformam a cada quadro; cena semelhante à de um jogo

Page 13: INF  2063 Tópicos  em CG  II Visualização  de Modelos Massivos

Resultados

• Todos os testes feitos com render em tamanho 1024 x 1024

• Não foram lançados raios secundários (sombra, reflexão, etc.) pois a técnica trata da construção da estrutura de aceleração e estes raios só impactam no tempo de renderização, e não de construção da estrutura

• Tempo de construção na cena BART: 170ms• Tempo de construção na cena Fairy Forest: 230ms

Page 14: INF  2063 Tópicos  em CG  II Visualização  de Modelos Massivos

Resultados- Somente usando técnica de “refit”- Rebuild usando heurística de Lauterbach- Rebuild assíncrono

FPS x Tempo de execução

Page 15: INF  2063 Tópicos  em CG  II Visualização  de Modelos Massivos

Resultados

• Dependente da quantidade de núcleos do sistema

• Quanto mais núcleos, mais visível é a vantagem desta técnica

• Com poucos (menos de 4) núcleos a técnica até mesmo reduz a velocidade

Page 16: INF  2063 Tópicos  em CG  II Visualização  de Modelos Massivos

Resultados

- Somente usando técnica de “refit”- Rebuild usando heurística de Lauterbach- Rebuild assíncrono

FPS x Tempo de execução

Page 17: INF  2063 Tópicos  em CG  II Visualização  de Modelos Massivos

Resultados

- Método “sweep-build” (BVH melhor, mas demora mais para construir)- Método “approximate build” (BVH pior, mas bem mais rápido para construir)

FPS x Tempo de execução

Diferença entre os métodos de construção. Como a técnica de “sweep-build” demora mais, há um número maior de quadros renderizados usando a BVH “refitted”, resultando em um desempenho pior. Além disso, quando a nova BVH fica pronta ela já está desatualizada.

Page 18: INF  2063 Tópicos  em CG  II Visualização  de Modelos Massivos

Conclusão

• Para cenas que deformam pouco, somente usar o método “refitting” pode ser melhor

• Para cenas pequenas onde reconstruir completamente a estrutura a cada quadro é possível este método também é desnecessário

• Não há queda abrupta de desempenho para reconstruir BVH

• Ótima escalabilidade