SlideShare uma empresa Scribd logo
1 de 138
Modelos de Iluminação Global
                      Vitor F. Pamplona




  http://blogs.intel.com/research/2007/10/real_time_raytracing_the_end_o.php
Ray Tracing




              Pov-Ray Copyright Vitor F. Pamplona
                      Gallery: http://www.povray.org/   4
Ray Tracing




                   Copyright Vitor F. Pamplona
              http://richardpage.wordpress.com/   5
Ray Tracing
●   Apresentado por Turner Whitted em 1979
●   Lança raios a partir do observador
    ●   um por pixel
    ●   encontra o objeto mais próximo na direção do raio
●   Ao atingir uma superfície, pode-se gerar 3 tipos de raio:
    ●   Reflexão para superfícies espelhadas (lei de reflexão)
    ●   Refração para superfícies transparentes (lei de Snell)
    ●   Sombra para identificar se está visível em relação a luz
●   Fonte de luz pontual


                           Copyright Vitor F. Pamplona             6
Radiosidade




                   Copyright Vitor F. Pamplona
              http://richardpage.wordpress.com/   7
Radiosidade




                            Copyright Vitor F. Pamplona
        http://www.cs.dartmouth.edu/~spl/Academic/ComputerGraphics/Fall2004/   8
Radiosidade
●   Apresentado por Goral et al. em 1984
●   Contempla superfícies puramente difusas
●   Divide a cena em pequenas superfícies (patches)
●   Para cada par de superfícies
    ●   Calcular um coeficiente de visibilidade (Form Factor)
●   Resolver o sistema linear
                    Energia Emitida        N                Form Factor

                  B j = E j  p j ∑ B i F ij
                                         i=1
               Radiosidade
                              Refletividade



                              Copyright Vitor F. Pamplona                 9
Introdução ao Photon Mapping
         Vitor F. Pamplona




            Courtesy of Hosuk Chang
Photon Mapping na Indústria




                                  Pixar's Ratatouille, 2007.



                                         Copyright Vitor F. Pamplona
    H.W. Jensen e Per Christensen. High Quality Rendering Using Ray Tracing and Photon Mapping. Siggraph 2007   11
Photon Mapping na Indústria




                                  Pixar's Ratatouille, 2007.



                                         Copyright Vitor F. Pamplona
    H.W. Jensen e Per Christensen. High Quality Rendering Using Ray Tracing and Photon Mapping. Siggraph 2007   12
Photon Mapping na Indústria




                                  Pixar's Ratatouille, 2007.



                                         Copyright Vitor F. Pamplona
    H.W. Jensen e Per Christensen. High Quality Rendering Using Ray Tracing and Photon Mapping. Siggraph 2007   13
Photon Mapping na Indústria




                                  Pixar's Ratatouille, 2007.



                                         Copyright Vitor F. Pamplona
    H.W. Jensen e Per Christensen. High Quality Rendering Using Ray Tracing and Photon Mapping. Siggraph 2007   14
Photon Mapping na Indústria




                                  Pixar's Ratatouille, 2007.



                                         Copyright Vitor F. Pamplona
    H.W. Jensen e Per Christensen. High Quality Rendering Using Ray Tracing and Photon Mapping. Siggraph 2007   15
Algoritmo de Photon Mapping
●   Photon Tracing
    ●   Emite fótons pelas fontes de luz
    ●   Para cada intersecção com uma superfície difusa
         –   Armazena-os numa estrutura de dados


●   Path Tracing
    ●   Para cada intersecção com uma superfície difusa
         –   Consulta os fótons vizinhos ao ponto de intersecção
         –   Soma a energia destes fótons
         –   Aplica sobre a BRDF da superfície

                                     Copyright Vitor F. Pamplona
                      H.W. Jensen 1986: Global Illumination using Photon Maps   16
Algoritmo de Photon Mapping
●   Photon Tracing
    ●   Emite fótons pelas fontes de luz
    ●   Para cada intersecção com uma superfície difusa
         –   Armazena-os numa estrutura de dados


●   Path Tracing
    ●   Para cada intersecção com uma superfície difusa
         –   Consulta os fótons vizinhos ao ponto de intersecção
         –   Soma a energia destes fótons
         –   Aplica sobre a BRDF da superfície

                                     Copyright Vitor F. Pamplona
                      H.W. Jensen 1986: Global Illumination using Photon Maps   17
Algoritmo de Photon Mapping
●   Photon Tracing
    ●   Emite fótons pelas fontes de luz
    ●   Para cada intersecção com uma superfície difusa
         –   Armazena-os numa estrutura de dados


●   Path Tracing
    ●   Para cada intersecção com uma superfície difusa
         –   Estima a iluminação no ponto em função dos fótons vizinhos
         –   Resolve a cor do pixel analisado


                                      Copyright Vitor F. Pamplona
                       H.W. Jensen 1986: Global Illumination using Photon Maps   18
Algoritmo de Photon Mapping
●   Photon Tracing
    ●   Emite fótons pelas fontes de luz
    ●   Para cada intersecção com uma superfície difusa
         –   Armazena-os numa estrutura de dados


●   Path Tracing
    ●   Para cada intersecção com uma superfície difusa
         –   Estima a iluminação no ponto em função dos fótons vizinhos
         –   Resolve a cor do pixel analisado


                                      Copyright Vitor F. Pamplona
                       H.W. Jensen 1986: Global Illumination using Photon Maps   19
Cena do Exemplo




             Copyright Vitor F. Pamplona   20
Photon Tracing
                             Luz




             Vidro                      Espelho




                 Copyright Vitor F. Pamplona      21
Photon Tracing
                             Luz
                                        Lançar Fótons




             Vidro                      Espelho




                 Copyright Vitor F. Pamplona            22
Photon Tracing
                             Luz




             Vidro                      Espelho




                 Copyright Vitor F. Pamplona      23
Photon Tracing
                                    Luz




                                                      Roleta Russa

        Roleta Russa




                       Vidro                   Espelho




                        Copyright Vitor F. Pamplona                  24
Photon Tracing
                                    Luz

                                                                     Roleta Russa

                                                                         1.0
                                                      Roleta Russa

        Roleta Russa




                                                                         0.0




                       Vidro                   Espelho




                        Copyright Vitor F. Pamplona                             25
Photon Tracing
                                    Luz

                                                                     Roleta Russa

                                                                         1.0
                                                      Roleta Russa

        Roleta Russa
                                                                               0.6



                                                                         0.0




                       Vidro                   Espelho




                        Copyright Vitor F. Pamplona                              26
Photon Tracing
                                    Luz

                                                                     Roleta Russa

                                                                         1.0
                                                      Roleta Russa

        Roleta Russa
                                                                               0.6



                                                                         0.0




                       Vidro                   Espelho




                        Copyright Vitor F. Pamplona                              27
Photon Tracing
                                    Luz

                                                                         Roleta Russa

                                                                               1.0
                                                      Roleta Russa

        Roleta Russa
                                                                                     0.6
                                                                     Reflete

                                                                               0.0




                       Vidro                   Espelho




                        Copyright Vitor F. Pamplona                                    28
Photon Tracing
                                    Luz

                                                                         Roleta Russa

                                                                               1.0
                                                      Roleta Russa   Absorve

        Roleta Russa
                                                                                     0.6
                                                                     Reflete

                                                                               0.0




                       Vidro                   Espelho




                        Copyright Vitor F. Pamplona                                    29
Photon Tracing
                                Luz

                                                                     Roleta Russa

                                                                           1.0
                                                  Roleta Russa   Absorve
                                                                                 0.6
        Absorveu
                                                                 Reflete

                                                                           0.0

                                                                   N. Sorteado: 0.9



                   Vidro                   Espelho




                    Copyright Vitor F. Pamplona                                    30
Photon Tracing
                             Luz

                                                              Roleta Russa

                                                                    1.0
                                               Refletiu
                                                          Absorve
                                                                          0.6
                                                          Reflete

                                                                    0.0

                                                            N. Sorteado: 0.1



             Vidro                      Espelho




                 Copyright Vitor F. Pamplona                                31
Photon Tracing
                             Luz

                                                                 Roleta Russa
                                                  Refletiu
                                                                       1.0
                                                             Absorve
                                                                             0.6
                                                             Reflete

                                                                       0.0

                                                               N. Sorteado: 0.2



             Vidro                      Espelho




                 Copyright Vitor F. Pamplona                                   32
Photon Tracing
                             Luz
                                               Absorveu
                                                                         Roleta Russa
                                                          Refletiu
                                                                               1.0
                                                                     Absorve
                                                                                     0.6
                                                                     Reflete

                                                                               0.0

                                                                       N. Sorteado: 0.8



             Vidro                      Espelho




                 Copyright Vitor F. Pamplona                                           33
Photon Tracing
                             Luz




                                         Roleta Russa




             Vidro                      Espelho




                 Copyright Vitor F. Pamplona            34
