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

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

Algoritmo de Rastreamento de Raios

Cópias: 2
MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno.

MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno.

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 3/25/2017 MGattass Ray Tracing

2 Registros da “camera obscura (latim)”
Computação Gráfica Interativa - Gattass Registros da “camera obscura (latim)” 3/25/2017 Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno orifício Aristótes ( AC) – eclipse do sol Alhazen de Basra (X DC) Leonardo da Vince (XVI DC) ... MGattass Ray Tracing

3 Computação Gráfica Interativa - Gattass
Pintores 3/25/2017 Ponto de fuga A busca de imagens que representem o que vemos é uma aspiração antiga da humanidade. Pintores renascentistas eram capazes de produzir quadors quase tão realistas quanto fotografias. Notem no quadro Canaletto de Giovanni Antonio Canal ( ) ilustrado na figura, que a imagem dos tres postes de mesmo tamanho, diminuem a medida que eles ficam mais longe do obeservador. Notem tambem que as linhas horizontais do prédio parecem convergir num ponto a direita. Ou seja, a pintura apresenta claramente elementos da geometria projetiva. Canaletto (Giovanni Antonio Canal) ( ). Ray Tracing

4 Evolução da Camera obscura para as Câmaras fotográficas
Computação Gráfica Interativa - Gattass Evolução da Camera obscura para as Câmaras fotográficas 3/25/2017 O fato dos quadros renascentistas terem elemenots da geoemetria projetiva não quer dizer que eles conheciam técnicas precisas de desenho geométrico. Muitos trabalhos foram feitos por mera intuição ou com auxilio de câmeras escuras onde o pintor via sobre o canvas uma imagem da cena que ele desejava pintar como ilustra a figura. Podemos encontrar referências a câmeras escuras nos trabalhos de Leonardo da Vinci de A câmera fotográfica, como conhecemos hoje, foi inventada pelo Mandé Daguerre ( ) e seus principios podem ser ilustrados com artefatos bem simples como a câmera tipo “pinhole”. Câmara escura - Leonardo da Vinci -1545 Luis-Jacques-Mandé Daguerre (1839) MGattass Ray Tracing

5 Computação Gráfica Interativa - Gattass
A Câmra Pinhole 3/25/2017 MGattass Ray Tracing

6 Princípios da câmera Pin-Hole
Computação Gráfica Interativa - Gattass Princípios da câmera Pin-Hole 3/25/2017 caixa filme objeto pinhole raios de luz imagem Câmera plano de projeção centro de projeção Projeção cônica O princípio básico da câmera pin-hole consiste em criar uma imagem de um objeto iluminado (que esteja refletindo ou emitindo luz) em um filme através dos raios de luz que partem de cada ponto do objeto e que passam pelo furo de pequenas dimensões. Um ponto importante é que, como os raios de luz são segmentos de reta, o processo segue a matemática de projeções cônicas com o centro de projeção sendo o furo de pequenas dimensões. Pela geometria dos raios de luz e da câmera a imagem projetada fica invertida no filme como sempre ocorre na projeção cônica quando o centro de prjeção está entre o plano de projeção e o objeto. Se transladarmos o plano de projeção para frente do centro de projecão a imagem projetada seria a mesma, a menos de uma escala uniforme e do fato que a inversão não ocorreria. Nesta situação é comum referenciarmos o centro de projeção como olho (eye) imaginando o plano de projeção como sendo uma janela para o mundo virtual. MGattass Ray Tracing

7 Computação Gráfica Interativa - Gattass
3/25/2017 Síntese de imagens Luz Iluminação Pixel (RGB) Câmara xe ye ze eye Objetos yo 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. xo zo MGattass Ray Tracing

8 Computação Gráfica Interativa - Gattass
Algoritmo básico 3/25/2017 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

9 Definição de uma câmera
Computação Gráfica Interativa - Gattass Definição de uma câmera 3/25/2017 plano de projeção centro de projeção Projeção cônica centro de projeção janela eixo óptico centro o eye w pixels largura b h pixels altura a janela o MGattass Ray Tracing

10 Computação Gráfica Interativa - Gattass
Abertura de uma câmera 3/25/2017 f1 f2 fov1 fov2 a MGattass Ray Tracing

