Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouAna Salgado Soares Alterado mais de 9 anos atrás
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
Grade Regular 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
23
Construção 1. Encontrar AABB da cena 2. Determinar número de células 3. 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? 1. Obter AABB da geometria 2. Determinar cellStart, cellEnd 3. 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 1. Testar critério de parada Número mínimo de geometrias Profundidade máxima da árvore 2. Classificar geometrias em cada octante Comparar com centro do nó Usar volumes envolventes Duplicar referências 3. 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 1. Testar critério de parada 2. Encontrar “melhor” plano de corte Eixo: alternado, maior extensão da caixa do nó Posição: mediana espacial, heurística 3. Classificar geometrias em cada lado do plano 4. 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 1. Testar critério de parada 2. Calcular plano de corte Eixo: maior extensão da caixa do nó Posição: média dos centros dos objetos 3. Classificar geometrias em cada lado do plano 4. 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 1. Testar critério de parada 2. Calcular plano de corte Eleger um polígono, heurística 3. Classificar geometrias em cada lado do plano Partir geometrias que atravessem o plano de corte 4. 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
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.