O documento apresenta os principais conceitos do método de mapeamento de fótons para iluminação global. Primeiramente, fótons são lançados pelas fontes de luz na cena e armazenados em uma estrutura de dados quando atingem superfícies difusas. Posteriormente, durante o traçado de caminhos, a iluminação em cada ponto é estimada com base nos fótons vizinhos armazenados, resolvendo a cor final do pixel. O mapeamento de fótons permite simular efeitos complexos de iluminação indireta e
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
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
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
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
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
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
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