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

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

Algoritmo de Rastreamento de Raios

Apresentações semelhantes


Apresentação em tema: "Algoritmo de Rastreamento de Raios"— Transcrição da apresentação:

1 Algoritmo de Rastreamento de Raios
Computação Gráfica Interativa - Gattass Algoritmo de Rastreamento de Raios 5/23/2018 MGattass Ray Tracing

2 A Câmara “Pinhole” e seu modelo
Computação Gráfica Interativa - Gattass A Câmara “Pinhole” e seu modelo 5/23/2018 eixos do plano de projeção centro de projeção plano de projeção plano de projeção eixo óptico raios MGattass Ray Tracing

3 Computação Gráfica Interativa - Gattass
5/23/2018 Síntese de imagens Luz Iluminação pixel (RGB) Câmara xe ye ze eye Objetos A geração de imagens a partir de uma modelo matemático de uma cena (cena virtual) requer tres tipos de elementos: (a) um modelo de câmera; (b) um modelo de objetos e (c) um modelos de luzes. O modelo de objeto inclui não somente uma descrição de sua geometria, mas também das suas propriedades de materias que determinam como ele interage com a luz. Ou seja, como ele reflete a luz que incide sobre ele. O problema fundamental consiste em determinar qual a cor do raio luminoso correspondente a parte do plano de projeção associada a cada um dos pixels da tela. Ou seja, dada a natureza retilinea dos raios de luz, o problema consiste em determinar qual a luz emintida e/ou refletida pela superfíce mais próxima do centro de projeção que intercepta este raio. yo xo zo MGattass Ray Tracing

4 Computação Gráfica Interativa - Gattass
Algoritmo básico 5/23/2018 Objetos Luz Iluminação Câmara xe ye ze Para cada pixel da tela; Lance uma raio; Para cada objeto da cena Calcule a interseção do raio com este o objeto; Armazene a interseção mais próxima; Se o raio interceptou algum objeto Calcule a contribuição das luzes neste ponto; Pinte o pixel com esta cor; MGattass Ray Tracing

5 Computação Gráfica Interativa - Gattass
Um modelo de câmera 5/23/2018 xe ye ze xj yj o1 eye pxy dr yo xo zo MGattass Ray Tracing

6 Computação Gráfica Interativa - Gattass
Lançamento de Raios 5/23/2018 o1 pxy 1 2 x 3 hp-1 xj wp-1 yj y wp pixels na base hp pixels na altura s MGattass Ray Tracing

7 Canto inferior esquerdo da janela no plano near (ou far)
Computação Gráfica Interativa - Gattass 5/23/2018 Canto inferior esquerdo da janela no plano near (ou far) ye ze xe eye plano near canto inferior esquerdo y0 x0 z0 MGattass Ray Tracing

8 Computação Gráfica Interativa - Gattass
Resultando 5/23/2018 xe ye ze u v o1 eye pxy d yo xo zo MGattass Ray Tracing

9 Tipo Abstrato de Dados: Camera em C
Computação Gráfica Interativa - Gattass Tipo Abstrato de Dados: Camera em C 5/23/2018 struct _camera { /* Definição da câmera */ Vector Eye, Center, Up; float fovy; float n,f; int wp,hp; /* Parametros derivados */ float df; float wm,hm; Vector Xe,Ye,Ze; }; typedef struct _camera Camera; Camera* camCreate( Vector eye, Vector at, Vector up, double fovy, double _near, double _far, int wp, int hp ); Ray camGetRay( Camera camera, double x, double y ); MGattass Ray Tracing

10 Computação Gráfica Interativa - Gattass
Objeto câmera 5/23/2018 Inicialização (pré-processamento): Dados: fovy, wp, hp, n, f, eye, center, up Lançamento de raios: or + t dr Dados: x, y MGattass Ray Tracing

11 Computação Gráfica Interativa - Gattass
Modelagem dos Objetos 5/23/2018 Implícita: Por fronteira: p dados: centro os raio r p3 p2 p1 MGattass Ray Tracing

