1 / 110

Algoritmo de Rastreamento de Raios

Algoritmo de Rastreamento de Raios. Perspectiva e tamanhos relativos. Perspectiva e tamanhos relativos. Iluminação e posição. O que está na frente? A que distância do apoio?. Sombra. Oclusão. Proposto no século XX!. Gradiente de textura. Efeitos Passivos.

skyler
Download Presentation

Algoritmo de Rastreamento de Raios

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Algoritmo de Rastreamento de Raios

  2. Perspectiva e tamanhos relativos

  3. Perspectiva e tamanhos relativos

  4. Iluminação e posição O que está na frente? A que distância do apoio?

  5. Sombra

  6. Oclusão

  7. Proposto no século XX! Gradiente de textura

  8. Efeitos Passivos • Inerentes a aparência do mundo externo • Independem dos nossos olhos • Fotografias parecem 3D

  9. Camera obscura Plymouth, UK Camera Obscura - San Francisco The Camera Obscura at the Cliff House is one of several remaining camera obscuras in the world. The device is an ancient precursor to modern photography, and well worth a visit, especially if you haven't previously visited a camera obscura.

  10. Pintores Ponto de fuga Canaletto (Giovanni Antonio Canal) (1697-1768).

  11. ye ze xe zo yo xo Dois enfoques: Raios Traçado de Raios Para cada pixel da tela Defina um raio Para cadaobjeto da cena Calcule o objetovisível Para cadaluz da cena Lance um raio Para cadaobjeto da cena Teste se o objetofazsombra Calculesuailuminação Complexidade maior que O(num. depixels  num. de objetos2)

  12. Doisenfoques: ZBuffer ye ze xe Calcule a cor de cadavertice Projetecadatriângulo Projeteosvértices no plano de projeção Rasterize o triângulogerandooosfragmentosquevão para cada pixel Aquelesfragmentosqueestiverem a frente dos framentosjádepositadosrecebem nova cor e a profundidade do pixel é atualizada.

  13. A Câmara “Pinhole” e seu modelo centro de projeção plano de projeção plano de projeção eixo óptico raios eixos do plano de projeção

  14. Traçado de Raios Luz Pixel (RGB) Câmara ye Iluminação ze eye xe Objetos yo xo zo

  15. Algoritmo básico ye Câmara Luz ze xe Iluminação Objetos 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;

  16. Definição de uma câmera janela hp (pixels) h (metros) o centro óptico eye eixo óptico o Projeção cônica centro de projeção wp (pixels) w (metros* ) plano de projeção janela centro de projeção (*) metros ou outra unidade de comprimento

  17. Abertura de uma câmera fovy1 fovy2 h df1 df2

  18. Eixos de uma câmera eixo vertical v ye eixo óptico ze eye xe u eixo horizontal janela ye t (top) r (right) l (left) hp (pixels) h xe o b (bottom) wp (pixels) w

  19. Parâmetros de funções do OpenGL ye w ye aspect = w/h fovy v ze ze h xe height n(near) y0 width f (far) o1 u x0 void glPerspective(GLdouble fovy,GLdouble aspect,GLdouble near_,GLdouble far_); void glViewport(GLint x0, GLint y0, GLsizei width, GLsizei height );

  20. Parâmetros intrínsecos (do OpenGL)parte 2 – Câmera mais geral 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

  21. Parâmetros internos ou intrínsecos Primários: Derivados: n=plano próximo f = plano distante wp hp pixels fovy= campo de visão

  22. Posicionamento da câmera(parâmetros externos ou extrínsecos) up y0 eye center x0 z0 eye = centro óptico center = ponto de visada, up = direção para cima vista lateral up fovy eye center Coordenadas dos Objetos near far

  23. Calculo do sistema do olho - xe ye ze view = center - eye y0 up ze x0 eye z0 view y0 center x0 z0 up dados: eye, center, up eye center

  24. Calculo do sistema do olho - xe ye ze ye xe ze up eye y0 center ye up ze x0 xe eye z0 view y0 center x0 z0 vup ze xe eye view center

  25. Um modelo de câmera v ye pxy ze eye o1 xe u d yo xo zo

  26. Lançamento de Raios v h-1 h pixels na altura pxy y 2 1 o1 x u w-1 3 0 1 2 w pixels na base

  27. Canto inferior esquerdo da janela no plano near (ou far) ye ze xe eye plano near y0 canto inferior esquerdo x0 z0

  28. Resultando v ye pxy ze eye o1 xe u d yo xo zo

  29. Tipo Abstrato de Dados: Camera em C struct _Camera { /* Definição da câmera */ Vector eye, center, up; float fovy; float n,f; int wp,hp; /* Parametros derivados */ float df; float w,h; 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 );

  30. Objeto câmera Inicialização (pré-processamento): Dados: fovy, wp, hp, n, f, eye, center,up Lançamento de raios: o + td Dados: x, y

  31. Modelagem dos Objetos Por fronteira: Implícita: p p3 p2 dados: centroc raio r p1

  32. Superfíciesimplícitasem grades Cartesianas y f(x,y,z) R a x z • Seja f(x,y,z), umafunçãoamostradaem R3 Objetivo: • Visualizarumaisosuperfície S definidapor f(x,y,z) = a.

  33. Classificação do Voxel 1.0 Osso Branco (1,1,1) Músculo Vermelho (1,0,0) Gordura Amarelo (1,1,0) ar 1.0 0 Voxel opacidade valor cor

  34. Interseção de um raio com uma esfera o d ti

  35. Objeto esfera: métodos (dados o, d, c,r ) pi c Interseção: se ti > 0 : Normal:

  36. Interseção com o plano do triângulo o p3 d n p1 p2

  37. Ponto interno a triângulo v23 v31 v12 p3 p2 p1

  38. Coordenadas baricêntricas A1 v23 A2 A3 v12 p3 v31 p1 p2 pié interior seL1, L2 e L3 [0..1]

  39. Coordenadas baricêntricas como funções interpolantes p3 A1 A2 pi L1 A3 p1 1 p2 L2 1 L3 1

  40. Interpolação de cor e coordenada de textura através das coordenadas baricêntricas c3 u3 p3 A1 A2 ou: pi A3 p1 p2 c1 u1 c2 u2

  41. Forma otimizada de calculo o d p3 n p1 p2 Tomas Möller, Ben TrumboreFast, Minimum Storage Ray/Triangle Intersection

  42. Forma otimizada de cálculo o d p3 n p1 p2

  43. Caixa alinhada com os eixos d=(dx, dy, dz) o ti (xmax, ymax, zmax) (xmin, ymin, zmin) y x z

  44. Motivação: Uma cena simples 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)

  45. O que conseguiriamos se simplesmente atribuissemos aos pixels a cor dos objetos?

  46. Área aparente energia luminosa I (lumens) energia luminosa  I (lumens)

  47. Modelo de reflexão de superfíces Lambertianas luz incidente luz incidente luz incidente • Reflete igualmente em todas as direções • A intensidade é proporcional ao co-seno

  48. Componente de reflexão difusa 1  - /2 0 /2

  49. Outras maneiras de se escrever: Eq. 1 I, l, k  [0 ,1 ]

  50. Luz difusa mais ambiente:

More Related