11 Computação Gráfica Interativa - Gattass
Eixos de uma câmera 3/25/2017 eixo óptico v u eye xe ye ze eixo horizontal eixo vertical MGattass Ray Tracing

12 Parâmetros de funções do OpenGL
Computação Gráfica Interativa - Gattass 3/25/2017 Parâmetros de funções do OpenGL Void glPerspective(GLdouble fovy,GLdouble aspect,GLdouble near_,GLdouble far_); ye ze fovy aspect = w/h xe ye ze near far w h u v width height o1 x0 y0 void glViewport(GLint x0, GLint y0, GLsizei width, GLsizei height ); MGattass Ray Tracing

13 Parâmetros intrínsecos (do OpenGL) parte 2 – Câmera mais geral
Computação Gráfica Interativa - Gattass Parâmetros intrínsecos (do OpenGL) parte 2 – Câmera mais geral 3/25/2017 void glFrustum( GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near_, GLdouble far_ ); ye v ze xe far u near near xe left right ze MGattass Ray Tracing

14 Parâmetros internos ou intrínsecos
Computação Gráfica Interativa - Gattass Parâmetros internos ou intrínsecos 3/25/2017 Primários: Derivados: near = plano próximo (distância focal) far = plano distante w  h pixels fovy = campo de visão MGattass Ray Tracing

15 Posicionamento da câmera (parâmetros externos ou extrínsecos)
Computação Gráfica Interativa - Gattass Posicionamento da câmera (parâmetros externos ou extrínsecos) 3/25/2017 eye = centro óptico center = ponto de visada, up = direção para cima vista lateral eye center up x0 z0 y0 up eye fovy center Coordenadas dos Objetos near far MGattass Ray Tracing

16 Calculo do sistema do olho - xe ye ze
Computação Gráfica Interativa - Gattass 3/25/2017 Calculo do sistema do olho - xe ye ze up dados: eye, center, up eye view = center - eye z0 y0 x0 center center ze eye up z0 y0 x0 view MGattass Ray Tracing

17 Calculo do sistema do olho - xe ye ze
Computação Gráfica Interativa - Gattass 3/25/2017 Calculo do sistema do olho - xe ye ze vup ze xe eye view z0 y0 x0 center center eye up z0 y0 x0 view ze xe ye eye up ze xe ye center MGattass Ray Tracing

18 Computação Gráfica Interativa - Gattass
Um modelo de câmera 3/25/2017 xe ye ze u v o1 eye pxy d yo xo zo MGattass Ray Tracing

19 Computação Gráfica Interativa - Gattass
Lançamento de Raios 3/25/2017 o1 pxy 1 2 x 3 h-1 u w-1 v y w pixels em b h pixels em a MGattass Ray Tracing

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

21 Computação Gráfica Interativa - Gattass
Resultando 3/25/2017 xe ye ze u v o1 eye pxy d yo xo zo MGattass Ray Tracing

22 Tipo Abstrato de Dados: Camera em C
Computação Gráfica Interativa - Gattass Tipo Abstrato de Dados: Camera em C 3/25/2017 struct _Camera { /* Definição da câmera */ Vector eye, center, up; float fovy; float nearp,farp; int w,h; /* Parametros derivados */ float f; float a,b; Vector xe,ye,ze; }; typedef struct _Camera * Camera; Camera* camCreate( Vector eye, Vector at, Vector up, double fovy, double nearp, double farp, int w, int h ); Ray camGetRay( Camera camera, double x, double y ); MGattass Ray Tracing

23 Computação Gráfica Interativa - Gattass
Objeto câmera 3/25/2017 Dados: fov, w, h, near, far, eye, center, up Inicialização (pré-processamento): Lançamento de raios: o + td MGattass Ray Tracing

24 Computação Gráfica Interativa - Gattass
Modelagem dos Objetos 3/25/2017 Implícita: Por fronteira: p p3 p2 dados: centro c raio r p1 MGattass Ray Tracing

25 Interseção de um raio com uma esfera
Computação Gráfica Interativa - Gattass Interseção de um raio com uma esfera 3/25/2017 o d ti MGattass Ray Tracing

26 Objeto esfera: métodos
Computação Gráfica Interativa - Gattass Objeto esfera: métodos 3/25/2017 Interseção: se ti > 0 : Normal: c pi MGattass Ray Tracing