12 Interseção de um raio com uma esfera
Computação Gráfica Interativa - Gattass Interseção de um raio com uma esfera 5/23/2018 or dr ti MGattass Ray Tracing

13 Objeto esfera: métodos (dados or, dr, os, r )
Computação Gráfica Interativa - Gattass Objeto esfera: métodos (dados or, dr, os, r ) 5/23/2018 Interseção: se ti > 0 : Normal: os pi MGattass Ray Tracing

14 Interseção com o plano do triângulo
Computação Gráfica Interativa - Gattass Interseção com o plano do triângulo 5/23/2018 o p3 d n p1 p2 MGattass Ray Tracing

15 Ponto interno a triângulo
Computação Gráfica Interativa - Gattass Ponto interno a triângulo 5/23/2018 p3 e2 e3 e1 p2 p1 MGattass Ray Tracing

16 Coordenadas baricêntricas
Computação Gráfica Interativa - Gattass Coordenadas baricêntricas 5/23/2018 p3 e1 e2 a3 a1 a2 p1 e3 p2 pi é interior se 1, 2 e 3 [0..1] MGattass Ray Tracing

17 Coordenadas baricêntricas como funções interpolantes
Computação Gráfica Interativa - Gattass Coordenadas baricêntricas como funções interpolantes 5/23/2018 p3 a1 a2 pi 1 p1 a3 1 p2 2 1 3 1 MGattass Ray Tracing

18 Computação Gráfica Interativa - Gattass
Interpolação de cor e coordenada de textura através das coordenadas baricêntricas 5/23/2018 c3 u3 p3 a1 a2 ou: pi p1 a3 c1 u1 p2 c2 u2 MGattass Ray Tracing

19 Forma otimizada de calculo
dr p3 n p1 p2 Tomas Möller, Ben Trumbore Fast, Minimum Storage Ray/Triangle Intersection MGattass

20 Forma otimizada de cálculo
MGattass

21 Caixa alinhada com os eixos
Computação Gráfica Interativa - Gattass Caixa alinhada com os eixos 5/23/2018 o dr=(dx, dy, dz) ti (xmax, ymax, zmax) (xmin, ymin, zmin) y x z MGattass Ray Tracing

22 Motivação: Uma cena simples
Computação Gráfica Interativa - Gattass Motivação: Uma cena simples 5/23/2018 Camera: eye = (100,40,40), center = (0,0,0), up=(0,1,0), fov=90º, near = 30, far=230, w=230, h=230. Esfera: c = (0,20,0), r = 25, cor azul = (0,0,1) Caixas alinhadas com os eixos: p0 = (-80,-50,-50), p1 = (50,-45,50) e cor amarela = (0.7,0.7,0) p0 = (-80,-50,-60), p1 = (50,50,-50) e cor amarela = (0.7,0.7,0) Luz Pontual: Posição=(60,120,40) e intensidade RGB l=(0.8,0.8,0.8) MGattass Ray Tracing

23 Computação Gráfica Interativa - Gattass
O que conseguiriamos se simplesmente atribuissemos aos pixels a cor dos objetos? 5/23/2018 MGattass Ray Tracing

24 Componente de reflexão difusa
Computação Gráfica Interativa - Gattass 5/23/2018 Componente de reflexão difusa - /2 /2 1 MGattass Ray Tracing

25 Outras maneiras de se escrever:
Computação Gráfica Interativa - Gattass 5/23/2018 Outras maneiras de se escrever: Eq. 1 c, l, k  [0 ,1 ] MGattass Ray Tracing

26 Luz difusa mais ambiente:
Computação Gráfica Interativa - Gattass 5/23/2018 Luz difusa mais ambiente: MGattass Ray Tracing

27 Componente de reflexão especular
Computação Gráfica Interativa - Gattass 5/23/2018 Componente de reflexão especular Brilho π/2 =4 =1 =8 -π/2 Eq.2 c, l, k  [0 ,1 ] MGattass Ray Tracing

