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

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

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

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

INF 2063Tópicos em CG II

Visualização de Modelos Massivos

Peter Dam

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

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 Peter Dam.

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 Peter Dam.

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 Peter Dam.

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 Peter Dam.

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 Peter Dam.

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 Peter Dam.

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 Peter Dam.

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 Peter Dam.

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 Peter Dam.

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 Peter Dam.

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 Peter Dam.

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 Peter Dam.

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 Peter Dam.

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 Peter Dam.

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 Peter Dam.

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 Peter Dam.

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