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

Upload: internet

Post on 17-Apr-2015

103 views

Category:

Documents


0 download

TRANSCRIPT

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