28 Computação Gráfica Interativa - Gattass
Reflexão especular 5/23/2018 MGattass Ray Tracing

29 Cálculo da reflexão de um vetor sobre outros
Computação Gráfica Interativa - Gattass Cálculo da reflexão de um vetor sobre outros 5/23/2018 h h vn MGattass Ray Tracing

30 Distribuição da luz direta sobre um ponto
Computação Gráfica Interativa - Gattass Distribuição da luz direta sobre um ponto 5/23/2018 Ambient Diffuse Specular MGattass Ray Tracing

31 Computação Gráfica Interativa - Gattass
Modelo de várias luzes 5/23/2018 para cada fonte de luz uma reflexão apenas MGattass Ray Tracing

32 Computação Gráfica Interativa - Gattass
5/23/2018 Sombra 0< ti < 1 A luz não chega a superfíce MGattass Ray Tracing

33 Modelo de várias luzes e sombra
Computação Gráfica Interativa - Gattass Modelo de várias luzes e sombra 5/23/2018 MGattass Ray Tracing

34 Computação Gráfica Interativa - Gattass
Uma revisão 5/23/2018 MGattass Ray Tracing

35 Reflexão de outros objetos
Computação Gráfica Interativa - Gattass 5/23/2018 Reflexão de outros objetos q Superfície especular MGattass Ray Tracing

36 Computação Gráfica Interativa - Gattass
5/23/2018 Transparência q1 h1 Objeto transparente h2 lei de Snell q2 MGattass Ray Tracing

37 Cálculo do Raio Refratado
Computação Gráfica Interativa - Gattass Cálculo do Raio Refratado 5/23/2018 qi qt MGattass Ray Tracing

38 Advertência: Refração não é simples!
Computação Gráfica Interativa - Gattass Advertência: Refração não é simples! 5/23/2018 MGattass Ray Tracing

39 Iluminação considerando superfícies refletoras e objetos transparentes
Computação Gráfica Interativa - Gattass Iluminação considerando superfícies refletoras e objetos transparentes 5/23/2018 redução da reflexão redução da transparência MGattass Ray Tracing

40 Natureza recursiva do algoritmo de Rastreamento de Raios
Computação Gráfica Interativa - Gattass 5/23/2018 Natureza recursiva do algoritmo de Rastreamento de Raios R2 R1 L2 T1 L1 L3 T2 R3 L1 R1 T1 L2 L3 R2 T2 R3 MGattass Ray Tracing

41 Algoritmo de traçado de raios
Computação Gráfica Interativa - Gattass 5/23/2018 Algoritmo de traçado de raios selecione o centro de projeção(eye) e uma janela no plano de projeção for (cada pixel da tela) { determine o raio ray que vai do centro de projeção ao pixel; pixel = trace ( ray, 1); } Color trace (Scene scene, Vector3d eye, Vector3d ray, int depth) { determine a interseção mais próxima com um objeto if (intercepta objeto) calcule a normal no ponto de interseção return ( shade ( scene, object, ray, point, normal, depth)); } return BACKGROUND; MGattass Ray Tracing

