O documento descreve o algoritmo de Photon Mapping para simulação de iluminação global. O algoritmo consiste de duas etapas: (1) Photon Tracing, onde fótons são lançados pelas fontes de luz e armazenados em uma estrutura de dados espacial (Kd-tree); (2) Path Tracing, onde para cada ponto na cena a radiancia é calculada consultando os fótons armazenados próximos. A estrutura Kd-tree permite pesquisar os vizinhos mais próximos eficientemente.
1. Algoritmo de Photon Mapping
Vitor F. Pamplona
Imagem extraída de H.W. Jensen 1986: Global Illumination using Photon Maps
2. Relembrando
x
Luz emitida
Lo x , = Le x ,
∫ f r x , ' , Li x , ' −'⋅n d '
BRDF Luz Chegando Atenuação
Copyright Vitor F. Pamplona 4
3. Relembrando
x
Luz emitida
Lo x , = Le x ,
∫ f r x , ' , Li x , ' −'⋅n d '
BRDF Luz Chegando Atenuação
Copyright Vitor F. Pamplona 5
4. Relembrando
'
x
Luz emitida
Lo x , = Le x ,
∫ f r x , ' , Li x , ' −'⋅n d '
BRDF Luz chegando Atenuação
Copyright Vitor F. Pamplona 6
5. Relembrando
'
x
Luz emitida
Lo x , = Le x ,
∫ f r x , ' , Li x , ' −'⋅n d '
BRDF Luz chegando Atenuação
Copyright Vitor F. Pamplona 7
6. Relembrando
'
x
Luz emitida
Lo x , = Le x ,
∫ f r x , ' , Li x , ' −'⋅n d '
BRDF Luz chegando Atenuação
Kajiya, James T.Copyright Vitor F. Pamplona
(1986). The rendering equation. Siggraph 1986 8
7. Nosso problema
'
x
Luz emitida
Lo x , = Le x ,
∫ f r x , ' , Li x , ' −'⋅n d '
BRDF Luz chegando Atenuação
Copyright Vitor F. Pamplona 9
8. Path Tracing
Kajiya, James T.Copyright Vitor F. Pamplona
(1986). The rendering equation. Siggraph 1986 10
9. Path Tracing
Kajiya, James T.Copyright Vitor F. Pamplona
(1986). The rendering equation. Siggraph 1986 11
10. Path Tracing
Kajiya, James T.Copyright Vitor F. Pamplona
(1986). The rendering equation. Siggraph 1986 12
11. Path Tracing
Kajiya, James T.Copyright Vitor F. Pamplona
(1986). The rendering equation. Siggraph 1986 13
12. Path Tracing
Kajiya, James T.Copyright Vitor F. Pamplona
(1986). The rendering equation. Siggraph 1986 14
13. Path Tracing
Kajiya, James T.Copyright Vitor F. Pamplona
(1986). The rendering equation. Siggraph 1986 15
14. Path Tracing
Kajiya, James T.Copyright Vitor F. Pamplona
(1986). The rendering equation. Siggraph 1986 16
15. Path Tracing
Kajiya, James T.Copyright Vitor F. Pamplona
(1986). The rendering equation. Siggraph 1986 17
17. Algoritmo de Photon Mapping
● Photon Tracing
● Emissão de fótons pelas fontes de luz
● Armazenando numa estrutura de dados
● Path tracing
● Para cada superfície difusa
– Consulta os fótons armazenados
– Soma a radiância local
– Aplica na equação de rendering
Copyright Vitor F. Pamplona 19
18. Algoritmo de Photon Mapping
● Photon Tracing
● Emissão de fótons pelas fontes de luz
● Armazenando numa estrutura de dados
● Path tracing
● Para cada superfície difusa
– Consulta os fótons armazenados
– Soma a radiância local
– Aplica na equação de rendering
Copyright Vitor F. Pamplona 20
34. Algoritmo de Photon Mapping
● Photon Tracing
● Emissão de fótons pelas fontes de luz
● Armazenando numa estrutura de dados
● Path tracing
● Para cada superfície difusa
– Consulta os fótons armazenados
– Soma a radiância local
– Aplica na equação de rendering
Copyright Vitor F. Pamplona 36
35. Path Tracing
Vidro
Espelho
Copyright Vitor F. Pamplona 37
36. Path Tracing
Vidro
Espelho
Copyright Vitor F. Pamplona 38
37. Path Tracing N=3
p3
p2
p1
x
Vidro
Espelho
Copyright Vitor F. Pamplona 39
38. Path Tracing N=3
p3
p2
p1
x
V
Vidro
Espelho
Copyright Vitor F. Pamplona 40
39. Path Tracing N=3
p3
p2
p1
x
V
3
∑ E pi
I x = i=1
V
Vidro
Espelho
Copyright Vitor F. Pamplona 41
40. Path Tracing N=3
Vidro
Espelho
x
Copyright Vitor F. Pamplona 42
41. Path Tracing N=3
p2
Vidro
Espelho
p1
p3
x
Copyright Vitor F. Pamplona 43
42. Path Tracing N=3
3
∑ E pi
I x = i=1
V
p2
Vidro
Espelho V
p1
p3
x
Copyright Vitor F. Pamplona 44
50. Path Tracing N=3
Vidro
Espelho
x
Copyright Vitor F. Pamplona 52
51. Path Tracing N=3
Vidro
Espelho
p1
p3 x p2
Copyright Vitor F. Pamplona 53
52. Path Tracing N=3
3
∑ E pi
I x = i=1
V
Vidro
Espelho
p1
p3 x p2
V
Copyright Vitor F. Pamplona 54
53. Path Tracing N=3
Vidro
Espelho
p1
p3 x p2
Copyright Vitor F. Pamplona 55
54. Algoritmo de Photon Mapping
● Photon Tracing
● Emissão de fótons pelas fontes de luz
● Armazenando numa estrutura de dados
● Path tracing
● Para cada superfície difusa
– Consulta os fótons armazenados
– Soma a radiância local
– Aplica na equação de rendering
Copyright Vitor F. Pamplona 56
55. Algoritmo de Photon Mapping
● Photon Tracing
● Emissão de fótons pelas fontes de luz
● Armazenando numa estrutura de dados
● Path tracing
● Para cada superfície difusa
– Consulta os fótons armazenados
– Soma a radiância local
– Aplica na equação de rendering
Copyright Vitor F. Pamplona 57
56. Estrutura de Dados Espacial: Kd-Tree
● Árvore binária
Copyright Vitor F. Pamplona 58
57. Estrutura de Dados Espacial: Kd-Tree
● Árvore binária
p2
p1
p3
p4
Copyright Vitor F. Pamplona 59
58. Estrutura de Dados Espacial: Kd-Tree
● Árvore binária
p2
L1
p1
p3
p4
Copyright Vitor F. Pamplona 60
59. Estrutura de Dados Espacial: Kd-Tree
● Árvore binária
p2
L1
p1
p3
L2
p4
Copyright Vitor F. Pamplona 61
60. Estrutura de Dados Espacial: Kd-Tree
● Árvore binária
p2
L1
p1
p3
L2
p1 p2 p4
Copyright Vitor F. Pamplona 62
61. Estrutura de Dados Espacial: Kd-Tree
● Árvore binária
p2
L1
p1
p3
L2 L3
p1 p2 p4
Copyright Vitor F. Pamplona 63
62. Estrutura de Dados Espacial: Kd-Tree
● Árvore binária
p2
L1
p1
p3
L2 L3
p1 p2 p3 p4 p4
Copyright Vitor F. Pamplona 64
63. 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 65
64. 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 66
65. 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 67
66. 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 68
67. 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 69
68. 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 70
69. 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 71
70. Armazenamento em 3D
p2
p4
p3
p1
p5
p6
p9 p8
p7
Copyright Vitor F. Pamplona 72
71. Armazenamento em 3D
p2
p4
p3
p1
p5
p6
p9 p8
p7
Copyright Vitor F. Pamplona 73
72. Armazenamento em 3D
p2
p4
p3
p1
p5
p6
p9 p8
p7
Copyright Vitor F. Pamplona 74
73. Armazenamento em 3D
p2
p4
p3
p1
p5
p6
p9 p8
p7
Copyright Vitor F. Pamplona 75
74. Armazenamento em 3D
p2
p4
p3
p1
p5
p6
p9 p8
p7
Copyright Vitor F. Pamplona 76
76. Algoritmo de Photon Mapping
● Photon Tracing
● Emissão de fótons pelas fontes de luz
● Armazenando numa estrutura de dados
● Path tracing
● Para cada superfície difusa
– Consulta os fótons armazenados
– Soma a radiância local
– Aplica na equação de rendering
Copyright Vitor F. Pamplona 78
77. Algoritmo de Photon Mapping
● Photon Tracing
● Emissão de fótons pelas fontes de luz
● Armazenando numa estrutura de dados
● Path tracing
● Para cada superfície difusa
– Consulta os fótons armazenados
– Soma a radiância local
– Aplica na equação de rendering
Copyright Vitor F. Pamplona 79
78. Equação de Rendering
'
x
Luz emitida
Lo x , = Le x ,
∫ f r x , ' , Li x , ' − '⋅n d '
BRDF Luz chegando Atenuação
Copyright Vitor F. Pamplona 80
79. Equação de Rendering e Mapa de Fótons
'
x
∫ f r x , ' , Li x , ' −'⋅n d '
BRDF Luz chegando Atenuação
Copyright Vitor F. Pamplona 81
80. Equação de Rendering e Mapa de Fótons
'
Photon Tracing
x
∫ f r x , ' , Li x , ' −'⋅n d '
BRDF Luz chegando Atenuação
Copyright Vitor F. Pamplona 82
81. Equação de Rendering e Mapa de Fótons
x
∫ f r x , ' , Li x , ' −'⋅n d '
BRDF Luz chegando Atenuação
Copyright Vitor F. Pamplona 83
82. Equação de Rendering e Mapa de Fótons
N
∑ E pi
I x = i=1
V
x
∫ f r x , ' , Li x , ' −'⋅n d '
BRDF Luz chegando Atenuação
Copyright Vitor F. Pamplona 84
83. Equação de Rendering e Mapa de Fótons
N
∑ E pi
I x = i=1
V
x Fluxo
∫ f r x , ' , Li x , ' −'⋅n d '
BRDF Luz chegando Atenuação
Copyright Vitor F. Pamplona 85
84. Equação de Rendering e Mapa de Fótons
N
∑ E pi
I x = i=1
V
x Fluxo =
dE
dt
∫ f r x , ' , Li x , ' −'⋅n d '
BRDF Luz chegando Atenuação
Copyright Vitor F. Pamplona 86
85. Equação de Rendering e Mapa de Fótons
N
∑ E pi
I x = i=1
V
x Fluxo
∫ f r x , ' , Li x , ' −'⋅n d '
BRDF Luz chegando Atenuação
Copyright Vitor F. Pamplona 87
86. Equação de Rendering e Mapa de Fótons
N
∑ E pi
I x = i=1
V
x Fluxo
∫ f r x , ' , Li x , ' −'⋅n d '
BRDF Radiância Atenuação
Copyright Vitor F. Pamplona 88
87. Equação de Rendering e Mapa de Fótons
N
∑ E pi
I x = i=1
V
2
x
d x ,− ' Fluxo
L x , ' =
− '⋅n d ' dA
∫ f r x , ' , Li x , ' −'⋅n d '
BRDF Radiância Atenuação
Copyright Vitor F. Pamplona 89
88. Equação de Rendering e Mapa de Fótons
N
∑ E pi
I x = i=1
V
2
x
d x ,− ' Fluxo
L x , ' =
− '⋅n d ' dA
2
d x ,− '
∫ f r x , ' , −'⋅n d '
−'⋅n d ' dA Atenuação
BRDF
Radiância
Copyright Vitor F. Pamplona 90
89. Equação de Rendering e Mapa de Fótons
N
∑ E pi
I x = i=1
V
x Fluxo
2
d x ,− '
∫ f r x , ' , −'⋅n d '
−'⋅n d ' dA Atenuação
BRDF
Radiância
Copyright Vitor F. Pamplona 91
90. Equação de Rendering e Mapa de Fótons
N
∑ E pi
I x = i=1
V
x Fluxo
2
d x ,− '
∫ f r x , ' , −'⋅n d '
−'⋅n d ' dA Atenuação
BRDF
Radiância
Copyright Vitor F. Pamplona 92
91. Equação de Rendering e Mapa de Fótons
N
∑ E pi
I x = i=1
V
x Fluxo
2
d x ,− '
∫ f r x , ' ,
−'⋅n d ' dA
BRDF
Radiância
Copyright Vitor F. Pamplona 93
92. Equação de Rendering e Mapa de Fótons
N
∑ E pi
I x = i=1
V
x Fluxo
2
d x ,− '
∫ f r x , ' ,
dA
BRDF
Radiância
Copyright Vitor F. Pamplona 94
93. Equação de Rendering e Mapa de Fótons
N
∑ E pi
I x = i=1
V
x
Consulta ao
Photon Map
2
d x ,− '
∫ f r x , ' ,
dA
BRDF
Radiância
Copyright Vitor F. Pamplona 95
94. Equação de Rendering e Mapa de Fótons
N
∑ E pi
I x = i=1
V
x
Consulta ao
Photon Map
2
d x ,− '
∫ f r x , ' ,
dA
BRDF
Radiância
Copyright Vitor F. Pamplona 96
95. Equação de Rendering e Mapa de Fótons
N
∑ E pi
I x = i=1
V
x
Consulta ao
Photon Map
N 2
d x ,−'
∑ f r x , ' ,
dA
i=1 BRDF
Radiância
Copyright Vitor F. Pamplona 97
96. Equação de Rendering e Mapa de Fótons
N
∑ E pi
I x = i=1
V
x
Consulta ao
Photon Map
N 2
d x ,−'
∑ f r x , ' ,
dA
i=1 BRDF
Radiância
Copyright Vitor F. Pamplona 98
97. Equação de Rendering e Mapa de Fótons
N
∑ E pi
I x = i=1
V
x
Consulta ao
Photon Map
N 2
d x ,−'
∑ f r x , ' ,
r
2
i=1 BRDF
Radiância
Copyright Vitor F. Pamplona 99
98. Equação de Rendering e Mapa de Fótons
N
∑ E pi
I x = i=1
V
Fótons estão sempre
sobre uma superfície
x
Consulta ao
Photon Map
N 2
d x ,−'
∑ f r x , ' ,
r
2
i=1 BRDF
Radiância
Copyright Vitor F. Pamplona 100
99. Equação de Rendering e Mapa de Fótons
N
∑ E pi
I x = i=1
V
Fótons estão sempre
sobre uma superfície
x Com mais fótons o
círculo de coleta diminui
aproximando uma
Consulta ao
superfície plana
Photon Map
N 2
d x ,−'
∑ f r x , ' ,
r
2
i=1 BRDF
Radiância
Copyright Vitor F. Pamplona 101
100. Equação de Rendering e Mapa de Fótons
x
Consulta ao
Photon Map
N 2
d x ,−'
∑ f r x , ' ,
r
2
i=1 BRDF
Radiância
Copyright Vitor F. Pamplona 102
101. Equação de Rendering e Mapa de Fótons
x
Consulta ao
Photon Map
N 2
d x ,−'
∑ f r x , ' ,
r
2
i=1 BRDF
Radiância
Copyright Vitor F. Pamplona 103
102. Acabou?
Lo x , = Le x ,
N 2
d x ,−'
∑ f r x , ' , 2
i=1 r
Copyright Vitor F. Pamplona 104
103. Acabou?
Lo x , = Le x ,
N 2
d x ,−'
∑ f r x , ' , 2
i=1 r
Copyright Vitor F. Pamplona 105
104. Tipos de Fótons
Difusa
Luz
Refletiva
Transparente
Copyright Vitor F. Pamplona 106
105. Tipos de Fótons
Iluminação
Direta Difusa
Luz
Refletiva
Iluminação
Transparente
Direta
Copyright Vitor F. Pamplona 107
106. Tipos de Fótons
Iluminação
Direta Difusa
Luz
Refletiva
Iluminação
Transparente
Direta
Copyright Vitor F. Pamplona 108
107. Tipos de Fótons
Iluminação
Direta Difusa
Luz
Refletiva
Iluminação
Transparente
Direta
Copyright Vitor F. Pamplona 109
108. Tipos de Fótons
Iluminação
Indireta
Iluminação
Direta Difusa
Luz
Refletiva
Iluminação
Transparente
Direta
Copyright Vitor F. Pamplona 110
109. Tipos de Fótons
Iluminação
Indireta
Iluminação
Direta Difusa
Luz
Refletiva
Iluminação
Transparente
Direta
Copyright Vitor F. Pamplona 111
110. Tipos de Fótons
Iluminação
Indireta
Iluminação
Direta Difusa
Luz
Refletiva
Iluminação
Transparente
Direta
Copyright Vitor F. Pamplona 112
111. Tipos de Fótons
Iluminação
Indireta
Iluminação
Direta Difusa
Luz Cáusticas
Refletiva
Iluminação
Transparente
Direta
Copyright Vitor F. Pamplona 113
112. Tipos de Fótons
Iluminação
Indireta
Iluminação
Direta Difusa
Luz Cáusticas
Refletiva
Iluminação
Transparente
Direta
Copyright Vitor F. Pamplona 114
122. Resultado com Poucos Fótons
Parâmetros
Círculos na cena
Direto: 100.000
Indireto: 100.000
Cáusticas: 200.000
N: 100
Artefatos
Sombras suaves
Copyright Vitor F. Pamplona 124
123. Resultado com Muitos Fótons
Parâmetros
Direto: 2.000.000
Indireto: 30.000.000
Cáusticas: 200.000
N: 20.000
Copyright Vitor F. Pamplona 125
124. Parâmetros do Photon Mapping
● Quantidade de fótons para cada mapa
● Quanto maior o número de fótons, menos artefatos
● Deve-se estimar uma boa proporção de fótons
Copyright Vitor F. Pamplona 126
125. Parâmetros do Photon Mapping
● Quantidade de fótons para cada mapa
● Quanto maior o número de fótons, menos artefatos
● Deve-se estimar uma boa proporção de fótons
Milhares de Fótons Milhões de Fótons
Copyright Vitor F. Pamplona 127
126. Parâmetros do Photon Mapping
● Quantidade de fótons para cada mapa
● Quanto maior o número de fótons, menos artefatos
● Deve-se estimar uma boa proporção de fótons
● 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 128
127. Parâmetros do Photon Mapping
● Quantidade de fótons para cada mapa
● Quanto maior o número de fótons, menos artefatos
● Deve-se estimar uma boa proporção de fótons
● 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 129
128. 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 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 não lambertianas,
● Superfícies refletivas e transparentes
● Participating media e subsurface scattering
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 não lambertianas,
● Superfícies refletivas e transparentes
● Participating media e subsurface scattering
● Suporta spectral rendering
● Suavização do ruído inerente dos métodos de Monte Carlo
● Se acopla facilmente nas implementações de ray tracing
Copyright Vitor F. Pamplona 132
131. Photon Mapping: Contras
● Alto uso de memória
● Baixa performance com muitas fontes de luz
● Kd-trees muito grandes
● Parâmetros são escolhidos arbitrariamente
● Não executa em tempo real
Copyright Vitor F. Pamplona 133
132. Sumário
● Algoritmo de Photon Mapping
● Photon tracing
● Path tracing
● Estrutura de dados espacial (Kd-tree)
● A adaptação da equação de rendering
● Tipos de iluminação e os mapas de fótons
● Parâmetros a arbitrar
● Prós e Contras do Algoritmo
Copyright Vitor F. Pamplona 142
133. Obrigado, perguntas?
Vitor F. Pamplona
Imagem extraída de H.W. Jensen 1986: Global Illumination using Photon Maps