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

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

Estruturas de Dados Espaciais MC-930 MO-603. Ray-casting Fontes de luz enviam fótons em todas as direções Modelar fótons como partículas que saem dos.

Apresentações semelhantes


Apresentação em tema: "Estruturas de Dados Espaciais MC-930 MO-603. Ray-casting Fontes de luz enviam fótons em todas as direções Modelar fótons como partículas que saem dos."— Transcrição da apresentação:

1 Estruturas de Dados Espaciais MC-930 MO-603

2 Ray-casting Fontes de luz enviam fótons em todas as direções Modelar fótons como partículas que saem dos objetos para a cena Cada fóton tem comprimento de onda e energia (cor e intensidade) Quando fótons batem num objeto, alguma energia é absorvida, alguma é refletida e alguma é transmitida (refratada)

3 Ray Casting Se modelarmos as batidas e reflexões dos raios nos objetos, podemos gerar imagens para cada raio Técnica: seguir cada fóton da fonte de luz até que: –toda sua energia seja absorvida; –ele saia do universo conhecido; –ele bata na imagem (plano de projeção) e sua contribuição é adicionada ao píxel apropriado

4 Forward Ray-tracing Raios são caminhos percorridos pelos fótons (ray- tracing) Forward Ray-tracing segue o fóton na mesma direção em que a luz viaja (da fonte de luz) Grande problema: –Apenas uma pequena fração de raios chegam na imagem (jogar fora maioria) Cenário ideal: –Gostaria de saber magicamente quais raios contribuem eventualmente para a imagem e traçar apenas esses

5 Backward Ray-tracing Solução é iniciar da imagem e traçar raio para trás (ao contrário) Backward Ray-tracing: –Começa da imagem e segue raio até que ele encontre a fonte de luz ou saia do universo Algumas pessoas acreditavam que a visão humana funcionava desta maneira

6 Idéias Básicas Cada pixel recebe luz de apenas uma direção (definida pelo ponto focal/observador e pelo ponto no plano imagem) Cada fóton contribuindo para a cor desse pixel deve vir dessa direção (observador-centro de cada pixel) Siga o raio saindo da imagem –Se encontrou fonte de luz – done! –Se encontrou nada – done! –Se bateu numa superfície – veja de onde vem a iluminação naquela superfície e calcule a contribuição (ou pode ser recursivo) Ao final, resultado igual ao forward ray-tracing, mas calcula apenas raios que contribuem para a imagem

7 Backward Ray-tracing

8 Ray casting This version of ray tracing is often called ray casting: loop y loop x shoot ray from eye point through pixel (x,y) into scene intersect with all surfaces, find first one the ray hits shade that point to compute pixel (x,y)s color (perhaps simulating shadows) A ray is p+td: p is ray origin, d the direction –t=0 at origin of ray, t>0 in positive direction of ray –typically assume ||d||=1 –p and d are typically computed in world space This is easily generalized to give recursive ray tracing...

9 Ray-tracing recursivo Quatro tipos de raios: –Eye rays: orgina-se no olho (ponto focal) –Shadow rays: da superfície apontando na direção da fonte de luz –Reflection rays: do ponto na superfície apontando na direção do raio refletido –Transmission rays: do ponto na superfície na direção do raio refratado Trace todos esses recursivamente

10 Ray-tracing recursivo N

11 Otimizando Ray-tracing Traçar poucos raios –Mais relevante para ray-tracing recursivo Otimizar cada teste de interseção –otimizar código raio-triângulo, raio-esfera –compilar com otimizador Melhor estratégia: –fazer menos testes de interseção

12 Comparativo: deteção de obstáculos Progredir envolve não bater nos obstáculos da cena Complexidade: a cada passo da câmera, fazer um teste de interseção com todos os objetos da cena Um objeto representado com triângulos = testes de interseção raio-plano.

13 Estruturas de Dados Espaciais Estruturas de dados para armazenar informação geométrica de forma eficiente –Detecção de colisão (vai bater?) –Busca de localizações (correio mais próximo?) –Simulações químicas –Renderização (ray-casting, ray-tracing) Principais: bounding-volume hierarquico, grids, Octrees, BSP-trees

14 Bounding Volumes Noção simples: embrulhe coisas complexas com uma envoltória mais simples –Exemplo: caixa envolvendo objeto complexo –Raio não bate no objeto complexo sem bater na caixa –Adiciona algum cálculo, mas compensa –Mais comuns: caixa e esfera

15 Hierarquical Bounding Volume Estrutura em forma de árvore –Lista de bounding-volumes (esferas, caixas etc), onde cada BV contém uma lista de sub-volumes –Exemplo, corpo humano, caixa principal com listas Cabeça com sub-listas Nariz, Orelhas, Face, Cabelo Corpo com sub-listas: –Braço direito com sublistas Braço, Antebraço, mão, 5 dedos –Braço esquerdo com sublistas Braço, Antebraço, mão, 5 dedos –Perna direita com sublistas Coxa, Canela, Pé, 5 dedos –Perna esquerda com sublistas Coxa, Canela, Pé, 5 dedos

16 Teste de interseção

17 Grids Array 3-D de células (voxels) particiona o espaço –Cada célula aponta para uma lista de todas as superfícies que intersectam aquela célula

18 Teste de interseção

19 Mais sobre Grids Grids are a poor choice when the world is nonhomogeneous (clumpy) –e.g. a teapot in a stadium: many polygons clustered in a small space How many cells to use? –too few Þ many objects per cell Þ slow –too many Þ many empty cells to step through Þ slow Grids work well when you can arrange that each cell lists a few (ten, say) objects Better strategy for some scenes: nested grids

20 Octrees

21 K-d Trees and BSP Trees

22 Building a BSP Tree the subdivision of space it implies a BSP tree using 2 as root abcd a b c d viewpoint

23 Building the Tree 2 1 2a 2b 3 3 2a 2b 1 viewpoint Using line 3 for the root requires a split

24 Which Structure is Best for Ray Tracing?

25 Fim Estruturas de Dados Espaciais

26 Building a Good Tree - the tricky part

27 Uses for Binary Space Partitioning (BSP) Trees

28 Painters Algorithm with BSP trees

29 Drawing a BSP Tree front_to_back(tree, viewpt) { if (tree == null) return; if (positive_side_of(root(tree), viewpt)) { front_to_back(positive_branch(tree, viewpt); display_polygon(root(tree)); front_to_back(negative_branch(tree, viewpt); } else { …draw negative branch first…} }

30 Drawing Back to Front 1 2a 2b 3 3 2a 2b 1 viewpoint Hidden surface removal

31 Clipping BSP Trees

32

33 Clipping Using Spatial Data Structures


Carregar ppt "Estruturas de Dados Espaciais MC-930 MO-603. Ray-casting Fontes de luz enviam fótons em todas as direções Modelar fótons como partículas que saem dos."

Apresentações semelhantes


Anúncios Google