Upload
iniko
View
29
Download
0
Embed Size (px)
DESCRIPTION
ゲーム開発者向け最新技術論文の解説・実装講座. ~遥かなるトップレンダリストの頂を目指して~. その②. 田村 尚希 シリコンスタジオ株式会社 ソフトウェアエンジニアリング部. 発表の流れ. 1. 概要 2. 論文紹介 「 Frequency Domain Normal Map Filtering 」 3. まとめ. 発表の流れ. 1. 概要 2. 論文紹介 「 Frequency Domain Normal Map Filtering 」 3. まとめ. 1. 概要. 発表内容 :. 最新論文のうち、ゲームにも関係が深い論文を紹介. - PowerPoint PPT Presentation
Citation preview
Imagire Day
ゲーム開発者向け最新技術論文の解説・実装講座ゲーム開発者向け最新技術論文の解説・実装講座~遥かなるトップレンダリストの頂を目指して~
田村 尚希シリコンスタジオ株式会社 ソフトウェアエンジニアリング
部
その②
Imagire Day
発表の流れ発表の流れ
1. 概要2. 論文紹介
「 Frequency Domain Normal Map Filtering 」
3. まとめ
Imagire Day
発表の流れ発表の流れ
1. 概要2. 論文紹介
「 Frequency Domain Normal Map Filtering 」
3. まとめ
Imagire Day
1.1. 概要概要
• 発表内容 :
• 発表の目的 :
最新論文のうち、ゲームにも関係が深い論文を紹介
1. 最新技術の紹介及び理解 2. 技術論文に親しむ機会を提供
最新技術に興味を持つ人が増え、ゲーム業界全体の活性化に繋がることを期
待
Imagire Day
1.1. 概要概要
「 Frequency Domain Normal Map Filtering 」[Han et al. SIGGRAPH 2007]
• 紹介論文 :
Imagire Day
1.1. 概要概要
• 一言で言えば :
法線マップにおけるミップマップフィルタリング法線マップにおけるミップマップフィルタリング
に関する論文
• 「 Frequency Domain Normal Map Filtering 」
Imagire Day
1.1. 概要概要• 動画 :
Imagire Day
1.1. 概要概要• 動画 :
Imagire Day
1.1. 概要概要• 利点
• 欠点
正確な法線マップミップマップフィルタリングが可能
拡散面から鏡面に近い光沢面まで適用可能
計算負荷が高い
テクスチャ消費量が多い
シーンによっては、適用前後でほとんど差がない
Imagire Day
発表の流れ発表の流れ
1. 概要2. 論文紹介
「 Frequency Domain Normal Map Filtering 」
3. まとめ
Imagire Day
Normal map filtering の説明手順
ミップマップフィルタリングの復
習
法線マップのミップマップの問題点
論文の手法説明
デモ・考察
Imagire Day
2.1 2.1 ミップマップフィルタリングミップマップフィルタリング
解像度を半分にし、情報を平均化した解像度を半分にし、情報を平均化した一連のテクスチャ群をミップマップテクスチャと呼ぶ一連のテクスチャ群をミップマップテクスチャと呼ぶ
• ミップマップテクスチャ
Imagire Day
2.1 2.1 ミップマップフィルタリングミップマップフィルタリング
• ミップマップフィルタリング(トリリニアフィルタリング)
Imagire Day
2.1 2.1 ミップマップフィルタリングミップマップフィルタリング
• ミップマップフィルタリングが必要な理由
スクリーン解像度とテクスチャ解像スクリーン解像度とテクスチャ解像度の不整合を解決するため度の不整合を解決するため
Imagire Day
2.1 2.1 ミップマップフィルタリングミップマップフィルタリング
• 解像度の差を解決する本質的な方法
ランタイム時のスーパーサンプリングは計算負荷が高いランタイム時のスーパーサンプリングは計算負荷が高い
⇒ スーパーサンプリング
Imagire Day
2.1 2.1 ミップマップフィルタリングミップマップフィルタリング
• スーパーサンプリングの代替手段
スーパーサンプリング ミップマップフィルタリング≒スーパーサンプリング ミップマップフィルタリング≒
⇒ ミップマップテクスチャ
≒
Imagire Day
Normal map filtering の説明手順
ミップマップフィルタリングの復
習
法線マップのミップマップの問題点
論文の手法説明
デモ・考察
≒
Imagire Day
2.2 2.2 法線マップのミップマップ法線マップのミップマップ
• 法線マップのミップマップテクスチャ
Imagire Day
2.2 2.2 法線マップのミップマップ法線マップのミップマップ
• 法線マップのミップマップの問題点
スーパーサンプリング≠ミップマップフィルタリングスーパーサンプリング≠ミップマップフィルタリング
≠正 誤
Imagire Day
スーパーサンプリング≠ミップマップフィルタリングスーパーサンプリング≠ミップマップフィルタリング
2.2 2.2 法線マップのミップマッ法線マップのミップマッププ• 論文の解決方法
スーパーサンプリング ミップマップフィルタリング≒スーパーサンプリング ミップマップフィルタリング≒
≠≒正 誤正
Imagire Day
Normal map filtering の説明手順
ミップマップフィルタリングの復
習
法線マップのミップマップの問題点
論文の手法説明
デモ・考察
アイディアの概要
アルゴリズムの詳細
NDF ミップマップテクスチャの作成
Effective BRDF の計算
前計算
実行時
≒
≠
Imagire Day
2.3 2.3 アイディアの概要アイディアの概要
=
NDF BRDF Effective BRDF
≒
Imagire Day
2.3 2.3 アイディアの概要アイディアの概要
N
1
• という概念 を導入
NDFNDF (( NNormal ormal DDistribution istribution FFunctionunction ))
基本的には ・法線が存在する方向は 1
・法線が存在しない方向は 0という値を持ったバイナリ情報
で正規化
キューブマップ形式では、データ量が膨大 → 要圧縮キューブマップ形式では、データ量が膨大 → 要圧縮
N
1
法線の本数:N
Imagire Day
2.3 2.3 アイディアの概要アイディアの概要
=
NDF BRDF Effective BRDF
≒
Imagire Day
2.3 2.3 アイディアの概要アイディアの概要
• BRDF を可視化
s = 5s = 10
拡散面 :
光沢面 : oi
oihxhxoi
snnf
)0,max();,(
)0,max();,( xixoi nnf
法線ベクトル光の入射ベクトル
Imagire Day
2.3 2.3 アイディアの概要アイディアの概要
=
NDF BRDF Effective BRDF
≒
Imagire Day
2.3 2.3 アイディアの概要アイディアの概要
);,(),(),( xoiio nfxLxB
)0,max();,( xixoi nnf
xqqoiio nf
NxLxB );,(
1),(),(
基本式
スーパーサンプリング
拡散面 :
光沢面 : oi
oihxhxoi
snnf
)0,max();,(
サブピクセル位置サブピクセル数法線ベクトル
出射方向
入射方向ピクセル位置
ライトの強さ入射輝度ピクセルの色放射照度
:
:
:
:
:
:
:
)(:
)(:
q
N
n
x
BRDFf
L
B
o
i
• スーパーサンプリングを数式化
io
n
L
B
x
xq
qoiio nfxLN
xB );,(),(1
),(
Imagire Day
2.3 2.3 アイディアの概要アイディアの概要
Effective BRDFEffective BRDF
⇒BRDF の項をスーパーサンプリングすれば良い
xq
qoi nfN
);,(1 を と呼ぶ
xqqoiio nf
NxLxB );,(
1),(),(
Imagire Day
2.3 2.3 アイディアの概要アイディアの概要
• Effective BRDF を可視化拡散面 :
光沢面 :xq
qoi nfN
);,(1
oi
oihxhxoi
snnf
)0,max();,(
)0,max();,( xixoi nnf
Effective BRDFEffective BRDF法線ベクト
ル法線ベクト
ル
法線ベクトル
Imagire Day
2.3 2.3 アイディアの概要アイディアの概要
2. Effective BRDF をリアルタイムに計算
1. NDF を前計算で保存
Imagire Day
Normal map filtering の説明手順
ミップマップフィルタリングの復
習
法線マップのミップマップの問題点
論文の手法説明
デモ・考察
アイディアの概要
アルゴリズムの詳細
NDF ミップマップテクスチャの作成
Effective BRDF の計算
前計算
実行時
≒
≠
Imagire Day
アルゴリズムの詳細
NDF の圧縮
NDF ミップマップテクスチャの
作成
法線マップの入力 視点・光源位置の入力
Effective BRDF の計算
ピクセル色の出力
前計算前計算 実行時実行時
球面調和関数
Imagire Day
• 球面調和関数の要点
2.3.1 2.3.1 球面調和関数球面調和関数
各方向の輝度を高さに変換
本来の輝度分布
データ量
16個~ 64個の float :
キューブマップのデータ量 :
float × ( 32×32×6 ) pixel : 24576 byte
球面調和関数は、大まかな特徴を極めて効率的に近似可能
データ量
球面調和関数を用いた近似
64byte (16個の場合 )
データ量を 1/400 に圧縮 !!
≒
球に投影
詳しくは、株式会社詳しくは、株式会社 PyramidPyramid (( http://www.pyramid-inc.net))の「使える最新の「使える最新 PRTPRT のススメ」参照のススメ」参照
Imagire Day
2.3.1 NDF2.3.1 NDF の圧縮の圧縮
• NDF を球面調和関数を用いて圧縮
各方向の値を高さに変換
本来の NDF球面調和関数を用いた近似
≒
データ量
16個~ 64個の float :
キューブマップのデータ量 :
float × ( 32×32×6 ) pixel : 24576 byte
球面調和関数は、大まかな特徴を極めて効率的に近似可能
データ量
64byte (16個の場合 )
データ量を 1/400 に圧縮 !!
Imagire Day
アルゴリズムの詳細
NDF の圧縮
NDF ミップマップテクスチャの
作成
法線マップの入力 視点・光源位置の入力
Effective BRDF の計算
ピクセル色の出力
前計算前計算 実行時実行時
球面調和関数
Imagire Day
2.3.2 NDF2.3.2 NDF ミップマップテクスチャミップマップテクスチャ• NDF を、ミップマップの各レベル毎に球面調和関数 を用いて圧縮
Imagire Day
アルゴリズムの詳細
NDF の圧縮
NDF ミップマップテクスチャの
作成
法線マップの入力 視点・光源位置の入力
Effective BRDF の計算
ピクセル色の出力
前計算前計算 実行時実行時
球面調和関数
Imagire Day
2.3.3 Effective BRDF2.3.3 Effective BRDF の計算の計算
• 全方向に関して、 NDF と BRDF を乗算し足し合わせる
畳み込み(畳み込み( ConvolutionConvolution )という演算に相当)という演算に相当
Imagire Day
2.3.3 Effective BRDF2.3.3 Effective BRDF の計算の計算
,,,ˆ210effeffeffeff ffff
• 畳み込みは、球面調和関数空間では高速に処理可能
=
NDF
BRDF
Effective BRDF
理論及び 理論及び f f の計算方法の詳細は論文の計算方法の詳細は論文 4.24.2 及び及び 4.34.3参照参照
球面調和関数空間
,,,ˆ210 NNNN
^
,,,ˆ210 ffff
Imagire Day
アルゴリズムの詳細
NDF の圧縮
NDF ミップマップテクスチャの
作成
法線マップの入力 視点・光源位置の入力
Effective BRDF の計算
ピクセル色の出力
前計算前計算 実行時実行時
球面調和関数
Imagire Day
• Effective BRDF の係数を、元の空間に復元
2.3.4 2.3.4 ピクセル色の出力ピクセル色の出力
)(),(),( effio fxLxB
i
yy の計算方法の詳細は、 の計算方法の詳細は、 「球面調和関数の多項式表現」参照 (( http://http://lucille.sourceforge.net/blog/images/shpoly.pdflucille.sourceforge.net/blog/images/shpoly.pdf))
,,,ˆ210effeffeffeff ffff Effective
BRDF
係数が必要なのは特定の係数が必要なのは特定の 11 方向方向 ωω のみのみ
値方向の球面調和関数の :)(y
拡散面 :
光沢面 : h
)(ˆ)( j
jeffj
eff yff
Imagire Day
2.3.4 2.3.4 ピクセル色の出力ピクセル色の出力
}̂t vector coefficien BRDF and ector incident v , vector half :Setup{ fih
),,NDFTexture(texture2Dˆ tsN
)nconvolutio( ˆmultiply ˆˆ fNf eff
• fragment shader 擬似コード
}caseglossy { case}, diffuse{ of tscoefficien SH compute hiy
)intensitylight is (PixelColor LfL eff
),ˆ(dot yff effeff
Imagire Day
Normal map filtering の説明手順
ミップマップフィルタリングの復
習
法線マップのミップマップの問題点
論文の手法説明
デモ・考察
アイディアの概要
アルゴリズムの詳細
NDF ミップマップテクスチャの作成
Effective BRDF の計算
前計算
実行時
≒
≠
Imagire Day
2.4 2.4 考察考察 11
圧縮に利用する関数を変更することで実現圧縮に利用する関数を変更することで実現
• 球面調和関数では鋭いスペキュラーなどは不可能
Imagire Day
アルゴリズムの詳細
NDF の圧縮
NDF ミップマップテクスチャの
作成
法線マップの入力 視点・光源位置の入力
Effective BRDF の計算
ピクセル色の出力
前計算前計算 実行時実行時
球面調和関数vMF
Imagire Day
2.4 2.4 考察考察 11
圧縮に利用する関数を変更することで実現圧縮に利用する関数を変更することで実現
→ 精度が高い反面、より計算負荷が高い
• 球面調和関数では鋭いスペキュラーなどは不可能
アルゴリズムの流れは変わらないので今回は割愛アルゴリズムの流れは変わらないので今回は割愛
Imagire Day
2.4 2.4 考察考察 22
効果がでないケース :
拡散面、法線分布が緩やか、法線マップが低解像度
→ 状況によっては重要な問題
• 効果が顕著に現れる例と、それほど現れない例に分かれる
効果が顕著なケース :
光沢面、法線分布が急激、法線マップが高解像度
法線マップのミップマップは潜在的に法線マップのミップマップは潜在的にこの問題を含んでいることを理解しておくことが重要この問題を含んでいることを理解しておくことが重要
Imagire Day
発表の流れ発表の流れ
1. 概要2. 論文紹介
「 Frequency Domain Normal Map Filtering 」
3. まとめ
Imagire Day
3 3 まとめまとめ
法線マップにおけるミップマップフィルタリング法線マップにおけるミップマップフィルタリング
「 Frequency Domain Normal Map Filtering 」• 紹介した論文 :
Imagire Day
3 3 まとめまとめ
≠
=
NDF BRDF Effective BRDF
スーパーサンプリング≠ミップマップフィルタリングスーパーサンプリング≠ミップマップフィルタリング
データ量削減、処理の効率化のためデータ量削減、処理の効率化のため球面調和関数を利用球面調和関数を利用
≒
スーパーサンプリング ミップマップフィルタリング≒スーパーサンプリング ミップマップフィルタリング≒
Imagire Day
御静聴ありがとうございました御静聴ありがとうございました
• 質問はございませんか ?