Presentation is loading. Please wait.

Presentation is loading. Please wait.

ゲーム開発者向け最新技術論文の解説・実装講座

Similar presentations


Presentation on theme: "ゲーム開発者向け最新技術論文の解説・実装講座"— Presentation transcript:

1 ゲーム開発者向け最新技術論文の解説・実装講座
~遥かなるトップレンダリストの頂を目指して~ その② 田村 尚希 シリコンスタジオ株式会社 ソフトウェアエンジニアリング部

2 発表の流れ 1. 概要 2. 論文紹介 「Frequency Domain Normal Map Filtering」 3. まとめ

3 発表の流れ 1. 概要 2. 論文紹介 「Frequency Domain Normal Map Filtering」 3. まとめ

4 最新技術に興味を持つ人が増え、 ゲーム業界全体の活性化に繋がることを期待
1.概要 発表内容: 最新論文のうち、ゲームにも関係が深い論文を紹介 発表の目的: 1.最新技術の紹介及び理解 2.技術論文に親しむ機会を提供 最新技術に興味を持つ人が増え、 ゲーム業界全体の活性化に繋がることを期待

5 1.概要 紹介論文:   「Frequency Domain Normal Map Filtering」 [Han et al. SIGGRAPH 2007]

6 1.概要 法線マップにおけるミップマップフィルタリング 「Frequency Domain Normal Map Filtering」
一言で言えば: 法線マップにおけるミップマップフィルタリング に関する論文

7 1.概要 動画:

8 1.概要 動画:

9 1.概要 利点 欠点 正確な法線マップミップマップフィルタリングが可能 拡散面から鏡面に近い光沢面まで適用可能 計算負荷が高い
テクスチャ消費量が多い シーンによっては、適用前後でほとんど差がない

10 発表の流れ 1. 概要 2. 論文紹介 「Frequency Domain Normal Map Filtering」 3. まとめ

11 Normal map filteringの説明手順
ミップマップ フィルタリングの復習 法線マップのミップマップの問題点 論文の手法説明 デモ・考察

12 一連のテクスチャ群をミップマップテクスチャと呼ぶ
2.1 ミップマップフィルタリング ミップマップテクスチャ 解像度を半分にし、情報を平均化した 一連のテクスチャ群をミップマップテクスチャと呼ぶ

13 2.1 ミップマップフィルタリング ミップマップフィルタリング(トリリニアフィルタリング)

14 スクリーン解像度とテクスチャ解像度の不整合を解決するため
2.1 ミップマップフィルタリング ミップマップフィルタリングが必要な理由 スクリーン解像度とテクスチャ解像度の不整合を解決するため

15 ランタイム時のスーパーサンプリングは計算負荷が高い
2.1 ミップマップフィルタリング 解像度の差を解決する本質的な方法 ⇒スーパーサンプリング ランタイム時のスーパーサンプリングは計算負荷が高い

16 スーパーサンプリング≒ミップマップフィルタリング
2.1 ミップマップフィルタリング スーパーサンプリングの代替手段 ⇒ミップマップテクスチャ スーパーサンプリング≒ミップマップフィルタリング

17 ≒ Normal map filteringの説明手順 ミップマップ フィルタリングの復習 法線マップのミップマップの問題点 論文の手法説明
デモ・考察

18 2.2 法線マップのミップマップ 法線マップのミップマップテクスチャ

19 スーパーサンプリング≠ミップマップフィルタリング
2.2 法線マップのミップマップ 法線マップのミップマップの問題点 スペキュラーなどの説明をいれて色の違いの発生を強調 具体的に数字を出した方がいい スーパーサンプリング≠ミップマップフィルタリング

20 正 誤 正 ≠ ≒ 2.2 法線マップのミップマップ 論文の解決方法 スーパーサンプリング≒ミップマップフィルタリング
スーパーサンプリング≠ミップマップフィルタリング

21 ≒ ≠ Normal map filteringの説明手順 ミップマップ フィルタリングの復習 法線マップのミップマップの問題点
論文の手法説明 アイディアの概要 アルゴリズムの詳細 前計算 NDFミップマップテクスチャの作成 デモ・考察 Effective BRDFの計算 実行時

22 2.3 アイディアの概要 = NDF BRDF Effective BRDF

23 2.3 アイディアの概要 という概念 NDF(Normal Distribution Function) を導入 基本的には
                         という概念 を導入 NDF(Normal Distribution Function) 基本的には    ・法線が存在する方向は 1 ・法線が存在しない方向は 0 という値を持ったバイナリ情報 で正規化 キューブマップ形式では、データ量が膨大 → 要圧縮

24 2.3 アイディアの概要 = NDF BRDF Effective BRDF

25 2.3 アイディアの概要 BRDFを可視化 拡散面: 光沢面: 法線ベクトル 光の入射ベクトル s = 5 s = 10

26 2.3 アイディアの概要 = NDF BRDF Effective BRDF

27 2.3 アイディアの概要 スーパーサンプリングを数式化 基本式 拡散面: 光沢面: スーパーサンプリング

28 2.3 アイディアの概要 ⇒BRDFの項をスーパーサンプリングすれば良い を            と呼ぶ Effective BRDF

29 2.3 アイディアの概要 Effective BRDFを可視化 Effective BRDF 拡散面: 光沢面: 法線ベクトル 法線ベクトル

30 2.3 アイディアの概要 1. NDFを前計算で保存 2. Effective BRDFをリアルタイムに計算

