SGGXマイクロフレーク分布

24
The SGGX Microflake Distribution 株株株株株株株株株株 株株株 株

Transcript of SGGXマイクロフレーク分布

Page 1: SGGXマイクロフレーク分布

The SGGX Microflake Distribution

株式会社セガゲームス今給黎 隆

Page 2: SGGXマイクロフレーク分布

アジェンダ• モチベーション• マイクロファセット物理ベースレンダリ

ング• マイクロフレーク理論• SGGX• この後のお仕事

Page 3: SGGXマイクロフレーク分布

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

Page 4: SGGXマイクロフレーク分布

モチベーション• ボリュームデータの物理ベースレンダリング– 3 角形ポリゴンの集合では表しにくいデータの増

大• 木• 服• もくもく

– データ量が増大しやすい

• まだまだ高い要求– 高速– 省メモリ

Page 5: SGGXマイクロフレーク分布

ボリュームデータ• 同じ程度のデータ数でも非常に小さな分

解能– Full HD: 1980x1080=2,073,600– ボリュームデータ: 128x128x128=2,097,152

Page 6: SGGXマイクロフレーク分布

マイクロファセット理論を用いた物理ベースレンダリング

• 最近のレンダリングのはやり– 物体の見た目 = 拡散反射 + 鏡面反射 ( で近

似 )– 物理量の保存則を満たす

入射光 鏡面反射光拡散反射光

Page 7: SGGXマイクロフレーク分布

物理量の保存則• 出射光は入射光よりも暗い ( エネルギー保

存 )

• 光の向きを変えても同じ現象が起きる ( 相反性 )

Page 8: SGGXマイクロフレーク分布

マイクロファセット理論• プラスチックと金属の違いは何?

Page 9: SGGXマイクロフレーク分布

マイクロファセット理論• 金属反射は微細な構造の粗視化ととらえる– 特に鏡面反射についてとり扱う

• 考慮する効果– 法線分布– マスキング– シャドウイング– フレネル反射

シャドウイング マスキング

Page 10: SGGXマイクロフレーク分布

GGX

)()(,)()( oiiiooipo QdLfL )()(,)()( iiiiooipo QdLfL )()()1()( oi

specpoi

diffpoip fmfmf

)(

)( oioi

diffpf

oioi

specp nn

GDFf

,,4)(

500 ,1)1( hFFF o

222

2

11,

hnD

)()( 0 iGGXGGX GGG 222 ,1,

,2)(

nn

nGGGX

)),(,0max(,

: Schlick 近似のフレネル      (h: ハーフベクトル , F0: 正面反射率 )

:法線分布関数 (α :粗さ )

拡散反射:

鏡面反射:

こんな近似項を使うのが GGX

この形だけではない。マイクロファセットの形状が楕円らしい?

(m :金属度合い )

Page 11: SGGXマイクロフレーク分布

GGX

)()(,)()( oiiiooipo QdLfL )()(,)()( iiiiooipo QdLfL )()()1()( oi

specpoi

diffpoip fmfmf

)(

)( oioi

diffpf

oioi

specp nn

GDFf

,,4)(

500 ,1)1( hFFF o

222

2

11,

hnD

)()( 0 iGGXGGX GGG 222 ,1,

,2)(

nn

nGGGX

)),(,0max(,

: Schlick 近似のフレネル      (h: ハーフベクトル , F0: 正面反射率 )

:法線分布関数 (α :粗さ )

拡散反射:

鏡面反射:

(m :金属度合い )計算が比較的簡単で

見た目がけっこうカッコイイ!

こんな近似項を使うのが GGX

この形だけではない。マイクロファセットの形状が楕円らしい?

Page 12: SGGXマイクロフレーク分布

3次元では ?

• 放射伝達方程式

Page 13: SGGXマイクロフレーク分布

マイクロフレーク理論• ボリュームを細かな粒子 ( マイクロフレーク ) の

集合と仮定– マイクロフレークに対する光の吸収と散乱はシンプ

ルなモデル– マイクロフレークの物体の質感が変わる

• マイクロフレークの光学特性• マイクロフレークの形状• マイクロフレークの配列の仕方

Page 14: SGGXマイクロフレーク分布

マイクロフレークでの物理量計算

• 単一のマテリアルの場合– 減衰係数– 散乱係数

• ρ :ボリュームの密度• α :方向に依存しないアルベド• σ :マイクロフレークの投影面積

D: 法線の統計的な分布

Page 15: SGGXマイクロフレーク分布

マイクロフレーク位相関数• 角度に関する光の散乱度合い

• マイクロフレーク制約– 光は強くならない

– 相反性

鏡面反射 拡散反射

Page 16: SGGXマイクロフレーク分布

マイクロフレークと法線• マイクロフレークが楕円体の場合の法線

円盤的

繊維的

おまけ: GXX と SGGX の違い

(半球ではなく対称)

Page 17: SGGXマイクロフレーク分布

従来法• 法線の分布を求めて、そこから各種物理

量を計算– 法線の分布は

足し算できない(結果が正確ではない)

– 合成が高速にはできなかった

Page 18: SGGXマイクロフレーク分布

キーアイデア• 大切なのは法線分布ではなく投影面積– 投影面積が固有値と関連した

正値対称行列を導入 (SGGX 行列 )

– 固有値、固有ベクトルを線形補間して新しく生み出す SGGX 行列はやはり正値対称行列なのでSGGX として有効( このようにすれば線形補間できる !)

導出される法線分布:

Page 19: SGGXマイクロフレーク分布

SGGX 行列の構築• 法線分布を入力としてパラメータを推定– 楕円対称性から共分散行列の固有ベクトルは基の行列 (SGGX 行列 ) の固有ベクトルと等しい

– 投影面積の定義から固有値を構築• メモリ使用量– 6 つのパラメータで格納可能 (6B/voxel)

]1,1[

]1,0[

r

Page 20: SGGXマイクロフレーク分布

パラメータ推定性能

Page 21: SGGXマイクロフレーク分布

位相関数• 位相関数

• インポータンスサンプリング– 入射方向に垂直にランダムに点をとり、 SGGX 行

列を通した法線分布で確率的に法線を選択–得られた法線の反射方向、法線周りの拡散方向

を計算し、位相関数を求めて確率的に光路の寄与を加える

Page 22: SGGXマイクロフレーク分布

LOD• 低解像度でもそれなりの見た目– 密度とアルベド、 SGGX をダウンサンプリン

グ–多重散乱の効果が入らないので見た目は変化

Page 23: SGGXマイクロフレーク分布

これからの作業• インポータンスサンプリングのコード持って

ない…– レイトレ合宿 ?

• 実際に計算して、泥臭い部分をあぶりだす• リアルタイムに結びつく何かがあると嬉しい

Page 24: SGGXマイクロフレーク分布

まとめ• SGGX– 投影面積を固有値とする楕円体としてボリュー

ムデータを表現– 高速で小メモリ (6B/voxel)–階層的詳細度 (LOD) 表現に対応