27 Interseção com o plano do triângulo
Computação Gráfica Interativa - Gattass Interseção com o plano do triângulo 3/25/2017 o d p3 n p1 p2 MGattass Ray Tracing

28 Ponto interno a triângulo
Computação Gráfica Interativa - Gattass Ponto interno a triângulo 3/25/2017 p3 v31 v12 v23 p2 p1 MGattass Ray Tracing

29 Coordenadas baricêntricas
Computação Gráfica Interativa - Gattass Coordenadas baricêntricas 3/25/2017 p3 v23 v31 A3 A1 A2 p1 v12 p2 pi é interior se L1, L2 e L3 [0..1] MGattass Ray Tracing

30 Coordenadas baricêntricas como funções interpolantes
Computação Gráfica Interativa - Gattass Coordenadas baricêntricas como funções interpolantes 3/25/2017 p3 A1 A2 pi L1 p1 A3 1 p2 L2 1 L3 1 MGattass Ray Tracing

31 Computação Gráfica Interativa - Gattass
Interpolação de cor e coordenada de textura através das coordenadas baricêntricas 3/25/2017 c3 u3 p3 A1 A2 ou: pi p1 A3 c1 u1 p2 c2 u2 MGattass Ray Tracing

32 Caixa alinhada com os eixos
Computação Gráfica Interativa - Gattass Caixa alinhada com os eixos 3/25/2017 o d=(dx, dy, dz) ti (xmax, ymax, zmax) (xmin, ymin, zmin) y x z MGattass Ray Tracing

33 Motivação: Uma cena simples
Computação Gráfica Interativa - Gattass Motivação: Uma cena simples 3/25/2017 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

34 Computação Gráfica Interativa - Gattass
O que conseguiriamos se simplesmente atribuissemos aos pixels a cor dos objetos? 3/25/2017 MGattass Ray Tracing

35 Computação Gráfica Interativa - Gattass
Área aparente 3/25/2017 energia luminosa I (lumens) energia luminosa I (lumens) MGattass Ray Tracing

36 Modelo de reflexão de superfíces Lambertianas
Computação Gráfica Interativa - Gattass Modelo de reflexão de superfíces Lambertianas 3/25/2017 luz incidente luz incidente luz incidente Reflete igualmente em todas as direções A intensidade é proporcional ao co-seno MGattass Ray Tracing

37 Componente de reflexão difusa
Computação Gráfica Interativa - Gattass 3/25/2017 Componente de reflexão difusa - /2 /2 1 MGattass Ray Tracing

38 Outras maneiras de se escrever:
Computação Gráfica Interativa - Gattass 3/25/2017 Outras maneiras de se escrever: Eq. 1 I, l, k  [0 ,1 ] MGattass Ray Tracing

39 Luz difusa mais ambiente:
Computação Gráfica Interativa - Gattass 3/25/2017 Luz difusa mais ambiente: MGattass Ray Tracing

40 Componente de reflexão especular
Computação Gráfica Interativa - Gattass 3/25/2017 Componente de reflexão especular Brilho -1 -0,5 0,5 1 n=4 n=1 n=8 Eq.2 I, l, k  [0 ,1 ] MGattass Ray Tracing

41 Computação Gráfica Interativa - Gattass
Reflexão especular 3/25/2017 MGattass Ray Tracing

42 Computação Gráfica Interativa - Gattass
Reflexão especular 3/25/2017 luz refletida MGattass Ray Tracing

43 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 3/25/2017 h h Ln MGattass Ray Tracing

44 Distribuição da luz direta sobre um ponto
Computação Gráfica Interativa - Gattass Distribuição da luz direta sobre um ponto 3/25/2017 Ambient Diffuse Specular MGattass Ray Tracing

45 Computação Gráfica Interativa - Gattass
Modelo de várias luzes 3/25/2017 para cada fonte de luz uma reflexão apenas MGattass Ray Tracing

46 Computação Gráfica Interativa - Gattass
3/25/2017 Sombra A luz não chega a superfíce MGattass Ray Tracing

47 Modelo de várias luzes e sombra
Computação Gráfica Interativa - Gattass Modelo de várias luzes e sombra 3/25/2017 MGattass Ray Tracing