Photon Tracing
                             Luz

                                                        Roleta Russa

                                                            1.0




                                                            0.0

                                         Roleta Russa




             Vidro                      Espelho




                 Copyright Vitor F. Pamplona                       35
Photon Tracing
                             Luz

                                                        Roleta Russa

                                                            1.0
                                                                  0.95




                                                            0.0

                                         Roleta Russa




             Vidro                      Espelho




                 Copyright Vitor F. Pamplona                       36
Photon Tracing
                             Luz

                                                            Roleta Russa
                                                        Absorve 1.0
                                                                        0.95

                                                        Reflete



                                                                  0.0

                                         Roleta Russa




             Vidro                      Espelho




                 Copyright Vitor F. Pamplona                             37
Photon Tracing
                             Luz

                                                            Roleta Russa
                                                        Absorve 1.0
                                                                        0.95

                                                        Reflete



                                                                  0.0

                                                          N. Sorteado: 0.5
                                         Roleta Russa




             Vidro                      Espelho




                 Copyright Vitor F. Pamplona                             38
Photon Tracing
                             Luz

                                                              Roleta Russa
                                                          Absorve 1.0
                                                                          0.95

                                                          Reflete



                                                                    0.0

                                                            N. Sorteado: 0.5
                                               Refletiu




             Vidro                      Espelho




                 Copyright Vitor F. Pamplona                               39
Photon Tracing
                             Luz

                                                              Roleta Russa
                                                          Absorve 1.0
                                                                          0.95

                                                          Reflete



                                                                    0.0

                                                            N. Sorteado: 0.5
                                               Refletiu




             Vidro                      Espelho




                 Copyright Vitor F. Pamplona                               40
Photon Tracing
                             Luz




                                                        Refletiu




             Vidro                      Espelho

                                                  Absorveu




                 Copyright Vitor F. Pamplona                       41
Photon Tracing
                             Luz




                            Refletiu
             Vidro                      Espelho




                 Copyright Vitor F. Pamplona      42
Photon Tracing
                             Luz




             Vidro                      Espelho


                            Refletiu


                 Copyright Vitor F. Pamplona      43
Photon Tracing
                             Luz

                                                  Roleta Russa
                                                      1.0




                                                      0.0




             Vidro                      Espelho


                            Refletiu


                 Copyright Vitor F. Pamplona                 44
Photon Tracing
                             Luz

                                                  Roleta Russa
                                                      1.0
                                                            0.8




                                                      0.0
                                                  Fresnel: 0.8



             Vidro                      Espelho


                            Refletiu


                 Copyright Vitor F. Pamplona                 45
Photon Tracing
                             Luz

                                                      Roleta Russa

                                                  Refrata   1.0
                                                                  0.8
                                                  Reflete


                                                            0.0
                                                       Fresnel: 0.8



             Vidro                      Espelho


                            Refletiu


                 Copyright Vitor F. Pamplona                       46
Photon Tracing
                             Luz

                                                      Roleta Russa

                                                  Refrata   1.0
                                                                  0.8
                                                  Reflete


                                                            0.0
                                                       Fresnel: 0.8
                                                   N. Sorteado: 0.5


             Vidro                      Espelho


                            Refletiu


                 Copyright Vitor F. Pamplona                       47
Photon Tracing
                             Luz

                                                      Roleta Russa

                                                  Refrata   1.0
                                                                  0.8
                                                  Reflete


                                                            0.0
                                                       Fresnel: 0.8
                                                   N. Sorteado: 0.5


             Vidro                      Espelho

             Refletiu

                      Absorveu


                 Copyright Vitor F. Pamplona                       48
Photon Tracing
                             Luz




             Vidro                      Espelho




                 Copyright Vitor F. Pamplona      49
Photon Tracing
                             Luz

                                                  Roleta Russa
                                                      1.0




                                                      0.0




             Vidro                      Espelho




                 Copyright Vitor F. Pamplona                 50
Photon Tracing
                             Luz

                                                      Roleta Russa

                                                  Refrata   1.0

                                                                  0.7
                                                  Reflete


                                                            0.0
                                                       Fresnel: 0.7



             Vidro                      Espelho




                 Copyright Vitor F. Pamplona                       51
Photon Tracing
                             Luz

                                                      Roleta Russa

                                                  Refrata   1.0

                                                                  0.7
                                                  Reflete


                                                            0.0
                                                       Fresnel: 0.7
                                                   N. Sorteado: 0.9


             Vidro                      Espelho




                 Copyright Vitor F. Pamplona                       52
Photon Tracing
                                  Luz




          Refratou


                     Vidro                   Espelho




                      Copyright Vitor F. Pamplona      53
Photon Tracing
                                  Luz

                                                           Roleta Russa

                                                       Refrata   1.0

                                                                       0.7
                                                       Reflete


                                                                 0.0
                                                            Fresnel: 0.7

          Refratou
                                                        N. Sorteado: 0.8


                     Vidro                   Espelho




                      Copyright Vitor F. Pamplona                       54
Photon Tracing
                                     Luz

                                                              Roleta Russa

                                                          Refrata   1.0

                                                                          0.7
                                                          Reflete


                                                                    0.0
                                                               Fresnel: 0.7
                                                           N. Sorteado: 0.8


                    Vidro                       Espelho
         Refratou

              Absorveu


                         Copyright Vitor F. Pamplona                       55
Photon Tracing




                 Copyright Vitor F. Pamplona   56
Iluminação Direta




              Copyright Vitor F. Pamplona   57
Iluminação Indireta




               Copyright Vitor F. Pamplona   58
Cáusticas




            Copyright Vitor F. Pamplona   59
Algoritmo de Photon Mapping
●   Photon Tracing
    ●   Emite fótons pelas fontes de luz
    ●   Para cada intersecção com uma superfície difusa
         –   Armazena-os numa estrutura de dados


●   Path Tracing
    ●   Para cada intersecção com uma superfície difusa
         –   Estima a iluminação no ponto em função dos fótons vizinhos
         –   Resolve a cor do pixel analisado


                                      Copyright Vitor F. Pamplona
                       H.W. Jensen 1986: Global Illumination using Photon Maps   60
Path Tracing




                             Vidro
                                Espelho




               Copyright Vitor F. Pamplona   61
Path Tracing




                             Vidro
                                Espelho




               Copyright Vitor F. Pamplona   62
Path Tracing                                           N=3
                                             p3

                                                  p2
                                             p1
                                                   x




                             Vidro
                                Espelho




               Copyright Vitor F. Pamplona              63
Path Tracing                                              N=3
                                             p3

                                                  p2
                                             p1
                                                      x


                                                  V




                             Vidro
                                Espelho




               Copyright Vitor F. Pamplona                 64
Path Tracing                                                   N=3
                                             p3

                                                  p2
                                             p1
                                                      x


                                                  V

                                                      3

                                                  ∑ E  pi 
                                             I x = i=1
                                                          V

                             Vidro
                                Espelho




               Copyright Vitor F. Pamplona                      65
Path Tracing                                 N=3




                             Vidro
                                Espelho




               Copyright Vitor F. Pamplona    66
Path Tracing                                     N=3




                             Vidro
                                Espelho      x




               Copyright Vitor F. Pamplona        67
Path Tracing                                     N=3




                             Vidro
                                Espelho      x




               Copyright Vitor F. Pamplona        68
Path Tracing                                               N=3




                                             p1
                              Vidro
                                 Espelho           x

                                                       V
                         p3                   p2


               Copyright Vitor F. Pamplona                  69
Path Tracing                                                    N=3




                                                       3

                                                   ∑ E  pi 
                                              I x = i=1
                                                           V
                                             p1
                              Vidro
                                 Espelho           x

                                                       V
                         p3                   p2


               Copyright Vitor F. Pamplona                       70
Path Tracing                                     N=3




                             Vidro
                                Espelho      x




               Copyright Vitor F. Pamplona        71
Path Tracing                                     N=3




                             Vidro
                                Espelho      x




               Copyright Vitor F. Pamplona        72
Path Tracing                                 N=3




                             Vidro
                                Espelho




               Copyright Vitor F. Pamplona    73
Path Tracing                                 N=3




                             Vidro
                                Espelho


                                    x


               Copyright Vitor F. Pamplona    74
Path Tracing                                      N=3




                             Vidro
                                Espelho

                   p1      p3
                                    x        p2

               Copyright Vitor F. Pamplona         75
Path Tracing                                                        N=3




                                                        3

                                                       ∑ E  pi 
                                                  I x = i=1
                                                              V

                             Vidro
                                Espelho
                                             V
                   p1      p3
                                    x            p2

               Copyright Vitor F. Pamplona                           76
Path Tracing                                      N=3




                             Vidro
                                Espelho

                   p1      p3
                                    x        p2

               Copyright Vitor F. Pamplona         77
Algoritmo de Photon Mapping
●   Photon Tracing
    ●   Emite fótons pelas fontes de luz
    ●   Para cada intersecção com uma superfície difusa
         –   Armazena-os numa estrutura de dados


