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

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

Embed Size (px)

Citation preview

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

Hardware assisted Hardware assisted rendering of csg rendering of csg

modelsmodelsFabiano Segadaes RomeiroFabiano Segadaes Romeiro

Orientadores: Luiz VelhoOrientadores: Luiz Velho Luiz Henrique de Luiz Henrique de FigueiredoFigueiredo

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

MotivaçãoMotivação

► CSG: Modelagem CSG: Modelagem hierárquica de hierárquica de objetos complexosobjetos complexos

►Objetos gerados por Objetos gerados por combinações combinações booleanas de booleanas de primitivos simplesprimitivos simples

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

MotivaçãoMotivação

► Interatividade é Interatividade é importante: importante: Facilita o processo Facilita o processo

de design do objetode design do objeto Permite visualização Permite visualização

por vários angulos.por vários angulos.

► Porém é difícil: Porém é difícil: escalabilidade.escalabilidade.

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

Abordagens anterioresAbordagens anteriores

►Boundary representationsBoundary representations►Depth-layering (Goldfeather)Depth-layering (Goldfeather)►Recentemente: algoritmos que usam Recentemente: algoritmos que usam

os recursos da GPU (Wiegand, os recursos da GPU (Wiegand, Rappoport, Stewart, Guha, etc)Rappoport, Stewart, Guha, etc)

►Blist, Depth-peeling (Hable)Blist, Depth-peeling (Hable)

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

Abordagens anterioresAbordagens anteriores

►Abordagens mais recentes usando Abordagens mais recentes usando GPU são bandwith limitedGPU são bandwith limited

►Depth-peeling e depth-layering usam o Depth-peeling e depth-layering usam o stencil buffer – limitação no número de stencil buffer – limitação no número de primitivosprimitivos

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

AbordagemAbordagem

► Superfícies de Superfícies de objetos CSG tem objetos CSG tem representação local representação local simples simples

► Exceções são Exceções são pontos pontos pertencentes a pertencentes a interseção de interseção de superfícies de 3 ou superfícies de 3 ou mais primitivosmais primitivos

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

AbordagemAbordagem

► Dividir espacialmente o Dividir espacialmente o objeto até que:objeto até que: Em cada célula a Em cada célula a

representação seja representação seja simples simples

Ou a célula corresponda a Ou a célula corresponda a menos de um menos de um determinado número de determinado número de pixelspixels

► Renderizar cada célula Renderizar cada célula na GPU por traçado de na GPU por traçado de raiosraios

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

Subdivisão EspacialSubdivisão Espacial

►Octree é usada para obter células com Octree é usada para obter células com representação local simplesrepresentação local simples

►Célula inicial: bounding box do objetoCélula inicial: bounding box do objeto►Cada célula da octree mantém a Cada célula da octree mantém a

representação local simplificada da representação local simplificada da restrição do objeto à célula em restrição do objeto à célula em questãoquestão

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

Subdivisão EspacialSubdivisão Espacial

► Subdivisão em uma Subdivisão em uma dada célula pára dada célula pára quando:quando: Representação local é Representação local é

simples o suficiente simples o suficiente Célula não contém Célula não contém

superfície do objeto superfície do objeto csg csg

Célula ocupa menos Célula ocupa menos de determinado de determinado número de pixels na número de pixels na telatela

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

Subdivisão Espacial – Obtenção Subdivisão Espacial – Obtenção da representação local da representação local

simplificada simplificada ► Procedimento recursivo simplifica a Procedimento recursivo simplifica a

representação em cada célula usando a representação em cada célula usando a representação simplificada de sua célula representação simplificada de sua célula pai como ponto de partidapai como ponto de partida

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

Subdivisão Espacial – Obtenção Subdivisão Espacial – Obtenção da representação local da representação local

simplificadasimplificada►Procedimento testa interseção da Procedimento testa interseção da

célula com primitivos na célula com primitivos na representação local associada a ela.representação local associada a ela.

►Seguindo uma série de regras de Seguindo uma série de regras de redução a representação é redução a representação é simplificada.simplificada.

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

Subdivisão EspacialSubdivisão Espacial

►Após construída a octree ela é Após construída a octree ela é percorrida de maneira front-to-back.percorrida de maneira front-to-back.

►Cada célula cuja representação Cada célula cuja representação simplificada é não-nula e não contém simplificada é não-nula e não contém mais de 3 primitivos tem o objeto csg mais de 3 primitivos tem o objeto csg formado pela sua representação formado pela sua representação simplificada renderizada na GPUsimplificada renderizada na GPU

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

Traçado de raios na GPUTraçado de raios na GPU

►Existem diversas abordagens recentes Existem diversas abordagens recentes para o traçado de raios na GPUpara o traçado de raios na GPU

►Extensão do traçado de raios de Extensão do traçado de raios de primitivos de Toledo et al para traçado primitivos de Toledo et al para traçado de raios de operações booleanas entre de raios de operações booleanas entre dois primitivosdois primitivos

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

Traçado de raios na GPU - Traçado de raios na GPU - primitivosprimitivos

► Bounding box do primitivo é renderizada e vertex Bounding box do primitivo é renderizada e vertex e pixel shaders apropriados são carregados e pixel shaders apropriados são carregados

