Mais conteúdo relacionado Semelhante a The SGGX Microflake Distribution 実装 (17) Mais de Takashi Imagire (13) The SGGX Microflake Distribution 実装3. The SGGX Microflake Distribution
• SIGGRAPH 2015
– Eric Heitz (Karlsruhe Institute of Technology, NVIDIA)
– Jonathan Dupuy (Univ. Montr´eal; LIRIS, Univ. Lyon 1)
– Cyril Crassin (NVIDIA)
– Carsten Dachsbacher (Karlsruhe Institute of
Technology)
• 論文の日本語訳
– https://github.com/imagire/SGGX_jp
7. GGX
)()(,)()( iiiiooipo QdLfL
)()()1()( oi
spec
poi
diff
poip fmfmf
)(
)( oi
oi
diff
pf
oi
oi
spec
p
nn
GDF
f
,,4
)(
hFFF o ,1)1( 00
2
22
2
11,
hn
D
)()( 0 iGGXGGX GGG
222
,1,
,2
)(
nn
n
GGGX
)),(,0max(,
:Schlick近似のフレネル
(h:ハーフベクトル, F0:正面反射率)
:法線分布関数 (α:粗さ)
拡散反射:
鏡面反射:
こんな近似項を
使うのがGGX
(m:金属度合い)
10. 実装方法
• パストレーサー「smallpt: Global Illumination in
99 lines of C++」を拡張
– http://www.kevinbeason.com/smallpt/
• パスの衝突検知の際に、検知したレイがボ
リュームデータのAABB
と交差するか調べ、
交差したら、ボリューム
データの寄与を付与
– ボリュームデータ分解能
から、各ボクセルへの
交差位置を計算
– 確率的に入射レイの追加
12. 実装方法
• 新たに考えなくてはならない部分
はほとんどない
– The SGGX Microflake Distribution
Supplemental Material
• 非常に多くの係数がコード付きで掲載
– https://drive.google.com/file/d/0BzvWIdpUp
Rx_djVyMG9jMnltdTg/view?usp=sharing
– GitHub (zhangwengame/SGGX-
Plugin-for-Mitsuba)
• 動くコードが存在(今回は未参照)
)())()(1(
4
)( 0
ioi
s
oi
Dslt
l
o
Lfrmfrm
lt
e
LeL
s
s
散乱確率
15. σx 1 1 ff ff ff ff 1 ff 80 80 ff ff ff ff 80 ff
σy 1 ff 1 ff ff 1 ff ff 80 ff 80 ff ff 80 ff ff
σz ff 1 1 ff 1 ff ff ff ff 80 80 ff 80 ff ff ff
空間的変化のある散乱係数
19. ありがとうございました
• 本家資料
– 論文
• https://drive.google.com/file/d/0BzvWIdpUpRx_dXJIMk9rdEdrd00/view?usp=sharing
– 補足資料
• https://drive.google.com/file/d/0BzvWIdpUpRx_djVyMG9jMnltdTg/view?usp=sharing
– Mitsubaレンダラ用プラグインソースコード
• https://github.com/zhangwengame/SGGX-Plugin-for-Mitsuba
– 登壇スライド
• https://drive.google.com/file/d/0BzvWIdpUpRx_SDZnYWJYRDg3VWM/view
• 今回向けの資料
– 前回のセッション資料
• http://www.slideshare.net/imagire/sggx
– 論文の日本語訳
• https://github.com/imagire/SGGX_jp
– 実装ソースコード
• https://github.com/imagire/sggx_impl