●   Path Tracing
    ●   Para cada intersecção com uma superfície difusa
         –   Estima a iluminação no ponto em função dos fótons vizinhos
         –   Resolve a cor do pixel analisado


                                      Copyright Vitor F. Pamplona
                       H.W. Jensen 1986: Global Illumination using Photon Maps   78
Calculando a Radiância do Ponto X

          


                         x




              Copyright Vitor F. Pamplona   79
Calculando a Radiância do Ponto X

          


                         x
                                      r




              Copyright Vitor F. Pamplona   80
Calculando a Radiância do Ponto X
                                                  N

                                                 ∑ E  pi 
                                           I x = i=1
                                                        V


                         x
                                      r




              Copyright Vitor F. Pamplona                     81
Calculando a Radiância do Ponto X
                                                  N

                                                 ∑ E  pi 
                                           I x = i=1
                                                        V


                         x
                                      r




              Copyright Vitor F. Pamplona                     82
Calculando a Radiância do Ponto X
                                                           N

                                                          ∑ E  pi 
                                                    I x = i=1
                                                                 V


                                  x
                                               r
                             N
                  1
    I x  x , = 2 ∑ f r  x , ' i ,  pi 
                  r i=1      BRDF       Consulta ao
                  Área do                            Photon Map
                   Círculo


                       Copyright Vitor F. Pamplona                     83
Calculando a Radiância do Ponto X
                                                           N

                                                          ∑ E  pi 
                                                    I x = i=1
                                                                 V


                                  x
                                               r
                             N
                  1
    I x  x , = 2 ∑ f r  x , ' i ,  pi 
                  r i=1      BRDF       Consulta ao
                  Área do                            Photon Map
                   Círculo


                       Copyright Vitor F. Pamplona                     84
Calculando a Radiância do Ponto X
                                                           N

                                                          ∑ E  pi 
                                                    I x = i=1
                                                                 V


                                  x
                                               r
                             N
                  1
    I x  x , = 2 ∑ f r  x , ' i ,  pi 
                  r i=1      BRDF       Consulta ao
                  Área do                            Photon Map
                   Círculo


                       Copyright Vitor F. Pamplona                     85
Calculando a Radiância do Ponto X
                                                           N

                                                          ∑ E  pi 
                                                    I x = i=1
                                                                 V


                                  x
                                               r
                             N
                  1
    I x  x , = 2 ∑ f r  x , ' i ,  pi 
                  r i=1      BRDF       Consulta ao
                  Área do                            Photon Map
                   Círculo


                       Copyright Vitor F. Pamplona                     86
Calculando a Radiância do Ponto X
                                                           N

                                                          ∑ E  pi 
                                                    I x = i=1
                                                                 V


                                  x
                                               r
                             N
                  1
    I x  x , = 2 ∑ f r  x , ' i ,  pi 
                  r i=1      BRDF       Consulta ao
                  Área do                            Photon Map
                   Círculo


                       Copyright Vitor F. Pamplona                     87
Resultado




            Copyright Vitor F. Pamplona   88
Algoritmo de Photon Mapping
●   Photon Tracing
    ●   Emite fótons pelas fontes de luz
    ●   Para cada intersecção com uma superfície difusa
         –   Armazena-os numa estrutura de dados


●   Path Tracing
    ●   Para cada intersecção com uma superfície difusa
         –   Estima a iluminação no ponto em função dos fótons vizinhos
         –   Resolve a cor do pixel analisado


                                      Copyright Vitor F. Pamplona
                       H.W. Jensen 1986: Global Illumination using Photon Maps   89
Estrutura de Dados Espacial: Kd-Tree
●   Árvore binária




                     Copyright Vitor F. Pamplona   90
Estrutura de Dados Espacial: Kd-Tree
●   Árvore binária


                                                         p2
                                                    p1

                                               p3



                                                         p4




                     Copyright Vitor F. Pamplona              91
Estrutura de Dados Espacial: Kd-Tree
●   Árvore binária


                                                         p2
                                                    p1

                                               p3



                                                         p4




                     Copyright Vitor F. Pamplona              92
Estrutura de Dados Espacial: Kd-Tree
●   Árvore binária


                                                         p2
                                                    p1

                                               p3



                                                         p4




                     Copyright Vitor F. Pamplona              93
Estrutura de Dados Espacial: Kd-Tree
●   Árvore binária


                                                         p2
              L1
                                                    p1

                                               p3



                                                         p4




                     Copyright Vitor F. Pamplona              94
Estrutura de Dados Espacial: Kd-Tree
●   Árvore binária


                                                         p2
              L1
                                                    p1

                                               p3



                                                         p4




                     Copyright Vitor F. Pamplona              95
Estrutura de Dados Espacial: Kd-Tree
●   Árvore binária


                                                         p2
              L1
                                                    p1

                                               p3



                                                         p4




                     Copyright Vitor F. Pamplona              96
Estrutura de Dados Espacial: Kd-Tree
●   Árvore binária


                                                         p2
                L1
                                                    p1

                                               p3
           L2

                                                         p4




                     Copyright Vitor F. Pamplona              97
Estrutura de Dados Espacial: Kd-Tree
●   Árvore binária


                                                                 p2
                        L1
                                                            p1

                                                       p3
              L2


         p1        p2                                            p4




                             Copyright Vitor F. Pamplona              98
Estrutura de Dados Espacial: Kd-Tree
●   Árvore binária


                                                                 p2
                        L1
                                                            p1

                                                       p3
              L2


         p1        p2                                            p4




                             Copyright Vitor F. Pamplona              99
Estrutura de Dados Espacial: Kd-Tree
●   Árvore binária


                                                                 p2
                        L1
                                                            p1

                                                       p3
              L2


         p1        p2                                            p4




                             Copyright Vitor F. Pamplona              100
Estrutura de Dados Espacial: Kd-Tree
●   Árvore binária


                                                                      p2
                        L1
                                                                 p1

                                                            p3
              L2             L3


         p1        p2                                                 p4




                                  Copyright Vitor F. Pamplona              101
Estrutura de Dados Espacial: Kd-Tree
●   Árvore binária


                                                                                p2
                        L1
                                                                           p1

                                                                      p3
              L2                  L3


         p1        p2        p3        p4                                       p4




                                            Copyright Vitor F. Pamplona              102
Estrutura de Dados Espacial: Kd-Tree
●   Pesquisa pelos 2 vizinhos mais próximos


                                                                                p2
                        L1
                                                                           p1

                                                                      p3
              L2                  L3


         p1        p2        p3        p4                                  x    p4




                                            Copyright Vitor F. Pamplona              103
Estrutura de Dados Espacial: Kd-Tree
●   Pesquisa pelos 2 vizinhos mais próximos


                                                                                p2
                        L1
                                                                           p1

                                                                      p3
              L2                  L3


         p1        p2        p3        p4                                  x    p4




                                            Copyright Vitor F. Pamplona              104
Estrutura de Dados Espacial: Kd-Tree
●   Pesquisa pelos 2 vizinhos mais próximos


                                                                                p2
                        L1
                                                                           p1

                                                                      p3
              L2                  L3


         p1        p2        p3        p4                                  x    p4




                                            Copyright Vitor F. Pamplona              105
Estrutura de Dados Espacial: Kd-Tree
●   Pesquisa pelos 2 vizinhos mais próximos


                                                                                  p2
                          L1
                                                                             p1

                                                                        p3
                L2                  L3


           p1        p2        p3        p4                                  x    p4




     Mais próximos: p4



                                              Copyright Vitor F. Pamplona              106
Estrutura de Dados Espacial: Kd-Tree
●   Pesquisa pelos 2 vizinhos mais próximos


                                                                                  p2
                          L1
                                                                             p1

                                                                        p3
                L2                  L3


           p1        p2        p3        p4                                  x    p4




     Mais próximos: p4



                                              Copyright Vitor F. Pamplona              107
Estrutura de Dados Espacial: Kd-Tree
●   Pesquisa pelos 2 vizinhos mais próximos


                                                                                  p2
                          L1
                                                                             p1

                                                                        p3
                L2                  L3


           p1        p2        p3        p4                                  x    p4




     Mais próximos: p4, p3



                                              Copyright Vitor F. Pamplona              108
Estrutura de Dados Espacial: Kd-Tree
●   Pesquisa pelos 2 vizinhos mais próximos


                                                                                  p2
                          L1
                                                                             p1

                                                                        p3
                L2                  L3


           p1        p2        p3        p4                                  x    p4




     Mais próximos: p4, p3



                                              Copyright Vitor F. Pamplona              109
Estrutura de Dados Espacial: Kd-Tree
●   Pesquisa pelos 2 vizinhos mais próximos


                                                                                  p2
                          L1
                                                                             p1

                                                                        p3
                L2                  L3


           p1        p2        p3        p4                                  x    p4




     Mais próximos: p4, p3



                                              Copyright Vitor F. Pamplona              110