► Em cada pixel das faces das bounding boxes o Em cada pixel das faces das bounding boxes o pixel shader determina se o raio partindo da pixel shader determina se o raio partindo da camera até o pixel em questão intersecta ou não camera até o pixel em questão intersecta ou não o primitivo. o primitivo.

► Caso afirmativo o cálculo do shading é realizadoCaso afirmativo o cálculo do shading é realizado

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

Traçado de raios na GPU - Traçado de raios na GPU - primitivosprimitivos

►Para renderizar a restrição de Para renderizar a restrição de primitivos a uma determinada célula: primitivos a uma determinada célula: Renderizada a restrição do bounding box Renderizada a restrição do bounding box

do primitivo à célula e para cada pixeldo primitivo à célula e para cada pixel Segmentos do raio que intersectam o Segmentos do raio que intersectam o

primitivo e a célula são intersectados para primitivo e a célula são intersectados para obter o segmento determinanteobter o segmento determinante

Dependendo do segmento resultante o Dependendo do segmento resultante o pixel é descartado ou renderizado após pixel é descartado ou renderizado após sua cor ser calculada.sua cor ser calculada.

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

Traçado de raios na GPU – Traçado de raios na GPU – operações booleanas de operações booleanas de

primitivosprimitivos►Modificações em cima do algoritmo Modificações em cima do algoritmo

para primitivos:para primitivos: ComplementoComplemento InterseçãoInterseção DiferençaDiferença UniãoUnião

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

Modelagem e visualização Modelagem e visualização interativainterativa

► Importante: CAD e engenharia de partesImportante: CAD e engenharia de partes

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

Modelagem e visualização Modelagem e visualização interativainterativa

►A medida que o objeto CSG é A medida que o objeto CSG é visualizado podem ocorrer:visualizado podem ocorrer:

►Mudanças de iluminaçãoMudanças de iluminação►Mudanças no objeto CSG Mudanças no objeto CSG ►Mudanças na localização/direção da Mudanças na localização/direção da

cameracamera

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

Modelagem e visualização Modelagem e visualização interativainterativa

►No caso em que o objeto se altera:No caso em que o objeto se altera: Somente é necessário recalcular a octree nas Somente é necessário recalcular a octree nas

partes em que o objeto se alteroupartes em que o objeto se alterou Renderizar novamente somente estas partes. Renderizar novamente somente estas partes.

►Otimização: verificar se células estão Otimização: verificar se células estão oclusas antes de renderiza-lasoclusas antes de renderiza-las

►Dificuldade: realizar um occlusion query Dificuldade: realizar um occlusion query pode não compensar tendo em vista que o pode não compensar tendo em vista que o mesmo introduz stalls no pipeline da GPU. mesmo introduz stalls no pipeline da GPU. SOLUÇÃO: abordagem hierarquicaSOLUÇÃO: abordagem hierarquica

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

ResultadosResultados

►Testes realizados com objetos Testes realizados com objetos representativos do uso comum de CSGrepresentativos do uso comum de CSG

►Enfoque dado a performance da Enfoque dado a performance da operação mais complexa (diferença) operação mais complexa (diferença)

►Verificação de corretude - realizadas Verificação de corretude - realizadas comparações com o povraycomparações com o povray

►Escalabilidade testada usando-se Escalabilidade testada usando-se modelos de crescente complexidademodelos de crescente complexidade

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

ResultadosResultados

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

ResultadosResultados

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

ResultadosResultados

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

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

Resultados – occlusion Resultados – occlusion queriesqueries

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

Resultados – occlusion Resultados – occlusion queriesqueries

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

Resultados – occlusion Resultados – occlusion queriesqueries

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

Resultados – occlusion Resultados – occlusion queriesqueries

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

Resultados – occlusion Resultados – occlusion queriesqueries

►Mais útil em determinados viewpointsMais útil em determinados viewpoints►Maior impacto em GPUs mais lentasMaior impacto em GPUs mais lentas►Nível hierárquico ótimo em que testar Nível hierárquico ótimo em que testar

para oclusão varia – processo de para oclusão varia – processo de otimização que detecte nível ótimo otimização que detecte nível ótimo geraria constante ganho de geraria constante ganho de performance independente de performance independente de viewpoint.viewpoint.

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

Resultados - corretudeResultados - corretude

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

Resultados - corretudeResultados - corretude

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

Resultados - corretudeResultados - corretude

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

Resultados - corretudeResultados - corretude

►Quase nenhum artefato visívelQuase nenhum artefato visível►Artefatos existem onde são esperados: Artefatos existem onde são esperados:

nos pontos pertencentes a superfícies nos pontos pertencentes a superfícies de 3 primitivos diferentesde 3 primitivos diferentes

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

ConclusõesConclusões

►Abordagem mais dependente de Abordagem mais dependente de instruction throughput do que instruction throughput do que bandwidth em modelos razoavelmente bandwidth em modelos razoavelmente complexoscomplexos

►Modelos muito complexos começam a Modelos muito complexos começam a ser limitados pela CPU e pela CPU/GPU ser limitados pela CPU e pela CPU/GPU bandwidthbandwidth

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

Trabalhos futurosTrabalhos futuros

► Inter-object shadowsInter-object shadows►rocedimento de otimização para rocedimento de otimização para

occlusion queriesocclusion queries►Volumetric renderingVolumetric rendering►Mais primitivosMais primitivos