42 Computação Gráfica Interativa - Gattass
5/23/2018 Color shade (Scene scene, Object object, Vector3D ray, Vector3D point, Vector3D normal, int depth) { color = termo ambiente do material do objeto ; for (cada luz) { L = vetor unitário na direção de point para a posição da luz; if (L • normal>0) { if (a luz não for bloqueada no ponto) { color += componente difusa (Eq.1) + componente especular (Eq.2) } } if (depth >= maxDepth) return color; if (objeto é refletor) { rRay = raio na direção de reflexão; rColor = trace(scene, point, rRay, depth+1); reduza rColor pelo coeficente de reflexão especular e some a color; } return color; } Ray Tracing

43 Computação Gráfica Interativa - Gattass
Texturas 5/23/2018 ut vt 1.0 ut 1.0 vt ut 1.0 vt Texturas 2D = Imagens onde o domínio é ut, vt [0,1]×[0,1]  R2 MGattass Ray Tracing

44 Sistemas de coordenada de textura na caixa
Computação Gráfica Interativa - Gattass Sistemas de coordenada de textura na caixa 5/23/2018 face x=xmax (0,0) v u u (1,1) (0,0) v v (0,0) u y x z MGattass Ray Tracing

45 Sistema de coordenada de textura na esfera
Computação Gráfica Interativa - Gattass Sistema de coordenada de textura na esfera 5/23/2018 z y i x j MGattass Ray Tracing

46 Sistema de coordenada de textura no triângulo
Computação Gráfica Interativa - Gattass Sistema de coordenada de textura no triângulo 5/23/2018 u v (u1,v1) (u2,v2) (u3,v3) 3 u1= u3 u2 v1= v2 v3 2 1 MGattass Ray Tracing

47 Textura no triângulo e coordenadas baricêntricas
Computação Gráfica Interativa - Gattass Textura no triângulo e coordenadas baricêntricas 5/23/2018 p3 e1 e2 a3 a1 a2 p1 e3 p2 MGattass Ray Tracing

48 Computação Gráfica Interativa - Gattass
Textura 5/23/2018 MGattass Ray Tracing

49 Computação Gráfica Interativa - Gattass
5/23/2018 Texturas de rugosidade (bump textures) e Texturas de deslocamentos (displacement mapping) Pertubar aleatóriamente as normais dos objetos Pertubar aleatóriamente as posições dos pontos MGattass Ray Tracing

50 Textura ambiente (environment maps)
Computação Gráfica Interativa - Gattass Textura ambiente (environment maps) 5/23/2018 face dos raios x>y e x>z z=x (1,1) z y=-x y y=x x v (0,0) u z=-x MGattass Ray Tracing

51 Tratamento anti-alias
Computação Gráfica Interativa - Gattass 5/23/2018 Tratamento anti-alias dx dy a sub-pixels pixel dx, dy = variáveis randômicas Lance um raio para cada sub-pixel Faça uma média dos valores obtidos MGattass Ray Tracing

52 Computação Gráfica Interativa - Gattass
Anti-alias 5/23/2018 pixel pixel pixel (a) original (b) uniforme (c) “jittered” MGattass Ray Tracing

53 Refinamento Progresivo
Computação Gráfica Interativa - Gattass 5/23/2018 Refinamento Progresivo amostragem inicial primeira subdivisão subdivisão final segunda subdivisão pixels sendo visitados pixels já visitados MGattass Ray Tracing

54 Radiosidade e Ray Tracing
Computação Gráfica Interativa - Gattass Radiosidade e Ray Tracing 5/23/2018 standard raytracing global illumination MGattass Klaus Mueller, Stony Brook University, Computer Science (CSE 564) Ray Tracing

55 Todays State of the Art - Some Snapshots
Computação Gráfica Interativa - Gattass 5/23/2018 Todays State of the Art - Some Snapshots Feb 3rd, 2003 Afrigraph 2003 Ray Tracing

56 Computação Gráfica Interativa - Gattass
5/23/2018 Ray Tracing

57 Computação Gráfica Interativa - Gattass
5/23/2018 Ray Tracing

58 Computação Gráfica Interativa - Gattass
5/23/2018 Ray Tracing

59 Computação Gráfica Interativa - Gattass
5/23/2018 Ray Tracing

60 Computação Gráfica Interativa - Gattass
5/23/2018 Ray Tracing

61 Computação Gráfica Interativa - Gattass
Aceleracao do RT 5/23/2018 Cálculos mais eficientes Uso de uma Kd Tree MGattass Ray Tracing

62 Computação Gráfica Interativa - Gattass
Refração na esfera 5/23/2018 MGattass Ray Tracing


Carregar ppt "Algoritmo de Rastreamento de Raios"

Apresentações semelhantes


Anúncios Google