48 Fontes de luz especiais: Onidirecional
Computação Gráfica Interativa - Gattass Fontes de luz especiais: Onidirecional 3/25/2017 MGattass Fonte: Mauricio Hofmam Ray Tracing

49 Fontes de luz especiais: Direcional
Computação Gráfica Interativa - Gattass Fontes de luz especiais: Direcional 3/25/2017 MGattass Fonte: Mauricio Hofmam Ray Tracing

50 Fontes de luz especiais: Farolete
Computação Gráfica Interativa - Gattass Fontes de luz especiais: Farolete 3/25/2017 MGattass Fonte: Mauricio Hofmam Ray Tracing

51 Computação Gráfica Interativa - Gattass
Uma revisão 3/25/2017 MGattass Ray Tracing

52 Reflexão de outros objetos
Computação Gráfica Interativa - Gattass 3/25/2017 Reflexão de outros objetos q Superfície especular MGattass Ray Tracing

53 Computação Gráfica Interativa - Gattass
3/25/2017 Transparência q1 Objeto transparente h1 h2 lei de Snell q2 MGattass Ray Tracing

54 Cálculo do Raio Refratado
Computação Gráfica Interativa - Gattass Cálculo do Raio Refratado 3/25/2017 qi qt MGattass Ray Tracing

55 Advertência: Refração não é simples!
Computação Gráfica Interativa - Gattass Advertência: Refração não é simples! 3/25/2017 MGattass Ray Tracing

56 Iluminação considerando superfícies refletoras e objetos transparentes
Computação Gráfica Interativa - Gattass Iluminação considerando superfícies refletoras e objetos transparentes 3/25/2017 redução da reflexão redução da transparência MGattass Ray Tracing

57 Natureza recursiva do algoritmo de Rastreamento de Raios
Computação Gráfica Interativa - Gattass 3/25/2017 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

58 Computação Gráfica Interativa - Gattass
Resultado de curso 3/25/2017 MGattass Alunos de CGI98 Ray Tracing

59 Algoritmo de traçado de raios
Computação Gráfica Interativa - Gattass 3/25/2017 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

60 Computação Gráfica Interativa - Gattass
3/25/2017 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

61 Computação Gráfica Interativa - Gattass
Texturas 3/25/2017 u v 1.0 u 1.0 v u 1.0 v Texturas 2D = Imagens onde o domínio é u, v [0,1]×[0,1]  R2 MGattass Ray Tracing

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

63 Sistema de coordenada de textura na esfera
Computação Gráfica Interativa - Gattass Sistema de coordenada de textura na esfera 3/25/2017 z y i x x j MGattass Ray Tracing

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

65 Textura no triângulo e coordenadas baricêntricas
Computação Gráfica Interativa - Gattass Textura no triângulo e coordenadas baricêntricas 3/25/2017 p3 v23 v31 A1 A2 A3 p1 v12 p2 MGattass Ray Tracing

66 Computação Gráfica Interativa - Gattass
Textura 3/25/2017 MGattass Ray Tracing

67 Computação Gráfica Interativa - Gattass
3/25/2017 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

68 Textura ambiente (environment maps)
Computação Gráfica Interativa - Gattass Textura ambiente (environment maps) 3/25/2017 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

69 Tratamento anti-alias
Computação Gráfica Interativa - Gattass 3/25/2017 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

70 Computação Gráfica Interativa - Gattass
Anti-alias 3/25/2017 pixel pixel pixel (a) original (b) uniforme (c) “jittered” MGattass Ray Tracing

71 Refinamento Progresivo
Computação Gráfica Interativa - Gattass 3/25/2017 Refinamento Progresivo amostragem inicial primeira subdivisão subdivisão final segunda subdivisão pixels sendo visitados pixels já visitados MGattass Ray Tracing

72 Computação Gráfica Interativa - Gattass
3/25/2017 Ray Tracing

73 Computação Gráfica Interativa - Gattass
3/25/2017 Ray Tracing

74 Computação Gráfica Interativa - Gattass
3/25/2017 Ray Tracing

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


Carregar ppt "Algoritmo de Rastreamento de Raios"

Apresentações semelhantes


Anúncios Google