1 / 34

Plano de Aulas

Plano de Aulas. Estruturas de aceleração Descarte contra volume de visão Descarte por oclusão Grafo de cena: OpenSceneGraph Traçado de raios em tempo real Paulo Ivson psantos at tecgraf.puc-rio.br. Estruturas de Aceleração para Visualização. Paulo Ivson psantos at tecgraf.puc-rio.br

rufin
Télécharger la présentation

Plano de Aulas

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Plano de Aulas • Estruturas de aceleração • Descarte contra volume de visão • Descarte por oclusão • Grafo de cena: OpenSceneGraph • Traçado de raios em tempo real • Paulo Ivson • psantos at tecgraf.puc-rio.br

  2. Estruturas de Aceleração para Visualização Paulo Ivson psantos at tecgraf.puc-rio.br 08-10-08

  3. Sumário • Motivação • Volumes Envolventes • Estruturas de Aceleração

  4. Motivação Por que técnicas de aceleração?

  5. Motivação Isosuperfície de Richtmyer-Meshkov: 100 milhões de triângulos Estátua de São Matheus escaneada a laser: 372 milhões de triângulos

  6. Motivação Boeing 777, modelo CAD: 350 milhões de triângulos P-43: 30 milhões de triângulos P-40: 13 milhões de triângulos

  7. Motivação • Desafios • Aplicação interativa (i.e. >10fps) • CPU • Ordem de complexidade de algoritmos • GPU • Quantidade de memória • Capacidade de processamento • Taxa de transferência

  8. Motivação • Técnicas de Aceleração • Reduzir complexidade de algoritmos • Reduzir volume de dados a ser processado pela placa gráfica • Sem prejudicar a qualidade final da imagem

  9. Técnicas mais comuns • Descarte por visibilidade • Volume de visão • Oclusão • Substituição de geometria • Impostores • Primitivas paramétricas • Voxels • Nível de detalhe (LOD) • Discreto • Contínuo • Adaptativo

  10. Necessidades básicas • Volumes envolventes • Simplificar operações sobre geometrias • Estruturas de aceleração • Índice espacial • Agrupar geometrias próximas

  11. Volumes Envolventes Tratar geometrias de forma simplificada

  12. Volumes Envolventes • Melhor ajuste • Maior complexidade geométrica • Maior tempo de construção

  13. Volumes Envolventes • Mais comuns • Esfera • Caixa alinhada com os eixos (AABB) • Caixa orientada (OBB)

  14. AABB • Construção O(n) • Para cada vértice • Armazenar mín. e máx. para coordenadas x, y e z • Ajuste nem sempre bom

  15. Esfera • Construção O(n) • Obter AABB • Centro ← centro da AABB • Raio ← distância entre centro e vértice da caixa • Ajuste geralmente ruim • Rápida de construir • Algoritmos eficientes baseados em distância

  16. OBB • Representação • Centro • Base ortonormal • Metade das 3 extensões Bom ajuste ≡ Boa orientação

  17. OBB Clássica • Média • M = 1/n * SUM( all vertices ) • Matriz de covariância • Análise estatística da distribuição dos vértices em torno da média • C[i][j] = 1/n * SUM( vm[i] * vm[j] ) • m = média • vm = v – m • Autovetores ortonormais → base da OBB • Complexidade O(n)

  18. OBB Clássica - Problemas • Covariância nem sempre produz bom ajuste • Vértices internos podem prejudicar orientação

  19. Estruturas de Aceleração Finalmente!

  20. Estruturas de Aceleração • Objetivos • Agrupar geometrias para simplificar operações e reduzir complexidade de algoritmos • Aplicações • Determinar visibilidade de várias geometrias (descarte por visibilidade) • Dado ponto no espaco saber geometrias próximas (seleção, traçado de raios) • Dada geometria, saber outras próximas (detecção de colisão, vizinhos próximos)

  21. Estruturas de Aceleração • Mais comuns • Grade regular • Octree • BSP-Tree • Kd-Tree • OBB-Tree

  22. Subdivisão espacial Regular Não-adaptativa Células de tamanho uniforme Largura, altura e profundidade Não precisam ser iguais entre si São iguais para todas as células Aplicações principais Busca por vizinhos próximos Traçado de raios Grade Regular

  23. Construção • Encontrar AABB da cena • Determinar número de células • Para cada geometria • Determinar quais células ela ocupa • Complexidade O(n)

  24. Determinar células ocupadas • Dado ponto no espaço, qual célula ele ocupa? • Obter AABB da geometria • Determinar cellStart, cellEnd • Calcular interseção exata de cada célula com a geometria

  25. Octree • Estritamente 8-ária • Todo nó possui zero ou oito filhos • Subdivisão regular • Alinhada com eixos • Na mediana espacial • Desvantagens • Regularidade • Orientação fixa dos planos • Aplicações principais • Detecção de colisão • Descarte por visibilidade

  26. Construção • Testar critério de parada • Número mínimo de geometrias • Profundidade máxima da árvore • Classificar geometrias em cada octante • Comparar com centro do nó • Usar volumes envolventes • Duplicar referências • Chamadas recursivas para cada nó filho • Árvore incompleta: não guarda filhos vazios • Complexidade O(n lg n)

  27. kd-Tree • Estritamente binária • Um plano de corte por nó • Alinhado com um dos eixos coordenados • Posicionado arbitrariamente • Distribuição irregular de geometrias • Adapta-se melhor do que Octree • Aplicações principais • Busca por vizinhos próximos • Traçado de raios

  28. Peculiaridades • Armazenando pontos

  29. Construção • Testar critério de parada • Encontrar “melhor” plano de corte • Eixo: alternado, maior extensão da caixa do nó • Posição: mediana espacial, heurística • Classificar geometrias em cada lado do plano • Chamadas recursivas para cada nó filho • Complexidade O(n lg n) • Depende da heurística para encontrar plano de corte

  30. OBB-Tree • Estritamente binária • Um plano de corte por nó • Posicionado na média dos centros dos objetos • Ao longo do maior eixo da OBB • Aplicação principal • Detecção de colisão

  31. Construção • Testar critério de parada • Calcular plano de corte • Eixo: maior extensão da caixa do nó • Posição: média dos centros dos objetos • Classificar geometrias em cada lado do plano • Chamadas recursivas para cada nó filho • Complexidade O(n lg n) • Depende do algoritmo de construção da OBB

  32. BSP-Tree • Estritamente binária • Um plano de corte por nó • Orientação arbitrária • Posição arbitrária • Flexibilidade na construção • Escolha de um “bom” plano de corte • Aplicação principal • Remover superfícies ocultas (HSV)

  33. Construção • Testar critério de parada • Calcular plano de corte • Eleger um polígono, heurística • Classificar geometrias em cada lado do plano • Partir geometrias que atravessem o plano de corte • Chamadas recursivas para cada nó filho • Complexidade O(n lg n)

  34. Próximas aulas • Como usar estas estruturas para melhorar desempenho de visualização • Descarte contra volume de visão • Descarte por oclusão • Grafo de cena: OpenSceneGraph • Traçado de raios em tempo real

More Related