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

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

Otimização de Raytracing

Apresentações semelhantes


Apresentação em tema: "Otimização de Raytracing"— Transcrição da apresentação:

1 Otimização de Raytracing
Ian Medeiros Joner Duarte Vanessa Leite

2 Raytracing O termo raytracing é usado livremente para designar uma infinidade de diferentes abordagens ao problema de rendering, desde que baseados no princípio de interseção de uma semireta (raio) com primitivas geométricas.

3 Raytracing: Complexidade
O algoritmo usado para determinar a visibilidade ao longo de um raio requer que cada raio seja interseptado (testado) com TODAS as primitivas geométricas da cena O tempo para cada raio é, portanto, linear com o número de primitivas N:

4 Raytracing: Complexidade
No entanto, cada raio não passa próximo da maioria das primitivas

5 Raytracing: otimizações iniciais
Melhorias no código: Utilização de #define Mudança de código economizando uma chamada isInShadow Utilização de Paralelismo: OpenMP omp_set_num_threads(omp_get_num_procs()); #pragma omp parallel default(none) private(y,x, pixel, ray) shared(image, camera, scene, eye, width, yc, height) (...) #pragma omp for schedule(guided)

6 Raytracing: Estruturas de Aceleração
O objetivo das estruturas de aceleração é diminuir o número de interseções por raio Isso pode ser feito utilizando-se dois critérios: Permitindo a rejeição rápida e simultânea de grupos de primitivas Se possível, ordenando o processo de procura (intersecções), tal que as primitivas mais próximas da origem do raio sejam processadas primeiro, evitando processar as mais distantes se for encontrada uma interseção.

7 Raytracing: Estruturas de Aceleração
Duas abordagens: Subdivisão do espaço: Grades regulares, Octrees, Kd-Ttrees – permitem aplicar os critérios 1 e 2 Subdivisão dos objetos: Bound Volume Hierarchy (BVH) – permite aplicar o critério 1.

8 Raytracing: Grade regular
O espaço 3D é subdividido montando-se uma grade regular que o subdivide em espaços com mesma dimensão

9 Raytracing: Grade regular
Vantagens: Construção muito rápida Desvantagens: Travessia pouco eficiente devido à má distribuição das primitivas pelos espaços

10 Raytracing: Octree O espaço é hierarquicamente e adaptativamente subdividido em 8 espaços Compromisso entre construção e travessia

11 Raytracing: KD-Tree O espaço é subdividido em dois por um plano
Cada um dos subespaços resultantes é depois subdividido da mesma forma até atingir um critério de parada Travessia mais eficiente se um bom critério de subdivisão for utilizado (ex: SAH) Quanto mais sofisticado o critério de subdivisão maior é o tempo necessário para a construção da árvore.

12 Raytracing: KD-Tree (SAH)
SAH (Surface Area Heuristic) é uma heurística que leva em consideração a probabilidade de um determinado objeto ser interceptado ou não por um raio. CustoDivisao = CustoTravessia + P[pedaçoEsquerda |Cena] C(pedaçoEsquerda) + P[pedaçoDireita| Cena] C(pedaçoDireita)

13 Raytracing: KD-Tree X tmin Z B X Y Z A B C D Y C D A tmax

14 Raytracing: Bounding Volume Hierarchy
Os objetos são agrupados dentro de bounding volumes. Cada um desses grupos é depois subdividido hierarquicamente por outros volumes

15 Raytracing: Bounding Volume Hierarchy
Não ordena o espaço Construção semelhante à KD-Tree Travessia ligeiramente inferior à KD-Tree

16 Raytracing: Complexidade 2
A complexidade do raytracing com a utilização de estruturas de aceleração é logaritmica com relação ao número de estruturas na cena: O tempo de construção depende do critério de subdivisão do espaço/agrupamento de primitivas

17 Raytracing: Complexidade 2
Critérios sofisticados (como o SAH para KD- Tree) resultam em travessias muito eficientes, entretanto exigem um tempo de construção muito elevado.

18 Raytracing: Comparação de Resultados
Nome da cena/arquivo Tempo de execução algoritmo inicial (s) Tempo de execução c/ otimizações (s) 5balls 2.453 0.478 Bolas 4.547 0.285 Bunny 3.601 Cavalo 31.718 0.277 Esfera 0.763 0.074 Esfera_planos 0.964 0.094 Esferas 1.012 0.097 Espelho 0.977 0.166 Manual 0.888 0.082 Pessoa 2.013 0.143 Pool 9.275 0.499 Room 8.625 0.686 Wall 2.147 0.291

19 Referências Highly Parallel Fast KD-tree Construction for Interactive Ray Tracing of Dynamic Scenes - EUROGRAPHICS 2007 / D. Cohen-Or and P. Slavík Interactive k-D Tree GPU Raytracing (Daniel Reiter Horn, Jeremy Sugerman, Mike Houston, Pat Hanrahan – Stanford University) Construção eficiente de kd-trees para primitivas triangulares (Alessandro Ribeiro da Silva, Wallace Santos Lages - UFMG) Ray Tracing Interactivo: Estrutura de Aceleração - Ademar Gonçalves - Universidade do Minho, Braga, 2009


Carregar ppt "Otimização de Raytracing"

Apresentações semelhantes


Anúncios Google