inf 2063 tópicos em cg ii visualização de modelos massivos
Post on 21-Mar-2016
36 Views
Preview:
DESCRIPTION
TRANSCRIPT
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
top related