1 / 51

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

ゲーム開発者向け最新技術論文の解説・実装講座. ~遥かなるトップレンダリストの頂を目指して~. その②. 田村 尚希 シリコンスタジオ株式会社 ソフトウェアエンジニアリング部. 発表の流れ. 1. 概要 2. 論文紹介 「 Frequency Domain Normal Map Filtering 」 3. まとめ. 発表の流れ. 1. 概要 2. 論文紹介 「 Frequency Domain Normal Map Filtering 」 3. まとめ. 1. 概要. 発表内容 :. 最新論文のうち、ゲームにも関係が深い論文を紹介.

iniko
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

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 アイディアの概要 ≒ = EffectiveBRDF NDF BRDF

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

  24. 2.3 アイディアの概要 ≒ = EffectiveBRDF NDF BRDF

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

  26. 2.3 アイディアの概要 ≒ = EffectiveBRDF NDF 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に圧縮!! データ量 データ量 キューブマップのデータ量 : 16個~64個のfloat : float × ( 32×32×6 ) pixel : 24576 byte 64byte (16個の場合) 詳しくは、株式会社Pyramid(http://www.pyramid-inc.net)の「使える最新PRTのススメ」参照

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

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

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

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

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

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

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

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

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

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

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

  45. アルゴリズムの詳細 法線マップの入力 視点・光源位置の入力 NDFの圧縮 vMF 球面調和関数 NDFミップマップテクスチャの作成 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 まとめ ≒ ≠ スーパーサンプリング≠ミップマップフィルタリング スーパーサンプリング≒ミップマップフィルタリング = EffectiveBRDF データ量削減、処理の効率化のため 球面調和関数を利用 NDF BRDF

More Related