inf 2063 tópicos em cg ii visualização de modelos massivos
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 PresentationTRANSCRIPT
INF 2063Tópicos em CG II
Visualização de Modelos MassivosPeter Dam
Asynchronous BVH Construction for Ray Tracing DynamicScenes on Parallel Multi-Core Architectures
Thiago Ize, Ingo Wald, Steven G. ParkerEurographics 2007
Paper
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
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
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
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
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
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
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
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
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
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
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
Resultados- Somente usando técnica de “refit”- Rebuild usando heurística de Lauterbach- Rebuild assíncrono
FPS x Tempo de execução
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
Resultados
- Somente usando técnica de “refit”- Rebuild usando heurística de Lauterbach- Rebuild assíncrono
FPS x Tempo de execução
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.
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