Estrutura de Dados Espacial: Kd-Tree
●   Pesquisa pelos 2 vizinhos mais próximos


                                                                                  p2
                          L1
                                                                             p1

                                                                        p3
                L2                  L3


           p1        p2        p3        p4                                  x    p4




     Mais próximos: p4, p3



                                              Copyright Vitor F. Pamplona              111
Armazenamento em 3D
                                                p2
                                                           p4


                                                     p3

        p1




                                                               p5




                                  p9                      p8
             p6   p7

                  Copyright Vitor F. Pamplona                       112
Armazenamento em 3D
                                                p2
                                                           p4


                                                     p3

        p1




                                                               p5




                                  p9                      p8
             p6   p7

                  Copyright Vitor F. Pamplona                       113
Armazenamento em 3D
                                                p2
                                                           p4


                                                     p3

        p1




                                                               p5




                                  p9                      p8
             p6   p7

                  Copyright Vitor F. Pamplona                       114
Armazenamento em 3D
                                                p2
                                                           p4


                                                     p3

        p1




                                                               p5




                                  p9                      p8
             p6   p7

                  Copyright Vitor F. Pamplona                       115
Armazenamento em 3D
                                                p2
                                                           p4


                                                     p3

        p1




                                                               p5




                                  p9                      p8
             p6   p7

                  Copyright Vitor F. Pamplona                       116
Armazenamento em 3D
                                                p2
                                                           p4


                                                     p3

        p1




                                                               p5




                                  p9                      p8
             p6   p7

                  Copyright Vitor F. Pamplona                       117
Armazenamento em 3D
                                                p2
                                                           p4


                                                     p3

        p1




                                                               p5




                                  p9                      p8
             p6   p7

                  Copyright Vitor F. Pamplona                       118
Armazenamento em 3D
                                                p2
                                                           p4


                                                     p3

        p1




                                                               p5




                                  p9                      p8
             p6   p7

                  Copyright Vitor F. Pamplona                       119
Armazenamento em 3D
                                                p2
                                                           p4


                                                     p3

        p1




                                                               p5




                                  p9                      p8
             p6   p7

                  Copyright Vitor F. Pamplona                       120
Mapa de Fótons
                                    L2
                                                                             L1
                               p2                  L8
                                          p4
     L4

                                    p3                          L2                        L3
                                              L5
      p1

                                                          L4          L5           L6           L7


                                              p5        p1 p2        P3    L8     p6 p7        p8 p9
                                                   L1
                                                                          p4 p5
                                              L7
L6

                     L3   p9             p8
           p6   p7



                                Copyright Vitor F. Pamplona                                            121
Parâmetros do Photon Mapping
●   Quantidade de fótons
    ●   Quanto maior o número de fótons, menos artefatos




                         Copyright Vitor F. Pamplona       122
Parâmetros do Photon Mapping
●   Quantidade de fótons
    ●   Quanto maior o número de fótons, menos artefatos




              Milhares de Fótons                             Milhões de Fótons




                               Copyright Vitor F. Pamplona                       123
Parâmetros do Photon Mapping
●   Quantidade de fótons
    ●   Quanto maior o número de fótons, menos artefatos
●   Número de fótons vizinhos a integrar (N)
    ●   Quanto maior, mais suave serão as variações de
        iluminação




                         Copyright Vitor F. Pamplona       124
Parâmetros do Photon Mapping
●   Quantidade de fótons
    ●   Quanto maior o número de fótons, menos artefatos
●   Número de fótons vizinhos a integrar (N)
    ●   Quanto maior, mais suave serão as variações de
        iluminação




                   N = 100                           N = 20.000



                             Copyright Vitor F. Pamplona          125
Photon Mapping: Prós
●   Performance independe do número de pixels da imagem
    ●   Apenas 1 raio por pixel no Path Tracing




                           Copyright Vitor F. Pamplona    126
Photon Mapping: Prós
●   Performance independe do número de pixels da imagem
    ●   Apenas 1 raio por pixel no Path Tracing
●   Suporta vários materiais
    ●   Superfícies difusas, refletivas e transparentes
    ●   Subsurface scattering




                            Copyright Vitor F. Pamplona   127
Photon Mapping: Prós
●   Performance independe do número de pixels da imagem
    ●   Apenas 1 raio por pixel no Path Tracing
●   Suporta vários materiais
    ●   Superfícies difusas, refletivas e transparentes
    ●   Participating media
    ●   Subsurface scattering




                              Copyright Vitor F. Pamplona   128
Photon Mapping: Prós
●   Performance independe do número de pixels da imagem
    ●   Apenas 1 raio por pixel no Path Tracing
●   Suporta vários materiais
    ●   Superfícies difusas, refletivas e transparentes
    ●   Participating media
    ●   Subsurface scattering




                              Copyright Vitor F. Pamplona   129
Photon Mapping: Prós
●   Performance independe do número de pixels da imagem
    ●   Apenas 1 raio por pixel no Path Tracing
●   Suporta vários materiais
    ●   Superfícies difusas, refletivas e transparentes
    ●   Subsurface scattering
    ●   Participating media




                              Copyright Vitor F. Pamplona   130
Photon Mapping: Prós
●   Performance independe do número de pixels da imagem
    ●   Apenas 1 raio por pixel no Path Tracing
●   Suporta vários materiais
    ●   Superfícies difusas, refletivas e transparentes
    ●   Subsurface scattering
    ●   Participating media




                              Copyright Vitor F. Pamplona   131
Photon Mapping: Prós
●   Performance independe do número de pixels da imagem
    ●   Apenas 1 raio por pixel no Path Tracing
●   Suporta vários materiais
    ●   Superfícies difusas, refletivas e transparentes
    ●   Subsurface scattering
    ●   Participating media




                              Copyright Vitor F. Pamplona   132
Photon Mapping: Prós
●   Performance independe do número de pixels da imagem
    ●   Apenas 1 raio por pixel no Path Tracing
●   Suporta vários materiais
    ●   Superfícies difusas, refletivas e transparentes
    ●   Subsurface scattering
    ●   Participating media
●   Suporta spectral rendering




                              Copyright Vitor F. Pamplona   133
Photon Mapping: Prós
●   Performance independe do número de pixels da imagem
    ●   Apenas 1 raio por pixel no Path Tracing
●   Suporta vários materiais
    ●   Superfícies difusas, refletivas e transparentes
    ●   Subsurface scattering
    ●   Participating media
●   Suporta spectral rendering




                                           Samuel Boivin
                                Copyright Vitor F. Pamplona
                         http://www.dgp.toronto.edu/~boivin/PostDoc/index.htm   134
Photon Mapping: Prós
●   Performance independe do número de pixels da imagem
    ●   Apenas 1 raio por pixel no Path Tracing
●   Suporta vários materiais
    ●   Superfícies difusas, refletivas e transparentes
    ●   Subsurface scattering
    ●   Participating media
●   Suporta spectral rendering
●   Suavização do ruído inerente dos métodos de ray tracing




                              Copyright Vitor F. Pamplona     135
Photon Mapping: Prós
●   Performance independe do número de pixels da imagem
    ●   Apenas 1 raio por pixel no Path Tracing
●   Suporta vários materiais
    ●   Superfícies difusas, refletivas e transparentes
    ●   Subsurface scattering
    ●   Participating media
●   Suporta spectral rendering
●   Suavização do ruído inerente dos métodos de ray tracing




                              Copyright Vitor F. Pamplona     136
Photon Mapping: Prós
●   Performance independe do número de pixels da imagem
    ●   Apenas 1 raio por pixel no Path Tracing
●   Suporta vários materiais
    ●   Superfícies difusas, refletivas e transparentes
    ●   Subsurface scattering
    ●   Participating media
●   Suporta spectral rendering
●   Suavização do ruído inerente dos métodos de ray tracing
●   Se acopla facilmente nas implementações de ray tracing


                              Copyright Vitor F. Pamplona     137
Photon Mapping: Contras
●   Alto uso de memória
●   Baixa performance com muitas fontes de luz
    ●   Kd-trees muito grandes
●   Parâmetros devem ser escolhidos com cuidado
●   Não executa em tempo real




                          Copyright Vitor F. Pamplona   138
Sumário: Photon Mapping
●   Modelos de iluminação global
●   Ray Tracing
●   Radiosidade
●   Photon Mapping
    ●   Photon Tracing
        –   Emite fótons pelas fontes de luz
        –   Armazena-os numa estrutura de dados
    ●   Path tracing
        –   Consulta os fótons vizinhos ao ponto de intersecção
        –   Resolve a cor do pixel analisado
                                     Copyright Vitor F. Pamplona
                      H.W. Jensen 1986: Global Illumination using Photon Maps   139
Obrigado, perguntas?
    Vitor F. Pamplona




       Courtesy of Hosuk Chang

Mais conteúdo relacionado

Mais de Vitor Pamplona

