A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Hardware assisted rendering of csg models Fabiano Segadaes Romeiro Orientadores: Luiz Velho Orientadores: Luiz Velho Luiz Henrique de Figueiredo Luiz Henrique.

Apresentações semelhantes


Apresentação em tema: "Hardware assisted rendering of csg models Fabiano Segadaes Romeiro Orientadores: Luiz Velho Orientadores: Luiz Velho Luiz Henrique de Figueiredo Luiz Henrique."— Transcrição da apresentação:

1 Hardware assisted rendering of csg models Fabiano Segadaes Romeiro Orientadores: Luiz Velho Orientadores: Luiz Velho Luiz Henrique de Figueiredo Luiz Henrique de Figueiredo

2 Motivação ► CSG: Modelagem hierárquica de objetos complexos ► Objetos gerados por combinações booleanas de primitivos simples

3 Motivação ► Interatividade é importante:  Facilita o processo de design do objeto  Permite visualização por vários angulos. ► Porém é difícil: escalabilidade.

4 Abordagens anteriores ► Boundary representations ► Depth-layering (Goldfeather) ► Recentemente: algoritmos que usam os recursos da GPU (Wiegand, Rappoport, Stewart, Guha, etc) ► Blist, Depth-peeling (Hable)

5 Abordagens anteriores ► Abordagens mais recentes usando GPU são bandwith limited ► Depth-peeling e depth-layering usam o stencil buffer – limitação no número de primitivos

6 Abordagem ► Superfícies de objetos CSG tem representação local simples ► Exceções são pontos pertencentes a interseção de superfícies de 3 ou mais primitivos

7 Abordagem ► Dividir espacialmente o objeto até que:  Em cada célula a representação seja simples  Ou a célula corresponda a menos de um determinado número de pixels ► Renderizar cada célula na GPU por traçado de raios

8 Subdivisão Espacial ► Octree é usada para obter células com representação local simples ► Célula inicial: bounding box do objeto ► Cada célula da octree mantém a representação local simplificada da restrição do objeto à célula em questão

9 Subdivisão Espacial ► Subdivisão em uma dada célula pára quando:  Representação local é simples o suficiente  Célula não contém superfície do objeto csg  Célula ocupa menos de determinado número de pixels na tela

10 Subdivisão Espacial – Obtenção da representação local simplificada ► Procedimento recursivo simplifica a representação em cada célula usando a representação simplificada de sua célula pai como ponto de partida

11 Subdivisão Espacial – Obtenção da representação local simplificada ► Procedimento testa interseção da célula com primitivos na representação local associada a ela. ► Seguindo uma série de regras de redução a representação é simplificada.

12 Subdivisão Espacial ► Após construída a octree ela é percorrida de maneira front-to-back. ► Cada célula cuja representação simplificada é não-nula e não contém mais de 3 primitivos tem o objeto csg formado pela sua representação simplificada renderizada na GPU

13 Traçado de raios na GPU ► Existem diversas abordagens recentes para o traçado de raios na GPU ► Extensão do traçado de raios de primitivos de Toledo et al para traçado de raios de operações booleanas entre dois primitivos

14 Traçado de raios na GPU - primitivos ► Bounding box do primitivo é renderizada e vertex e pixel shaders apropriados são carregados ► Em cada pixel das faces das bounding boxes o pixel shader determina se o raio partindo da camera até o pixel em questão intersecta ou não o primitivo. ► Caso afirmativo o cálculo do shading é realizado

15 Traçado de raios na GPU - primitivos ► Para renderizar a restrição de primitivos a uma determinada célula:  Renderizada a restrição do bounding box do primitivo à célula e para cada pixel  Segmentos do raio que intersectam o primitivo e a célula são intersectados para obter o segmento determinante  Dependendo do segmento resultante o pixel é descartado ou renderizado após sua cor ser calculada.

16 Traçado de raios na GPU – operações booleanas de primitivos ► Modificações em cima do algoritmo para primitivos:  Complemento  Interseção  Diferença  União

17 Modelagem e visualização interativa ► Importante: CAD e engenharia de partes

18 Modelagem e visualização interativa ► A medida que o objeto CSG é visualizado podem ocorrer: ► Mudanças de iluminação ► Mudanças no objeto CSG ► Mudanças na localização/direção da camera

19 Modelagem e visualização interativa ► No caso em que o objeto se altera:  Somente é necessário recalcular a octree nas partes em que o objeto se alterou  Renderizar novamente somente estas partes. ► Otimização: verificar se células estão oclusas antes de renderiza-las ► Dificuldade: realizar um occlusion query pode não compensar tendo em vista que o mesmo introduz stalls no pipeline da GPU. SOLUÇÃO: abordagem hierarquica

20 Resultados ► Testes realizados com objetos representativos do uso comum de CSG ► Enfoque dado a performance da operação mais complexa (diferença) ► Verificação de corretude - realizadas comparações com o povray ► Escalabilidade testada usando-se modelos de crescente complexidade

21 Resultados

22 Resultados

23 Resultados ► Performance mostrou-se, como esperado, dependente de dois fatores:  Complexidade de profundidade  Área ocupada pelo objeto na tela

24 Resultados – occlusion queries

25

26

27

28 ► Mais útil em determinados viewpoints ► Maior impacto em GPUs mais lentas ► Nível hierárquico ótimo em que testar para oclusão varia – processo de otimização que detecte nível ótimo geraria constante ganho de performance independente de viewpoint.

29 Resultados - corretude

30

31

32 ► Quase nenhum artefato visível ► Artefatos existem onde são esperados: nos pontos pertencentes a superfícies de 3 primitivos diferentes

33 Conclusões ► Abordagem mais dependente de instruction throughput do que bandwidth em modelos razoavelmente complexos ► Modelos muito complexos começam a ser limitados pela CPU e pela CPU/GPU bandwidth

34 Trabalhos futuros ► Inter-object shadows ► rocedimento de otimização para occlusion queries ► Volumetric rendering ► Mais primitivos


Carregar ppt "Hardware assisted rendering of csg models Fabiano Segadaes Romeiro Orientadores: Luiz Velho Orientadores: Luiz Velho Luiz Henrique de Figueiredo Luiz Henrique."

Apresentações semelhantes


Anúncios Google