Upload
takashi-imagire
View
1.237
Download
0
Embed Size (px)
Citation preview
The SGGX Microflake Distribution 実装
株式会社セガゲームス
今給黎 隆
• 主にビデオゲームの開発情報の共有
• 参加費:学生500円、一般2000円
• http://kyushucedec.jp/
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
モチベーション
• ボリュームデータの物理ベースレンダリング
– 3角形ポリゴンの集合では表しにくいデータの増大
• 木、服、もくもく
–データ量が増大しやすい
• データの削減
–色
–濃度
–反射分布
今回の結果
https://github.com/imagire/sggx_impl
SGGX概要
• 前提としての表面の反射理論
–マイクロファセット理論
• 金属等は様々な方向を向いた平面の集まりと捉えられる – アルべド、法線分布、屈折率、拡散/鏡面反射割合
GGX
)()(,)()( iiiiooipo QdLfL )()()1()( oi
spec
poi
diff
poip fmfmf
)()( oi
oi
diff
pf
oi
oi
spec
pnn
GDFf
,,4)(
hFFF o ,1)1( 00
222
2
11,
hnD
)()( 0 iGGXGGX GGG 222 ,1,
,2)(
nn
nGGGX
)),(,0max(,
:Schlick近似のフレネル (h:ハーフベクトル, F0:正面反射率)
:法線分布関数 (α:粗さ)
拡散反射:
鏡面反射:
こんな近似項を 使うのがGGX
(m:金属度合い)
ボリュームレンダリング
• 放射伝達方程式
SGGX
• ボリュームレンダリングする際に、ボリュームデータの微視的な法線分布率を楕円体のデータで表現
–投影面積(散乱割合)
–位相関数
• GGXを裏面にも対称化:対称GGX=SGGX
–散乱には「拡散反射+鏡面反射」を適応
実装方法
• パストレーサー「smallpt: Global Illumination in 99 lines of C++」を拡張 – http://www.kevinbeason.com/smallpt/
• パスの衝突検知の際に、検知したレイがボリュームデータのAABB と交差するか調べ、 交差したら、ボリューム データの寄与を付与 – ボリュームデータ分解能 から、各ボクセルへの 交差位置を計算
– 確率的に入射レイの追加
関与媒質の寄与の計算
• AABBの交差判定ののち ボリュームデータの各 グリッドとの交点を算出
• 乱数を用いて2次レイを 確率的に生成
0L
l
lt
i
)( oL
)())(
)(1(4
)( 0
ioi
S
oi
Dslt
l
o
Lfrm
frmlt
e
LeL
s
s
散乱確率
実装方法
• 新たに考えなくてはならない部分はほとんどない – The SGGX Microflake Distribution
Supplemental Material • 非常に多くの係数がコード付きで掲載
– https://drive.google.com/file/d/0BzvWIdpUpRx_djVyMG9jMnltdTg/view?usp=sharing
– GitHub (zhangwengame/SGGX-Plugin-for-Mitsuba) • 動くコードが存在(今回は未参照)
)())()(1(4
)( 0
ioi
s
oi
Dslt
l
o
Lfrmfrmlt
e
LeL
s
s
散乱確率
今回の結果
• できたこと
– SGGXデータが与えられた際のパストレーシング
–密度・アルべドのデータとは異なる分解能に対応
• できないこと
–他のデータからのインポート
σy2=σz
2=0.001 σx2=σz
2=0.001
σ z2=0.001 σ x
2=0.0001
σ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
空間的変化のある散乱係数
濃度分布が変化する場合
SGGXについて
• Pros
–高速:拡散、鏡面反射方向を決め、他の確率分布関数等の計算もシンプルなので計算は速い
• Cons
–拡散+鏡面反射の分離のモデルを仮定しているが正当性は不明
–反射特性よりも濃度情報によって形状は形作られるので、濃度情報の圧縮の研究は今後も必要
Future works
• 拡散反射+鏡面反射で当てはまらないモデルへの適応の調査
• アルべド・密度に対するデータ圧縮
• リアルタイム対応
–形状が楕円体を使っている点に事前計算しやすい部分があるかもしれない
ありがとうございました
• 本家資料 – 論文
• 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