Tailored Displays to Compensate for Visual Aberrations - SIGGRAPH Presentation
Tailored Displays to Compensate for Visual Aberrations - SIGGRAPH PresentationTailored Displays to Compensate for Visual Aberrations - SIGGRAPH Presentation
Tailored Displays to Compensate for Visual Aberrations - SIGGRAPH PresentationVitor Pamplona
 
CATRA: Interactive Measuring and Modelling of Cataracts
CATRA: Interactive Measuring and Modelling of CataractsCATRA: Interactive Measuring and Modelling of Cataracts
CATRA: Interactive Measuring and Modelling of CataractsVitor Pamplona
 
Netra at Mobile Health Expo NYC
Netra at Mobile Health Expo NYCNetra at Mobile Health Expo NYC
Netra at Mobile Health Expo NYCVitor Pamplona
 
Unusual apps: NETRA and CATRA
Unusual apps: NETRA and CATRAUnusual apps: NETRA and CATRA
Unusual apps: NETRA and CATRAVitor Pamplona
 
Photorealistic Models for Pupil Light Reflex and Iridal Pattern Deformation
Photorealistic Models for Pupil Light Reflex and Iridal Pattern DeformationPhotorealistic Models for Pupil Light Reflex and Iridal Pattern Deformation
Photorealistic Models for Pupil Light Reflex and Iridal Pattern DeformationVitor Pamplona
 
NETRA on SIGGRAPH 2010
NETRA on SIGGRAPH 2010NETRA on SIGGRAPH 2010
NETRA on SIGGRAPH 2010Vitor Pamplona
 
Modelos Foto-realistas para reflexo pupilar à luz e deformação dos padrões da...
Modelos Foto-realistas para reflexo pupilar à luz e deformação dos padrões da...Modelos Foto-realistas para reflexo pupilar à luz e deformação dos padrões da...
Modelos Foto-realistas para reflexo pupilar à luz e deformação dos padrões da...Vitor Pamplona
 
Performance Analysis: C vs CUDA
Performance Analysis: C vs CUDAPerformance Analysis: C vs CUDA
Performance Analysis: C vs CUDAVitor Pamplona
 
Propagação de Incerteza em Medições
Propagação de Incerteza em MediçõesPropagação de Incerteza em Medições
Propagação de Incerteza em MediçõesVitor Pamplona
 
Geometric Algebra 2: Applications
Geometric Algebra 2: ApplicationsGeometric Algebra 2: Applications
Geometric Algebra 2: ApplicationsVitor Pamplona
 
Introduction about Geometric Algebra
Introduction about Geometric AlgebraIntroduction about Geometric Algebra
Introduction about Geometric AlgebraVitor Pamplona
 
Turbinando sua Carreira: mestrado, devo encarar essa?
Turbinando sua Carreira: mestrado, devo encarar essa?Turbinando sua Carreira: mestrado, devo encarar essa?
Turbinando sua Carreira: mestrado, devo encarar essa?Vitor Pamplona
 
Criando Projetos Open Source
Criando Projetos Open SourceCriando Projetos Open Source
Criando Projetos Open SourceVitor Pamplona
 
The Image-based data glove presentation
The Image-based data glove presentationThe Image-based data glove presentation
The Image-based data glove presentationVitor Pamplona
 

Mais de Vitor Pamplona (20)

SciBr foundation 2018
SciBr foundation 2018SciBr foundation 2018
SciBr foundation 2018
 
Defesa de Tese
Defesa de TeseDefesa de Tese
Defesa de Tese
 
Tailored Displays to Compensate for Visual Aberrations - SIGGRAPH Presentation
Tailored Displays to Compensate for Visual Aberrations - SIGGRAPH PresentationTailored Displays to Compensate for Visual Aberrations - SIGGRAPH Presentation
Tailored Displays to Compensate for Visual Aberrations - SIGGRAPH Presentation
 
CATRA: Interactive Measuring and Modelling of Cataracts
CATRA: Interactive Measuring and Modelling of CataractsCATRA: Interactive Measuring and Modelling of Cataracts
CATRA: Interactive Measuring and Modelling of Cataracts
 
Netra at Mobile Health Expo NYC
Netra at Mobile Health Expo NYCNetra at Mobile Health Expo NYC
Netra at Mobile Health Expo NYC
 
Unusual apps: NETRA and CATRA
Unusual apps: NETRA and CATRAUnusual apps: NETRA and CATRA
Unusual apps: NETRA and CATRA
 
Free software basics
Free software basicsFree software basics
Free software basics
 
Photorealistic Models for Pupil Light Reflex and Iridal Pattern Deformation
Photorealistic Models for Pupil Light Reflex and Iridal Pattern DeformationPhotorealistic Models for Pupil Light Reflex and Iridal Pattern Deformation
Photorealistic Models for Pupil Light Reflex and Iridal Pattern Deformation
 
NETRA on SIGGRAPH 2010
NETRA on SIGGRAPH 2010NETRA on SIGGRAPH 2010
NETRA on SIGGRAPH 2010
 
Modelos Foto-realistas para reflexo pupilar à luz e deformação dos padrões da...
Modelos Foto-realistas para reflexo pupilar à luz e deformação dos padrões da...Modelos Foto-realistas para reflexo pupilar à luz e deformação dos padrões da...
Modelos Foto-realistas para reflexo pupilar à luz e deformação dos padrões da...
 
Performance Analysis: C vs CUDA
Performance Analysis: C vs CUDAPerformance Analysis: C vs CUDA
Performance Analysis: C vs CUDA
 
Anotação de Imagens
Anotação de ImagensAnotação de Imagens
Anotação de Imagens
 
Propagação de Incerteza em Medições
Propagação de Incerteza em MediçõesPropagação de Incerteza em Medições
Propagação de Incerteza em Medições
 
Geometric Algebra 2: Applications
Geometric Algebra 2: ApplicationsGeometric Algebra 2: Applications
Geometric Algebra 2: Applications
 
Introduction about Geometric Algebra
Introduction about Geometric AlgebraIntroduction about Geometric Algebra
Introduction about Geometric Algebra
 
Turbinando sua Carreira: mestrado, devo encarar essa?
Turbinando sua Carreira: mestrado, devo encarar essa?Turbinando sua Carreira: mestrado, devo encarar essa?
Turbinando sua Carreira: mestrado, devo encarar essa?
 
Criando Projetos Open Source
Criando Projetos Open SourceCriando Projetos Open Source
Criando Projetos Open Source
 
O Mundo Open Source
O Mundo Open SourceO Mundo Open Source
O Mundo Open Source
 
Mobile 3D Game Engine
Mobile 3D Game EngineMobile 3D Game Engine
Mobile 3D Game Engine
 
The Image-based data glove presentation
The Image-based data glove presentationThe Image-based data glove presentation
The Image-based data glove presentation
 