31 ≒ ≠ Normal map filteringの説明手順 ミップマップ フィルタリングの復習 法線マップのミップマップの問題点
論文の手法説明 アイディアの概要 アルゴリズムの詳細 前計算 NDFミップマップテクスチャの作成 デモ・考察 Effective BRDFの計算 実行時

32 アルゴリズムの詳細 前計算 実行時 法線マップの入力 視点・光源位置の入力 NDFの圧縮 球面調和関数 NDFミップマップテクスチャの作成
Effective BRDFの計算 ピクセル色の出力 前計算 実行時

33 ≒ 2.3.1 球面調和関数 球面調和関数の要点 データ量を1/400に圧縮!! 球面調和関数は、大まかな特徴を極めて効率的に近似可能
球面調和関数を用いた近似 本来の輝度分布 球に投影 各方向の輝度を 高さに変換 球面調和関数は、大まかな特徴を極めて効率的に近似可能 データ量を1/400に圧縮!! データ量 データ量 16個~64個のfloat : キューブマップのデータ量 : 64byte (16個の場合) float × ( 32×32×6 ) pixel : byte 詳しくは、株式会社Pyramid( の「使える最新PRTのススメ」参照

34 ≒ 2.3.1 NDFの圧縮 NDFを球面調和関数を用いて圧縮 データ量を1/400に圧縮!!
球面調和関数を用いた近似 本来のNDF 各方向の値を 高さに変換 球面調和関数は、大まかな特徴を極めて効率的に近似可能 データ量を1/400に圧縮!! データ量 データ量 16個~64個のfloat : キューブマップのデータ量 : 64byte (16個の場合) float × ( 32×32×6 ) pixel : byte

35 アルゴリズムの詳細 前計算 実行時 法線マップの入力 視点・光源位置の入力 NDFの圧縮 球面調和関数 NDFミップマップテクスチャの作成
Effective BRDFの計算 ピクセル色の出力 前計算 実行時

36 2.3.2 NDFミップマップテクスチャ NDFを、ミップマップの各レベル毎に球面調和関数 を用いて圧縮

37 アルゴリズムの詳細 前計算 実行時 法線マップの入力 視点・光源位置の入力 NDFの圧縮 球面調和関数 NDFミップマップテクスチャの作成
Effective BRDFの計算 ピクセル色の出力 前計算 実行時

38 畳み込み(Convolution)という演算に相当
2.3.3 Effective BRDFの計算 全方向に関して、NDFとBRDFを乗算し足し合わせる 畳み込み(Convolution)という演算に相当

39 理論及び f の計算方法の詳細は論文4.2及び4.3参照
2.3.3 Effective BRDFの計算 畳み込みは、球面調和関数空間では高速に処理可能 NDF BRDF = 球面調和関数空間 Effective BRDF 理論及び f の計算方法の詳細は論文4.2及び4.3参照

40 アルゴリズムの詳細 前計算 実行時 法線マップの入力 視点・光源位置の入力 NDFの圧縮 球面調和関数 NDFミップマップテクスチャの作成
Effective BRDFの計算 ピクセル色の出力 前計算 実行時

41 yの計算方法の詳細は、 「球面調和関数の多項式表現」参照
2.3.4 ピクセル色の出力 Effective BRDFの係数を、元の空間に復元 Effective BRDF 拡散面: 係数が必要なのは特定の1方向ωのみ 光沢面: yの計算方法の詳細は、 「球面調和関数の多項式表現」参照 

42 2.3.4 ピクセル色の出力 fragment shader擬似コード

43 ≒ ≠ Normal map filteringの説明手順 ミップマップ フィルタリングの復習 法線マップのミップマップの問題点
論文の手法説明 アイディアの概要 アルゴリズムの詳細 前計算 NDFミップマップテクスチャの作成 デモ・考察 Effective BRDFの計算 実行時

44 2.4 考察1 球面調和関数では鋭いスペキュラーなどは不可能 圧縮に利用する関数を変更することで実現

45 アルゴリズムの詳細 前計算 実行時 法線マップの入力 視点・光源位置の入力 NDFの圧縮 vMF 球面調和関数
Effective BRDFの計算 ピクセル色の出力 前計算 実行時

46 アルゴリズムの流れは変わらないので今回は割愛
2.4 考察1 球面調和関数では鋭いスペキュラーなどは不可能 圧縮に利用する関数を変更することで実現 → 精度が高い反面、より計算負荷が高い アルゴリズムの流れは変わらないので今回は割愛

47 この問題を含んでいることを理解しておくことが重要
2.4 考察2 効果が顕著に現れる例と、それほど現れない例に分かれる 効果が顕著なケース:   光沢面、法線分布が急激、法線マップが高解像度 効果がでないケース:   拡散面、法線分布が緩やか、法線マップが低解像度 → 状況によっては重要な問題 法線マップのミップマップは潜在的に この問題を含んでいることを理解しておくことが重要

48 発表の流れ 1. 概要 2. 論文紹介 「Frequency Domain Normal Map Filtering」 3. まとめ

49 法線マップにおけるミップマップフィルタリング
3 まとめ 紹介した論文:   「Frequency Domain Normal Map Filtering」 法線マップにおけるミップマップフィルタリング

50 = 3 まとめ ≠ ≒ スーパーサンプリング≠ミップマップフィルタリング スーパーサンプリング≒ミップマップフィルタリング
データ量削減、処理の効率化のため 球面調和関数を利用 NDF BRDF Effective BRDF

51 御静聴ありがとうございました 質問はございませんか?


Download ppt "ゲーム開発者向け最新技術論文の解説・実装講座"

Similar presentations


Ads by Google