Ray tracing e photon mapping

  • 1. Modelos de Iluminação Global Vitor F. Pamplona http://blogs.intel.com/research/2007/10/real_time_raytracing_the_end_o.php
  • 2. Ray Tracing Pov-Ray Copyright Vitor F. Pamplona Gallery: http://www.povray.org/ 4
  • 3. Ray Tracing Copyright Vitor F. Pamplona http://richardpage.wordpress.com/ 5
  • 4. Ray Tracing ● Apresentado por Turner Whitted em 1979 ● Lança raios a partir do observador ● um por pixel ● encontra o objeto mais próximo na direção do raio ● Ao atingir uma superfície, pode-se gerar 3 tipos de raio: ● Reflexão para superfícies espelhadas (lei de reflexão) ● Refração para superfícies transparentes (lei de Snell) ● Sombra para identificar se está visível em relação a luz ● Fonte de luz pontual Copyright Vitor F. Pamplona 6
  • 5. Radiosidade Copyright Vitor F. Pamplona http://richardpage.wordpress.com/ 7
  • 6. Radiosidade Copyright Vitor F. Pamplona http://www.cs.dartmouth.edu/~spl/Academic/ComputerGraphics/Fall2004/ 8
  • 7. Radiosidade ● Apresentado por Goral et al. em 1984 ● Contempla superfícies puramente difusas ● Divide a cena em pequenas superfícies (patches) ● Para cada par de superfícies ● Calcular um coeficiente de visibilidade (Form Factor) ● Resolver o sistema linear Energia Emitida N Form Factor B j = E j  p j ∑ B i F ij i=1 Radiosidade Refletividade Copyright Vitor F. Pamplona 9
  • 8. Introdução ao Photon Mapping Vitor F. Pamplona Courtesy of Hosuk Chang
  • 9. Photon Mapping na Indústria Pixar's Ratatouille, 2007. Copyright Vitor F. Pamplona H.W. Jensen e Per Christensen. High Quality Rendering Using Ray Tracing and Photon Mapping. Siggraph 2007 11
  • 10. Photon Mapping na Indústria Pixar's Ratatouille, 2007. Copyright Vitor F. Pamplona H.W. Jensen e Per Christensen. High Quality Rendering Using Ray Tracing and Photon Mapping. Siggraph 2007 12
  • 11. Photon Mapping na Indústria Pixar's Ratatouille, 2007. Copyright Vitor F. Pamplona H.W. Jensen e Per Christensen. High Quality Rendering Using Ray Tracing and Photon Mapping. Siggraph 2007 13
  • 12. Photon Mapping na Indústria Pixar's Ratatouille, 2007. Copyright Vitor F. Pamplona H.W. Jensen e Per Christensen. High Quality Rendering Using Ray Tracing and Photon Mapping. Siggraph 2007 14
  • 13. Photon Mapping na Indústria Pixar's Ratatouille, 2007. Copyright Vitor F. Pamplona H.W. Jensen e Per Christensen. High Quality Rendering Using Ray Tracing and Photon Mapping. Siggraph 2007 15
  • 14. Algoritmo de Photon Mapping ● Photon Tracing ● Emite fótons pelas fontes de luz ● Para cada intersecção com uma superfície difusa – Armazena-os numa estrutura de dados ● Path Tracing ● Para cada intersecção com uma superfície difusa – Consulta os fótons vizinhos ao ponto de intersecção – Soma a energia destes fótons – Aplica sobre a BRDF da superfície Copyright Vitor F. Pamplona H.W. Jensen 1986: Global Illumination using Photon Maps 16
  • 15. Algoritmo de Photon Mapping ● Photon Tracing ● Emite fótons pelas fontes de luz ● Para cada intersecção com uma superfície difusa – Armazena-os numa estrutura de dados ● Path Tracing ● Para cada intersecção com uma superfície difusa – Consulta os fótons vizinhos ao ponto de intersecção – Soma a energia destes fótons – Aplica sobre a BRDF da superfície Copyright Vitor F. Pamplona H.W. Jensen 1986: Global Illumination using Photon Maps 17
  • 16. Algoritmo de Photon Mapping ● Photon Tracing ● Emite fótons pelas fontes de luz ● Para cada intersecção com uma superfície difusa – Armazena-os numa estrutura de dados ● Path Tracing ● Para cada intersecção com uma superfície difusa – Estima a iluminação no ponto em função dos fótons vizinhos – Resolve a cor do pixel analisado Copyright Vitor F. Pamplona H.W. Jensen 1986: Global Illumination using Photon Maps 18
  • 17. Algoritmo de Photon Mapping ● Photon Tracing ● Emite fótons pelas fontes de luz ● Para cada intersecção com uma superfície difusa – Armazena-os numa estrutura de dados ● Path Tracing ● Para cada intersecção com uma superfície difusa – Estima a iluminação no ponto em função dos fótons vizinhos – Resolve a cor do pixel analisado Copyright Vitor F. Pamplona H.W. Jensen 1986: Global Illumination using Photon Maps 19
  • 18. Cena do Exemplo Copyright Vitor F. Pamplona 20
  • 19. Photon Tracing Luz Vidro Espelho Copyright Vitor F. Pamplona 21
  • 20. Photon Tracing Luz Lançar Fótons Vidro Espelho Copyright Vitor F. Pamplona 22
  • 21. Photon Tracing Luz Vidro Espelho Copyright Vitor F. Pamplona 23
  • 22. Photon Tracing Luz Roleta Russa Roleta Russa Vidro Espelho Copyright Vitor F. Pamplona 24
  • 23. Photon Tracing Luz Roleta Russa 1.0 Roleta Russa Roleta Russa 0.0 Vidro Espelho Copyright Vitor F. Pamplona 25
  • 24. Photon Tracing Luz Roleta Russa 1.0 Roleta Russa Roleta Russa 0.6 0.0 Vidro Espelho Copyright Vitor F. Pamplona 26
  • 25. Photon Tracing Luz Roleta Russa 1.0 Roleta Russa Roleta Russa 0.6 0.0 Vidro Espelho Copyright Vitor F. Pamplona 27
  • 26. Photon Tracing Luz Roleta Russa 1.0 Roleta Russa Roleta Russa 0.6 Reflete 0.0 Vidro Espelho Copyright Vitor F. Pamplona 28
  • 27. Photon Tracing Luz Roleta Russa 1.0 Roleta Russa Absorve Roleta Russa 0.6 Reflete 0.0 Vidro Espelho Copyright Vitor F. Pamplona 29
  • 28. Photon Tracing Luz Roleta Russa 1.0 Roleta Russa Absorve 0.6 Absorveu Reflete 0.0 N. Sorteado: 0.9 Vidro Espelho Copyright Vitor F. Pamplona 30
  • 29. Photon Tracing Luz Roleta Russa 1.0 Refletiu Absorve 0.6 Reflete 0.0 N. Sorteado: 0.1 Vidro Espelho Copyright Vitor F. Pamplona 31
  • 30. Photon Tracing Luz Roleta Russa Refletiu 1.0 Absorve 0.6 Reflete 0.0 N. Sorteado: 0.2 Vidro Espelho Copyright Vitor F. Pamplona 32
  • 31. Photon Tracing Luz Absorveu Roleta Russa Refletiu 1.0 Absorve 0.6 Reflete 0.0 N. Sorteado: 0.8 Vidro Espelho Copyright Vitor F. Pamplona 33
  • 32. Photon Tracing Luz Roleta Russa Vidro Espelho Copyright Vitor F. Pamplona 34
  • 33. Photon Tracing Luz Roleta Russa 1.0 0.0 Roleta Russa Vidro Espelho Copyright Vitor F. Pamplona 35
  • 34. Photon Tracing Luz Roleta Russa 1.0 0.95 0.0 Roleta Russa Vidro Espelho Copyright Vitor F. Pamplona 36
  • 35. Photon Tracing Luz Roleta Russa Absorve 1.0 0.95 Reflete 0.0 Roleta Russa Vidro Espelho Copyright Vitor F. Pamplona 37
  • 36. Photon Tracing Luz Roleta Russa Absorve 1.0 0.95 Reflete 0.0 N. Sorteado: 0.5 Roleta Russa Vidro Espelho Copyright Vitor F. Pamplona 38
  • 37. Photon Tracing Luz Roleta Russa Absorve 1.0 0.95 Reflete 0.0 N. Sorteado: 0.5 Refletiu Vidro Espelho Copyright Vitor F. Pamplona 39
  • 38. Photon Tracing Luz Roleta Russa Absorve 1.0 0.95 Reflete 0.0 N. Sorteado: 0.5 Refletiu Vidro Espelho Copyright Vitor F. Pamplona 40
  • 39. Photon Tracing Luz Refletiu Vidro Espelho Absorveu Copyright Vitor F. Pamplona 41
  • 40. Photon Tracing Luz Refletiu Vidro Espelho Copyright Vitor F. Pamplona 42
  • 41. Photon Tracing Luz Vidro Espelho Refletiu Copyright Vitor F. Pamplona 43
  • 42. Photon Tracing Luz Roleta Russa 1.0 0.0 Vidro Espelho Refletiu Copyright Vitor F. Pamplona 44
  • 43. Photon Tracing Luz Roleta Russa 1.0 0.8 0.0 Fresnel: 0.8 Vidro Espelho Refletiu Copyright Vitor F. Pamplona 45
  • 44. Photon Tracing Luz Roleta Russa Refrata 1.0 0.8 Reflete 0.0 Fresnel: 0.8 Vidro Espelho Refletiu Copyright Vitor F. Pamplona 46
  • 45. Photon Tracing Luz Roleta Russa Refrata 1.0 0.8 Reflete 0.0 Fresnel: 0.8 N. Sorteado: 0.5 Vidro Espelho Refletiu Copyright Vitor F. Pamplona 47
  • 46. Photon Tracing Luz Roleta Russa Refrata 1.0 0.8 Reflete 0.0 Fresnel: 0.8 N. Sorteado: 0.5 Vidro Espelho Refletiu Absorveu Copyright Vitor F. Pamplona 48
  • 47. Photon Tracing Luz Vidro Espelho Copyright Vitor F. Pamplona 49
  • 48. Photon Tracing Luz Roleta Russa 1.0 0.0 Vidro Espelho Copyright Vitor F. Pamplona 50
  • 49. Photon Tracing Luz Roleta Russa Refrata 1.0 0.7 Reflete 0.0 Fresnel: 0.7 Vidro Espelho Copyright Vitor F. Pamplona 51
  • 50. Photon Tracing Luz Roleta Russa Refrata 1.0 0.7 Reflete 0.0 Fresnel: 0.7 N. Sorteado: 0.9 Vidro Espelho Copyright Vitor F. Pamplona 52
  • 51. Photon Tracing Luz Refratou Vidro Espelho Copyright Vitor F. Pamplona 53
  • 52. Photon Tracing Luz Roleta Russa Refrata 1.0 0.7 Reflete 0.0 Fresnel: 0.7 Refratou N. Sorteado: 0.8 Vidro Espelho Copyright Vitor F. Pamplona 54
  • 53. Photon Tracing Luz Roleta Russa Refrata 1.0 0.7 Reflete 0.0 Fresnel: 0.7 N. Sorteado: 0.8 Vidro Espelho Refratou Absorveu Copyright Vitor F. Pamplona 55
  • 54. Photon Tracing Copyright Vitor F. Pamplona 56
  • 55. Iluminação Direta Copyright Vitor F. Pamplona 57
  • 56. Iluminação Indireta Copyright Vitor F. Pamplona 58
  • 57. Cáusticas Copyright Vitor F. Pamplona 59
  • 58. Algoritmo de Photon Mapping ● Photon Tracing ● Emite fótons pelas fontes de luz ● Para cada intersecção com uma superfície difusa – Armazena-os numa estrutura de dados ● Path Tracing ● Para cada intersecção com uma superfície difusa – Estima a iluminação no ponto em função dos fótons vizinhos – Resolve a cor do pixel analisado Copyright Vitor F. Pamplona H.W. Jensen 1986: Global Illumination using Photon Maps 60
  • 59. Path Tracing Vidro Espelho Copyright Vitor F. Pamplona 61
  • 60. Path Tracing Vidro Espelho Copyright Vitor F. Pamplona 62
  • 61. Path Tracing N=3 p3 p2 p1 x Vidro Espelho Copyright Vitor F. Pamplona 63
  • 62. Path Tracing N=3 p3 p2 p1 x V Vidro Espelho Copyright Vitor F. Pamplona 64
  • 63. Path Tracing N=3 p3 p2 p1 x V 3 ∑ E  pi  I x = i=1 V Vidro Espelho Copyright Vitor F. Pamplona 65
  • 64. Path Tracing N=3 Vidro Espelho Copyright Vitor F. Pamplona 66
  • 65. Path Tracing N=3 Vidro Espelho x Copyright Vitor F. Pamplona 67
  • 66. Path Tracing N=3 Vidro Espelho x Copyright Vitor F. Pamplona 68
  • 67. Path Tracing N=3 p1 Vidro Espelho x V p3 p2 Copyright Vitor F. Pamplona 69
  • 68. Path Tracing N=3 3 ∑ E  pi  I x = i=1 V p1 Vidro Espelho x V p3 p2 Copyright Vitor F. Pamplona 70
  • 69. Path Tracing N=3 Vidro Espelho x Copyright Vitor F. Pamplona 71
  • 70. Path Tracing N=3 Vidro Espelho x Copyright Vitor F. Pamplona 72
  • 71. Path Tracing N=3 Vidro Espelho Copyright Vitor F. Pamplona 73
  • 72. Path Tracing N=3 Vidro Espelho x Copyright Vitor F. Pamplona 74
  • 73. Path Tracing N=3 Vidro Espelho p1 p3 x p2 Copyright Vitor F. Pamplona 75
  • 74. Path Tracing N=3 3 ∑ E  pi  I x = i=1 V Vidro Espelho V p1 p3 x p2 Copyright Vitor F. Pamplona 76
  • 75. Path Tracing N=3 Vidro Espelho p1 p3 x p2 Copyright Vitor F. Pamplona 77
  • 76. Algoritmo de Photon Mapping ● Photon Tracing ● Emite fótons pelas fontes de luz ● Para cada intersecção com uma superfície difusa – Armazena-os numa estrutura de dados ● Path Tracing ● Para cada intersecção com uma superfície difusa – Estima a iluminação no ponto em função dos fótons vizinhos – Resolve a cor do pixel analisado Copyright Vitor F. Pamplona H.W. Jensen 1986: Global Illumination using Photon Maps 78
  • 77. Calculando a Radiância do Ponto X  x Copyright Vitor F. Pamplona 79
  • 78. Calculando a Radiância do Ponto X  x r Copyright Vitor F. Pamplona 80
  • 79. Calculando a Radiância do Ponto X N ∑ E  pi   I x = i=1 V x r Copyright Vitor F. Pamplona 81
  • 80. Calculando a Radiância do Ponto X N ∑ E  pi   I x = i=1 V x r Copyright Vitor F. Pamplona 82
  • 81. Calculando a Radiância do Ponto X N ∑ E  pi   I x = i=1 V x r N 1 I x  x , = 2 ∑ f r  x , ' i ,  pi   r i=1 BRDF Consulta ao Área do Photon Map Círculo Copyright Vitor F. Pamplona 83
  • 82. Calculando a Radiância do Ponto X N ∑ E  pi   I x = i=1 V x r N 1 I x  x , = 2 ∑ f r  x , ' i ,  pi   r i=1 BRDF Consulta ao Área do Photon Map Círculo Copyright Vitor F. Pamplona 84
  • 83. Calculando a Radiância do Ponto X N ∑ E  pi   I x = i=1 V x r N 1 I x  x , = 2 ∑ f r  x , ' i ,  pi   r i=1 BRDF Consulta ao Área do Photon Map Círculo Copyright Vitor F. Pamplona 85
  • 84. Calculando a Radiância do Ponto X N ∑ E  pi   I x = i=1 V x r N 1 I x  x , = 2 ∑ f r  x , ' i ,  pi   r i=1 BRDF Consulta ao Área do Photon Map Círculo Copyright Vitor F. Pamplona 86
  • 85. Calculando a Radiância do Ponto X N ∑ E  pi   I x = i=1 V x r N 1 I x  x , = 2 ∑ f r  x , ' i ,  pi   r i=1 BRDF Consulta ao Área do Photon Map Círculo Copyright Vitor F. Pamplona 87
  • 86. Resultado Copyright Vitor F. Pamplona 88
  • 87. Algoritmo de Photon Mapping ● Photon Tracing ● Emite fótons pelas fontes de luz ● Para cada intersecção com uma superfície difusa – Armazena-os numa estrutura de dados ● Path Tracing ● Para cada intersecção com uma superfície difusa – Estima a iluminação no ponto em função dos fótons vizinhos – Resolve a cor do pixel analisado Copyright Vitor F. Pamplona H.W. Jensen 1986: Global Illumination using Photon Maps 89
  • 88. Estrutura de Dados Espacial: Kd-Tree ● Árvore binária Copyright Vitor F. Pamplona 90
  • 89. Estrutura de Dados Espacial: Kd-Tree ● Árvore binária p2 p1 p3 p4 Copyright Vitor F. Pamplona 91
  • 90. Estrutura de Dados Espacial: Kd-Tree ● Árvore binária p2 p1 p3 p4 Copyright Vitor F. Pamplona 92
  • 91. Estrutura de Dados Espacial: Kd-Tree ● Árvore binária p2 p1 p3 p4 Copyright Vitor F. Pamplona 93
  • 92. Estrutura de Dados Espacial: Kd-Tree ● Árvore binária p2 L1 p1 p3 p4 Copyright Vitor F. Pamplona 94
  • 93. Estrutura de Dados Espacial: Kd-Tree ● Árvore binária p2 L1 p1 p3 p4 Copyright Vitor F. Pamplona 95
  • 94. Estrutura de Dados Espacial: Kd-Tree ● Árvore binária p2 L1 p1 p3 p4 Copyright Vitor F. Pamplona 96
  • 95. Estrutura de Dados Espacial: Kd-Tree ● Árvore binária p2 L1 p1 p3 L2 p4 Copyright Vitor F. Pamplona 97
  • 96. Estrutura de Dados Espacial: Kd-Tree ● Árvore binária p2 L1 p1 p3 L2 p1 p2 p4 Copyright Vitor F. Pamplona 98
  • 97. Estrutura de Dados Espacial: Kd-Tree ● Árvore binária p2 L1 p1 p3 L2 p1 p2 p4 Copyright Vitor F. Pamplona 99
  • 98. Estrutura de Dados Espacial: Kd-Tree ● Árvore binária p2 L1 p1 p3 L2 p1 p2 p4 Copyright Vitor F. Pamplona 100
  • 99. Estrutura de Dados Espacial: Kd-Tree ● Árvore binária p2 L1 p1 p3 L2 L3 p1 p2 p4 Copyright Vitor F. Pamplona 101
  • 100. Estrutura de Dados Espacial: Kd-Tree ● Árvore binária p2 L1 p1 p3 L2 L3 p1 p2 p3 p4 p4 Copyright Vitor F. Pamplona 102
  • 101. Estrutura de Dados Espacial: Kd-Tree ● Pesquisa pelos 2 vizinhos mais próximos p2 L1 p1 p3 L2 L3 p1 p2 p3 p4 x p4 Copyright Vitor F. Pamplona 103
  • 102. Estrutura de Dados Espacial: Kd-Tree ● Pesquisa pelos 2 vizinhos mais próximos p2 L1 p1 p3 L2 L3 p1 p2 p3 p4 x p4 Copyright Vitor F. Pamplona 104
  • 103. Estrutura de Dados Espacial: Kd-Tree ● Pesquisa pelos 2 vizinhos mais próximos p2 L1 p1 p3 L2 L3 p1 p2 p3 p4 x p4 Copyright Vitor F. Pamplona 105
  • 104. Estrutura de Dados Espacial: Kd-Tree ● Pesquisa pelos 2 vizinhos mais próximos p2 L1 p1 p3 L2 L3 p1 p2 p3 p4 x p4 Mais próximos: p4 Copyright Vitor F. Pamplona 106
  • 105. Estrutura de Dados Espacial: Kd-Tree ● Pesquisa pelos 2 vizinhos mais próximos p2 L1 p1 p3 L2 L3 p1 p2 p3 p4 x p4 Mais próximos: p4 Copyright Vitor F. Pamplona 107
  • 106. Estrutura de Dados Espacial: Kd-Tree ● Pesquisa pelos 2 vizinhos mais próximos p2 L1 p1 p3 L2 L3 p1 p2 p3 p4 x p4 Mais próximos: p4, p3 Copyright Vitor F. Pamplona 108
  • 107. Estrutura de Dados Espacial: Kd-Tree ● Pesquisa pelos 2 vizinhos mais próximos p2 L1 p1 p3 L2 L3 p1 p2 p3 p4 x p4 Mais próximos: p4, p3 Copyright Vitor F. Pamplona 109
  • 108. Estrutura de Dados Espacial: Kd-Tree ● Pesquisa pelos 2 vizinhos mais próximos p2 L1 p1 p3 L2 L3 p1 p2 p3 p4 x p4 Mais próximos: p4, p3 Copyright Vitor F. Pamplona 110
  • 109. Estrutura de Dados Espacial: Kd-Tree ● Pesquisa pelos 2 vizinhos mais próximos p2 L1 p1 p3 L2 L3 p1 p2 p3 p4 x p4 Mais próximos: p4, p3 Copyright Vitor F. Pamplona 111
  • 110. Armazenamento em 3D p2 p4 p3 p1 p5 p9 p8 p6 p7 Copyright Vitor F. Pamplona 112
  • 111. Armazenamento em 3D p2 p4 p3 p1 p5 p9 p8 p6 p7 Copyright Vitor F. Pamplona 113
  • 112. Armazenamento em 3D p2 p4 p3 p1 p5 p9 p8 p6 p7 Copyright Vitor F. Pamplona 114
  • 113. Armazenamento em 3D p2 p4 p3 p1 p5 p9 p8 p6 p7 Copyright Vitor F. Pamplona 115
  • 114. Armazenamento em 3D p2 p4 p3 p1 p5 p9 p8 p6 p7 Copyright Vitor F. Pamplona 116
  • 115. Armazenamento em 3D p2 p4 p3 p1 p5 p9 p8 p6 p7 Copyright Vitor F. Pamplona 117
  • 116. Armazenamento em 3D p2 p4 p3 p1 p5 p9 p8 p6 p7 Copyright Vitor F. Pamplona 118
  • 117. Armazenamento em 3D p2 p4 p3 p1 p5 p9 p8 p6 p7 Copyright Vitor F. Pamplona 119
  • 118. Armazenamento em 3D p2 p4 p3 p1 p5 p9 p8 p6 p7 Copyright Vitor F. Pamplona 120
  • 119. Mapa de Fótons L2 L1 p2 L8 p4 L4 p3 L2 L3 L5 p1 L4 L5 L6 L7 p5 p1 p2 P3 L8 p6 p7 p8 p9 L1 p4 p5 L7 L6 L3 p9 p8 p6 p7 Copyright Vitor F. Pamplona 121
  • 120. Parâmetros do Photon Mapping ● Quantidade de fótons ● Quanto maior o número de fótons, menos artefatos Copyright Vitor F. Pamplona 122
  • 121. Parâmetros do Photon Mapping ● Quantidade de fótons ● Quanto maior o número de fótons, menos artefatos Milhares de Fótons Milhões de Fótons Copyright Vitor F. Pamplona 123
  • 122. Parâmetros do Photon Mapping ● Quantidade de fótons ● Quanto maior o número de fótons, menos artefatos ● Número de fótons vizinhos a integrar (N) ● Quanto maior, mais suave serão as variações de iluminação Copyright Vitor F. Pamplona 124
  • 123. Parâmetros do Photon Mapping ● Quantidade de fótons ● Quanto maior o número de fótons, menos artefatos ● Número de fótons vizinhos a integrar (N) ● Quanto maior, mais suave serão as variações de iluminação N = 100 N = 20.000 Copyright Vitor F. Pamplona 125
  • 124. Photon Mapping: Prós ● Performance independe do número de pixels da imagem ● Apenas 1 raio por pixel no Path Tracing Copyright Vitor F. Pamplona 126
  • 125. Photon Mapping: Prós ● Performance independe do número de pixels da imagem ● Apenas 1 raio por pixel no Path Tracing ● Suporta vários materiais ● Superfícies difusas, refletivas e transparentes ● Subsurface scattering Copyright Vitor F. Pamplona 127
  • 126. Photon Mapping: Prós ● Performance independe do número de pixels da imagem ● Apenas 1 raio por pixel no Path Tracing ● Suporta vários materiais ● Superfícies difusas, refletivas e transparentes ● Participating media ● Subsurface scattering Copyright Vitor F. Pamplona 128
  • 127. Photon Mapping: Prós ● Performance independe do número de pixels da imagem ● Apenas 1 raio por pixel no Path Tracing ● Suporta vários materiais ● Superfícies difusas, refletivas e transparentes ● Participating media ● Subsurface scattering Copyright Vitor F. Pamplona 129
  • 128. Photon Mapping: Prós ● Performance independe do número de pixels da imagem ● Apenas 1 raio por pixel no Path Tracing ● Suporta vários materiais ● Superfícies difusas, refletivas e transparentes ● Subsurface scattering ● Participating media Copyright Vitor F. Pamplona 130
  • 129. Photon Mapping: Prós ● Performance independe do número de pixels da imagem ● Apenas 1 raio por pixel no Path Tracing ● Suporta vários materiais ● Superfícies difusas, refletivas e transparentes ● Subsurface scattering ● Participating media Copyright Vitor F. Pamplona 131
  • 130. Photon Mapping: Prós ● Performance independe do número de pixels da imagem ● Apenas 1 raio por pixel no Path Tracing ● Suporta vários materiais ● Superfícies difusas, refletivas e transparentes ● Subsurface scattering ● Participating media Copyright Vitor F. Pamplona 132
  • 131. Photon Mapping: Prós ● Performance independe do número de pixels da imagem ● Apenas 1 raio por pixel no Path Tracing ● Suporta vários materiais ● Superfícies difusas, refletivas e transparentes ● Subsurface scattering ● Participating media ● Suporta spectral rendering Copyright Vitor F. Pamplona 133
  • 132. Photon Mapping: Prós ● Performance independe do número de pixels da imagem ● Apenas 1 raio por pixel no Path Tracing ● Suporta vários materiais ● Superfícies difusas, refletivas e transparentes ● Subsurface scattering ● Participating media ● Suporta spectral rendering Samuel Boivin Copyright Vitor F. Pamplona http://www.dgp.toronto.edu/~boivin/PostDoc/index.htm 134
  • 133. Photon Mapping: Prós ● Performance independe do número de pixels da imagem ● Apenas 1 raio por pixel no Path Tracing ● Suporta vários materiais ● Superfícies difusas, refletivas e transparentes ● Subsurface scattering ● Participating media ● Suporta spectral rendering ● Suavização do ruído inerente dos métodos de ray tracing Copyright Vitor F. Pamplona 135
  • 134. Photon Mapping: Prós ● Performance independe do número de pixels da imagem ● Apenas 1 raio por pixel no Path Tracing ● Suporta vários materiais ● Superfícies difusas, refletivas e transparentes ● Subsurface scattering ● Participating media ● Suporta spectral rendering ● Suavização do ruído inerente dos métodos de ray tracing Copyright Vitor F. Pamplona 136
  • 135. Photon Mapping: Prós ● Performance independe do número de pixels da imagem ● Apenas 1 raio por pixel no Path Tracing ● Suporta vários materiais ● Superfícies difusas, refletivas e transparentes ● Subsurface scattering ● Participating media ● Suporta spectral rendering ● Suavização do ruído inerente dos métodos de ray tracing ● Se acopla facilmente nas implementações de ray tracing Copyright Vitor F. Pamplona 137
  • 136. Photon Mapping: Contras ● Alto uso de memória ● Baixa performance com muitas fontes de luz ● Kd-trees muito grandes ● Parâmetros devem ser escolhidos com cuidado ● Não executa em tempo real Copyright Vitor F. Pamplona 138
  • 137. Sumário: Photon Mapping ● Modelos de iluminação global ● Ray Tracing ● Radiosidade ● Photon Mapping ● Photon Tracing – Emite fótons pelas fontes de luz – Armazena-os numa estrutura de dados ● Path tracing – Consulta os fótons vizinhos ao ponto de intersecção – Resolve a cor do pixel analisado Copyright Vitor F. Pamplona H.W. Jensen 1986: Global Illumination using Photon Maps 139
  • 138. Obrigado, perguntas? Vitor F. Pamplona Courtesy of Hosuk Chang