CEDEC 2012 コンピュータ・グラフィクス関連の最新論文紹介~Modular Radiance...
-
Upload
silicon-studio-corporation -
Category
Technology
-
view
5.485 -
download
0
description
Transcript of CEDEC 2012 コンピュータ・グラフィクス関連の最新論文紹介~Modular Radiance...
CEDEC 2012
コンピュータグラフィクス関連の最新論文紹介
田村 尚希安田 廉
シリコンスタジオ株式会社
~ Modular Radiance Transfer 法の解説~
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ 3 まとめ
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ 3 まとめ
CEDEC 2012
bull 本セッションの目的ndash ゲーム業界にとって有望な技術の理解及び知識の共有
bull 本セッションの内容ndash [ Modular Radiance Transfer 法]を利用した リアルタイム GI(Global Illumination) 技術の解説
発表の概要
CEDEC 2012
解説技術の特徴
bull 長所ndash とにかく高速ndash 多重反射を扱える
bull 短所ndash 使い所を選ぶndash 多少込み入った前計算が必要
使いこなせればワンランク上の表現が可
能
CEDEC 2012
注意点
bull 元論文では Modular ( モジュール式 ) という概念が前面に押し出されており立方体を組み合わせたシーン以外は適用しにくいような印象を受けます
bull 本セッションでは Modular の部分は抑えて説明しますので論文の流れと多少異なります
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ
ndash 間接光計算手法の解説 (論文 4 節)ndash シーン分割による高速化の解説 (論文 5 節)
3 まとめ
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ
ndash 間接光計算手法の解説 (論文 4 節)ndash シーン分割による高速化の解説 (論文 5 節)
3 まとめ
CEDEC 2012
間接光の概要
bull そもそも間接光って何
rArr 光源から一度以上物体に反射して届く光
CEDEC 2012
間接光の概要
bull 間接光があると何が良いのか rArr 柔らかなライティングを再現できシーン全体の 説得力が増す
解説手法は様々な高速化や制約を設けてリアルタイム処理を実現
その分非常に計算負荷が高くリアルタイム処理は困難
直接光 + 間接光直接光
CEDEC 2012
解説手法の計算概要
直接光
直接光 + 間接光
背景オブジェクト( 静的オブジェクトに
限る )その他オブジェ
クト
分類
統合
+
+
間接光計算 間接光計算光の伝播
CEDEC 2012
Step1 背景オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
間接光計算の考え方
bull 背景オブジェクトの間接光はメッシュ頂点で計算
直接光直接光 + 間接光 間接光+=
頂点の情報のみ抽出補間
間接光変換処理
CEDEC 2012
間接光計算の考え方
bull メッシュ頂点のライティング状態をベクトルで表記
119826 シーンの頂点数
119826行 [119949120783119949120784119949120785⋮]1
ライティングベクトル
今後スライド中でライティング状態を
絵で示してもベクトルで表記しても等価
2
3
CEDEC 2012
間接光計算の考え方
bull 光の変換行列 F を用いた間接光計算119826 シーンの 頂点数
119949119941 サンプル点の直接光成分119949119946119951119941 サンプル点の間接光成分
直接光直接光 + 間接光 間接光+=
頂点の情報のみ抽出補間
間接光変換処理F[
119949119946119951119941120783119949119946119951119941120784119949119946119951119941120785⋮
119949119946119951119941119930] timesiquest [
119949119941120783119949119941120784119949119941120785⋮119949119941 119930
][ iquest ]
CEDEC 2012
間接光計算の考え方
bull 光の変換行列 F の計算
119826 シーンの頂点数
iquest119826行iquest
⋮⋮
⋮25 82
20
50 ⋯
光の変換行列F
行列 F は静的オブジェクト
なら前計算可能
CEDEC 2012
間接光計算の考え方
bull 要点1 背景オブジェクトの間接光はメッシュ頂点で計算2 ライティング状態はベクトルで表記可能3 直接光は光の変換行列 F を用いて間接光に変換4 光の変換行列 F は静的オブジェクトなら前計算可
能
+=
F[119949119946119951119941120783119949119946119951119941120784119949119946119951119941120785⋮
119949119946119951119941119930] timesiquest [
119949119941120783119949119941120784119949119941120785⋮119949119941 119930
][ iquest ]
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへ光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
問題提起
ただし実行速度が不十分 + 頂点数の増加で処理量が爆発
上記計算式で間接光は計算可能
F[119949119946119951119941120783119949119946119951119941120784119949119946119951119941120785⋮
119949119946119951119941119930] timesiquest [
119949119941120783119949119941120784119949119941120785⋮119949119941 119930
][ iquest ]
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
bull 全ての直接光は前計算した既知の状態の重ね合わせで近似できると仮定
キーアイディア
times01
+
times02
times04
+
現在の状態既知の状態
≒
CEDEC 2012
bull 直接光が変化しても係数のみが変化ndash 既知の状態は変化しない
キーアイディア
times04
+
times03
times01
+
現在の状態既知の状態
≒
CEDEC 2012
bull これはベクトルの足し合わせとして表現可能
キーアイディア
119960120783 +119960120784 +119960120785≑ [119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930]
119949119941 現在の 直接光の 状態
既知の状態
times01
+
times02
times04
+
[ 119949119941120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
CEDEC 2012
bull 各状態には対になる間接光の状態がそれぞれ存在
キーアイディア
119960120783 +119960120784 +119960120785≑
times120778 times120778 times120778times120778
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
CEDEC 2012
bull 直接光側と同じ重みで間接光側を足し合わす事でを近似可能
キーアイディア
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778times120778
CEDEC 2012
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778times120778
bull このロジックは下記条件を満たせば非常に高速1 必要な係数が十分に少ない2 係数が高速に計算可能
キーアイディア
今後既知の状態をrdquo基底rdquoと呼ぶ
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説
1 最適な基底の計算方法 2 係数の計算方法
- ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説
1 最適な基底の計算方法 2 係数の計算方法
- ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
を求める
bull 2方向のアプローチが考えられるndash 直接光優先 を先に求めて
から
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778 times120778
CEDEC 2012
を求める
bull 2方向のアプローチが考えられるndash 間接光優先 を先に求めて
から
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times119813minus120783 times119813minus120783 times119813minus120783 times119813minus120783
CEDEC 2012
を求める
bull 両方を並行して解説ndash 最終的には両方をハイブリッドしたアプローチで
より良い基底を算出
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778 times120778times119813minus120783 times119813minus120783 times119813minus120783 times119813minus120783
CEDEC 2012
最適な基底
bull 最適な基底は同じシーンでも場合によって異なるndash それぞれに特化した基底のほうが良い結果を得ら
れる
サンプリングベースの基底を採用
CEDEC 2012
bull 様々な状況でライティングした結果を集め特異値分解を用いて基底を算出
サンプリングベースの基底
特異値分解 119861119889特異値分解 119861119894119899 119889
CEDEC 2012
サンプルの選び方について
bull 特異値分解で得られるのは「全ての入力サンプルを良く近似する基底」
bull サンプルで用いる光源のタイプ方向位置を予め分かっている範囲で厳選するのが好ましい
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
119871119889
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
bull 入力された行列をという 3 行列に分解ndash 数多くの数学ライブラリがサポート
特異値分解 (Singular Value Decomposition)
119872
SVD
119880 Σ 119881119879lowast lowastiquest
が異なれば当然も異なる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
左から重要度順に並んでいるため必要な数だけ用いればよい
CEDEC 2012
基底による直接光の近似
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ 3 まとめ
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ 3 まとめ
CEDEC 2012
bull 本セッションの目的ndash ゲーム業界にとって有望な技術の理解及び知識の共有
bull 本セッションの内容ndash [ Modular Radiance Transfer 法]を利用した リアルタイム GI(Global Illumination) 技術の解説
発表の概要
CEDEC 2012
解説技術の特徴
bull 長所ndash とにかく高速ndash 多重反射を扱える
bull 短所ndash 使い所を選ぶndash 多少込み入った前計算が必要
使いこなせればワンランク上の表現が可
能
CEDEC 2012
注意点
bull 元論文では Modular ( モジュール式 ) という概念が前面に押し出されており立方体を組み合わせたシーン以外は適用しにくいような印象を受けます
bull 本セッションでは Modular の部分は抑えて説明しますので論文の流れと多少異なります
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ
ndash 間接光計算手法の解説 (論文 4 節)ndash シーン分割による高速化の解説 (論文 5 節)
3 まとめ
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ
ndash 間接光計算手法の解説 (論文 4 節)ndash シーン分割による高速化の解説 (論文 5 節)
3 まとめ
CEDEC 2012
間接光の概要
bull そもそも間接光って何
rArr 光源から一度以上物体に反射して届く光
CEDEC 2012
間接光の概要
bull 間接光があると何が良いのか rArr 柔らかなライティングを再現できシーン全体の 説得力が増す
解説手法は様々な高速化や制約を設けてリアルタイム処理を実現
その分非常に計算負荷が高くリアルタイム処理は困難
直接光 + 間接光直接光
CEDEC 2012
解説手法の計算概要
直接光
直接光 + 間接光
背景オブジェクト( 静的オブジェクトに
限る )その他オブジェ
クト
分類
統合
+
+
間接光計算 間接光計算光の伝播
CEDEC 2012
Step1 背景オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
間接光計算の考え方
bull 背景オブジェクトの間接光はメッシュ頂点で計算
直接光直接光 + 間接光 間接光+=
頂点の情報のみ抽出補間
間接光変換処理
CEDEC 2012
間接光計算の考え方
bull メッシュ頂点のライティング状態をベクトルで表記
119826 シーンの頂点数
119826行 [119949120783119949120784119949120785⋮]1
ライティングベクトル
今後スライド中でライティング状態を
絵で示してもベクトルで表記しても等価
2
3
CEDEC 2012
間接光計算の考え方
bull 光の変換行列 F を用いた間接光計算119826 シーンの 頂点数
119949119941 サンプル点の直接光成分119949119946119951119941 サンプル点の間接光成分
直接光直接光 + 間接光 間接光+=
頂点の情報のみ抽出補間
間接光変換処理F[
119949119946119951119941120783119949119946119951119941120784119949119946119951119941120785⋮
119949119946119951119941119930] timesiquest [
119949119941120783119949119941120784119949119941120785⋮119949119941 119930
][ iquest ]
CEDEC 2012
間接光計算の考え方
bull 光の変換行列 F の計算
119826 シーンの頂点数
iquest119826行iquest
⋮⋮
⋮25 82
20
50 ⋯
光の変換行列F
行列 F は静的オブジェクト
なら前計算可能
CEDEC 2012
間接光計算の考え方
bull 要点1 背景オブジェクトの間接光はメッシュ頂点で計算2 ライティング状態はベクトルで表記可能3 直接光は光の変換行列 F を用いて間接光に変換4 光の変換行列 F は静的オブジェクトなら前計算可
能
+=
F[119949119946119951119941120783119949119946119951119941120784119949119946119951119941120785⋮
119949119946119951119941119930] timesiquest [
119949119941120783119949119941120784119949119941120785⋮119949119941 119930
][ iquest ]
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへ光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
問題提起
ただし実行速度が不十分 + 頂点数の増加で処理量が爆発
上記計算式で間接光は計算可能
F[119949119946119951119941120783119949119946119951119941120784119949119946119951119941120785⋮
119949119946119951119941119930] timesiquest [
119949119941120783119949119941120784119949119941120785⋮119949119941 119930
][ iquest ]
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
bull 全ての直接光は前計算した既知の状態の重ね合わせで近似できると仮定
キーアイディア
times01
+
times02
times04
+
現在の状態既知の状態
≒
CEDEC 2012
bull 直接光が変化しても係数のみが変化ndash 既知の状態は変化しない
キーアイディア
times04
+
times03
times01
+
現在の状態既知の状態
≒
CEDEC 2012
bull これはベクトルの足し合わせとして表現可能
キーアイディア
119960120783 +119960120784 +119960120785≑ [119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930]
119949119941 現在の 直接光の 状態
既知の状態
times01
+
times02
times04
+
[ 119949119941120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
CEDEC 2012
bull 各状態には対になる間接光の状態がそれぞれ存在
キーアイディア
119960120783 +119960120784 +119960120785≑
times120778 times120778 times120778times120778
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
CEDEC 2012
bull 直接光側と同じ重みで間接光側を足し合わす事でを近似可能
キーアイディア
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778times120778
CEDEC 2012
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778times120778
bull このロジックは下記条件を満たせば非常に高速1 必要な係数が十分に少ない2 係数が高速に計算可能
キーアイディア
今後既知の状態をrdquo基底rdquoと呼ぶ
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説
1 最適な基底の計算方法 2 係数の計算方法
- ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説
1 最適な基底の計算方法 2 係数の計算方法
- ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
を求める
bull 2方向のアプローチが考えられるndash 直接光優先 を先に求めて
から
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778 times120778
CEDEC 2012
を求める
bull 2方向のアプローチが考えられるndash 間接光優先 を先に求めて
から
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times119813minus120783 times119813minus120783 times119813minus120783 times119813minus120783
CEDEC 2012
を求める
bull 両方を並行して解説ndash 最終的には両方をハイブリッドしたアプローチで
より良い基底を算出
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778 times120778times119813minus120783 times119813minus120783 times119813minus120783 times119813minus120783
CEDEC 2012
最適な基底
bull 最適な基底は同じシーンでも場合によって異なるndash それぞれに特化した基底のほうが良い結果を得ら
れる
サンプリングベースの基底を採用
CEDEC 2012
bull 様々な状況でライティングした結果を集め特異値分解を用いて基底を算出
サンプリングベースの基底
特異値分解 119861119889特異値分解 119861119894119899 119889
CEDEC 2012
サンプルの選び方について
bull 特異値分解で得られるのは「全ての入力サンプルを良く近似する基底」
bull サンプルで用いる光源のタイプ方向位置を予め分かっている範囲で厳選するのが好ましい
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
119871119889
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
bull 入力された行列をという 3 行列に分解ndash 数多くの数学ライブラリがサポート
特異値分解 (Singular Value Decomposition)
119872
SVD
119880 Σ 119881119879lowast lowastiquest
が異なれば当然も異なる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
左から重要度順に並んでいるため必要な数だけ用いればよい
CEDEC 2012
基底による直接光の近似
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ 3 まとめ
CEDEC 2012
bull 本セッションの目的ndash ゲーム業界にとって有望な技術の理解及び知識の共有
bull 本セッションの内容ndash [ Modular Radiance Transfer 法]を利用した リアルタイム GI(Global Illumination) 技術の解説
発表の概要
CEDEC 2012
解説技術の特徴
bull 長所ndash とにかく高速ndash 多重反射を扱える
bull 短所ndash 使い所を選ぶndash 多少込み入った前計算が必要
使いこなせればワンランク上の表現が可
能
CEDEC 2012
注意点
bull 元論文では Modular ( モジュール式 ) という概念が前面に押し出されており立方体を組み合わせたシーン以外は適用しにくいような印象を受けます
bull 本セッションでは Modular の部分は抑えて説明しますので論文の流れと多少異なります
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ
ndash 間接光計算手法の解説 (論文 4 節)ndash シーン分割による高速化の解説 (論文 5 節)
3 まとめ
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ
ndash 間接光計算手法の解説 (論文 4 節)ndash シーン分割による高速化の解説 (論文 5 節)
3 まとめ
CEDEC 2012
間接光の概要
bull そもそも間接光って何
rArr 光源から一度以上物体に反射して届く光
CEDEC 2012
間接光の概要
bull 間接光があると何が良いのか rArr 柔らかなライティングを再現できシーン全体の 説得力が増す
解説手法は様々な高速化や制約を設けてリアルタイム処理を実現
その分非常に計算負荷が高くリアルタイム処理は困難
直接光 + 間接光直接光
CEDEC 2012
解説手法の計算概要
直接光
直接光 + 間接光
背景オブジェクト( 静的オブジェクトに
限る )その他オブジェ
クト
分類
統合
+
+
間接光計算 間接光計算光の伝播
CEDEC 2012
Step1 背景オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
間接光計算の考え方
bull 背景オブジェクトの間接光はメッシュ頂点で計算
直接光直接光 + 間接光 間接光+=
頂点の情報のみ抽出補間
間接光変換処理
CEDEC 2012
間接光計算の考え方
bull メッシュ頂点のライティング状態をベクトルで表記
119826 シーンの頂点数
119826行 [119949120783119949120784119949120785⋮]1
ライティングベクトル
今後スライド中でライティング状態を
絵で示してもベクトルで表記しても等価
2
3
CEDEC 2012
間接光計算の考え方
bull 光の変換行列 F を用いた間接光計算119826 シーンの 頂点数
119949119941 サンプル点の直接光成分119949119946119951119941 サンプル点の間接光成分
直接光直接光 + 間接光 間接光+=
頂点の情報のみ抽出補間
間接光変換処理F[
119949119946119951119941120783119949119946119951119941120784119949119946119951119941120785⋮
119949119946119951119941119930] timesiquest [
119949119941120783119949119941120784119949119941120785⋮119949119941 119930
][ iquest ]
CEDEC 2012
間接光計算の考え方
bull 光の変換行列 F の計算
119826 シーンの頂点数
iquest119826行iquest
⋮⋮
⋮25 82
20
50 ⋯
光の変換行列F
行列 F は静的オブジェクト
なら前計算可能
CEDEC 2012
間接光計算の考え方
bull 要点1 背景オブジェクトの間接光はメッシュ頂点で計算2 ライティング状態はベクトルで表記可能3 直接光は光の変換行列 F を用いて間接光に変換4 光の変換行列 F は静的オブジェクトなら前計算可
能
+=
F[119949119946119951119941120783119949119946119951119941120784119949119946119951119941120785⋮
119949119946119951119941119930] timesiquest [
119949119941120783119949119941120784119949119941120785⋮119949119941 119930
][ iquest ]
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへ光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
問題提起
ただし実行速度が不十分 + 頂点数の増加で処理量が爆発
上記計算式で間接光は計算可能
F[119949119946119951119941120783119949119946119951119941120784119949119946119951119941120785⋮
119949119946119951119941119930] timesiquest [
119949119941120783119949119941120784119949119941120785⋮119949119941 119930
][ iquest ]
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
bull 全ての直接光は前計算した既知の状態の重ね合わせで近似できると仮定
キーアイディア
times01
+
times02
times04
+
現在の状態既知の状態
≒
CEDEC 2012
bull 直接光が変化しても係数のみが変化ndash 既知の状態は変化しない
キーアイディア
times04
+
times03
times01
+
現在の状態既知の状態
≒
CEDEC 2012
bull これはベクトルの足し合わせとして表現可能
キーアイディア
119960120783 +119960120784 +119960120785≑ [119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930]
119949119941 現在の 直接光の 状態
既知の状態
times01
+
times02
times04
+
[ 119949119941120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
CEDEC 2012
bull 各状態には対になる間接光の状態がそれぞれ存在
キーアイディア
119960120783 +119960120784 +119960120785≑
times120778 times120778 times120778times120778
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
CEDEC 2012
bull 直接光側と同じ重みで間接光側を足し合わす事でを近似可能
キーアイディア
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778times120778
CEDEC 2012
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778times120778
bull このロジックは下記条件を満たせば非常に高速1 必要な係数が十分に少ない2 係数が高速に計算可能
キーアイディア
今後既知の状態をrdquo基底rdquoと呼ぶ
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説
1 最適な基底の計算方法 2 係数の計算方法
- ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説
1 最適な基底の計算方法 2 係数の計算方法
- ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
を求める
bull 2方向のアプローチが考えられるndash 直接光優先 を先に求めて
から
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778 times120778
CEDEC 2012
を求める
bull 2方向のアプローチが考えられるndash 間接光優先 を先に求めて
から
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times119813minus120783 times119813minus120783 times119813minus120783 times119813minus120783
CEDEC 2012
を求める
bull 両方を並行して解説ndash 最終的には両方をハイブリッドしたアプローチで
より良い基底を算出
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778 times120778times119813minus120783 times119813minus120783 times119813minus120783 times119813minus120783
CEDEC 2012
最適な基底
bull 最適な基底は同じシーンでも場合によって異なるndash それぞれに特化した基底のほうが良い結果を得ら
れる
サンプリングベースの基底を採用
CEDEC 2012
bull 様々な状況でライティングした結果を集め特異値分解を用いて基底を算出
サンプリングベースの基底
特異値分解 119861119889特異値分解 119861119894119899 119889
CEDEC 2012
サンプルの選び方について
bull 特異値分解で得られるのは「全ての入力サンプルを良く近似する基底」
bull サンプルで用いる光源のタイプ方向位置を予め分かっている範囲で厳選するのが好ましい
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
119871119889
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
bull 入力された行列をという 3 行列に分解ndash 数多くの数学ライブラリがサポート
特異値分解 (Singular Value Decomposition)
119872
SVD
119880 Σ 119881119879lowast lowastiquest
が異なれば当然も異なる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
左から重要度順に並んでいるため必要な数だけ用いればよい
CEDEC 2012
基底による直接光の近似
CEDEC 2012
bull 本セッションの目的ndash ゲーム業界にとって有望な技術の理解及び知識の共有
bull 本セッションの内容ndash [ Modular Radiance Transfer 法]を利用した リアルタイム GI(Global Illumination) 技術の解説
発表の概要
CEDEC 2012
解説技術の特徴
bull 長所ndash とにかく高速ndash 多重反射を扱える
bull 短所ndash 使い所を選ぶndash 多少込み入った前計算が必要
使いこなせればワンランク上の表現が可
能
CEDEC 2012
注意点
bull 元論文では Modular ( モジュール式 ) という概念が前面に押し出されており立方体を組み合わせたシーン以外は適用しにくいような印象を受けます
bull 本セッションでは Modular の部分は抑えて説明しますので論文の流れと多少異なります
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ
ndash 間接光計算手法の解説 (論文 4 節)ndash シーン分割による高速化の解説 (論文 5 節)
3 まとめ
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ
ndash 間接光計算手法の解説 (論文 4 節)ndash シーン分割による高速化の解説 (論文 5 節)
3 まとめ
CEDEC 2012
間接光の概要
bull そもそも間接光って何
rArr 光源から一度以上物体に反射して届く光
CEDEC 2012
間接光の概要
bull 間接光があると何が良いのか rArr 柔らかなライティングを再現できシーン全体の 説得力が増す
解説手法は様々な高速化や制約を設けてリアルタイム処理を実現
その分非常に計算負荷が高くリアルタイム処理は困難
直接光 + 間接光直接光
CEDEC 2012
解説手法の計算概要
直接光
直接光 + 間接光
背景オブジェクト( 静的オブジェクトに
限る )その他オブジェ
クト
分類
統合
+
+
間接光計算 間接光計算光の伝播
CEDEC 2012
Step1 背景オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
間接光計算の考え方
bull 背景オブジェクトの間接光はメッシュ頂点で計算
直接光直接光 + 間接光 間接光+=
頂点の情報のみ抽出補間
間接光変換処理
CEDEC 2012
間接光計算の考え方
bull メッシュ頂点のライティング状態をベクトルで表記
119826 シーンの頂点数
119826行 [119949120783119949120784119949120785⋮]1
ライティングベクトル
今後スライド中でライティング状態を
絵で示してもベクトルで表記しても等価
2
3
CEDEC 2012
間接光計算の考え方
bull 光の変換行列 F を用いた間接光計算119826 シーンの 頂点数
119949119941 サンプル点の直接光成分119949119946119951119941 サンプル点の間接光成分
直接光直接光 + 間接光 間接光+=
頂点の情報のみ抽出補間
間接光変換処理F[
119949119946119951119941120783119949119946119951119941120784119949119946119951119941120785⋮
119949119946119951119941119930] timesiquest [
119949119941120783119949119941120784119949119941120785⋮119949119941 119930
][ iquest ]
CEDEC 2012
間接光計算の考え方
bull 光の変換行列 F の計算
119826 シーンの頂点数
iquest119826行iquest
⋮⋮
⋮25 82
20
50 ⋯
光の変換行列F
行列 F は静的オブジェクト
なら前計算可能
CEDEC 2012
間接光計算の考え方
bull 要点1 背景オブジェクトの間接光はメッシュ頂点で計算2 ライティング状態はベクトルで表記可能3 直接光は光の変換行列 F を用いて間接光に変換4 光の変換行列 F は静的オブジェクトなら前計算可
能
+=
F[119949119946119951119941120783119949119946119951119941120784119949119946119951119941120785⋮
119949119946119951119941119930] timesiquest [
119949119941120783119949119941120784119949119941120785⋮119949119941 119930
][ iquest ]
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへ光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
問題提起
ただし実行速度が不十分 + 頂点数の増加で処理量が爆発
上記計算式で間接光は計算可能
F[119949119946119951119941120783119949119946119951119941120784119949119946119951119941120785⋮
119949119946119951119941119930] timesiquest [
119949119941120783119949119941120784119949119941120785⋮119949119941 119930
][ iquest ]
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
bull 全ての直接光は前計算した既知の状態の重ね合わせで近似できると仮定
キーアイディア
times01
+
times02
times04
+
現在の状態既知の状態
≒
CEDEC 2012
bull 直接光が変化しても係数のみが変化ndash 既知の状態は変化しない
キーアイディア
times04
+
times03
times01
+
現在の状態既知の状態
≒
CEDEC 2012
bull これはベクトルの足し合わせとして表現可能
キーアイディア
119960120783 +119960120784 +119960120785≑ [119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930]
119949119941 現在の 直接光の 状態
既知の状態
times01
+
times02
times04
+
[ 119949119941120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
CEDEC 2012
bull 各状態には対になる間接光の状態がそれぞれ存在
キーアイディア
119960120783 +119960120784 +119960120785≑
times120778 times120778 times120778times120778
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
CEDEC 2012
bull 直接光側と同じ重みで間接光側を足し合わす事でを近似可能
キーアイディア
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778times120778
CEDEC 2012
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778times120778
bull このロジックは下記条件を満たせば非常に高速1 必要な係数が十分に少ない2 係数が高速に計算可能
キーアイディア
今後既知の状態をrdquo基底rdquoと呼ぶ
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説
1 最適な基底の計算方法 2 係数の計算方法
- ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説
1 最適な基底の計算方法 2 係数の計算方法
- ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
を求める
bull 2方向のアプローチが考えられるndash 直接光優先 を先に求めて
から
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778 times120778
CEDEC 2012
を求める
bull 2方向のアプローチが考えられるndash 間接光優先 を先に求めて
から
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times119813minus120783 times119813minus120783 times119813minus120783 times119813minus120783
CEDEC 2012
を求める
bull 両方を並行して解説ndash 最終的には両方をハイブリッドしたアプローチで
より良い基底を算出
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778 times120778times119813minus120783 times119813minus120783 times119813minus120783 times119813minus120783
CEDEC 2012
最適な基底
bull 最適な基底は同じシーンでも場合によって異なるndash それぞれに特化した基底のほうが良い結果を得ら
れる
サンプリングベースの基底を採用
CEDEC 2012
bull 様々な状況でライティングした結果を集め特異値分解を用いて基底を算出
サンプリングベースの基底
特異値分解 119861119889特異値分解 119861119894119899 119889
CEDEC 2012
サンプルの選び方について
bull 特異値分解で得られるのは「全ての入力サンプルを良く近似する基底」
bull サンプルで用いる光源のタイプ方向位置を予め分かっている範囲で厳選するのが好ましい
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
119871119889
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
bull 入力された行列をという 3 行列に分解ndash 数多くの数学ライブラリがサポート
特異値分解 (Singular Value Decomposition)
119872
SVD
119880 Σ 119881119879lowast lowastiquest
が異なれば当然も異なる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
左から重要度順に並んでいるため必要な数だけ用いればよい
CEDEC 2012
基底による直接光の近似
CEDEC 2012
解説技術の特徴
bull 長所ndash とにかく高速ndash 多重反射を扱える
bull 短所ndash 使い所を選ぶndash 多少込み入った前計算が必要
使いこなせればワンランク上の表現が可
能
CEDEC 2012
注意点
bull 元論文では Modular ( モジュール式 ) という概念が前面に押し出されており立方体を組み合わせたシーン以外は適用しにくいような印象を受けます
bull 本セッションでは Modular の部分は抑えて説明しますので論文の流れと多少異なります
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ
ndash 間接光計算手法の解説 (論文 4 節)ndash シーン分割による高速化の解説 (論文 5 節)
3 まとめ
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ
ndash 間接光計算手法の解説 (論文 4 節)ndash シーン分割による高速化の解説 (論文 5 節)
3 まとめ
CEDEC 2012
間接光の概要
bull そもそも間接光って何
rArr 光源から一度以上物体に反射して届く光
CEDEC 2012
間接光の概要
bull 間接光があると何が良いのか rArr 柔らかなライティングを再現できシーン全体の 説得力が増す
解説手法は様々な高速化や制約を設けてリアルタイム処理を実現
その分非常に計算負荷が高くリアルタイム処理は困難
直接光 + 間接光直接光
CEDEC 2012
解説手法の計算概要
直接光
直接光 + 間接光
背景オブジェクト( 静的オブジェクトに
限る )その他オブジェ
クト
分類
統合
+
+
間接光計算 間接光計算光の伝播
CEDEC 2012
Step1 背景オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
間接光計算の考え方
bull 背景オブジェクトの間接光はメッシュ頂点で計算
直接光直接光 + 間接光 間接光+=
頂点の情報のみ抽出補間
間接光変換処理
CEDEC 2012
間接光計算の考え方
bull メッシュ頂点のライティング状態をベクトルで表記
119826 シーンの頂点数
119826行 [119949120783119949120784119949120785⋮]1
ライティングベクトル
今後スライド中でライティング状態を
絵で示してもベクトルで表記しても等価
2
3
CEDEC 2012
間接光計算の考え方
bull 光の変換行列 F を用いた間接光計算119826 シーンの 頂点数
119949119941 サンプル点の直接光成分119949119946119951119941 サンプル点の間接光成分
直接光直接光 + 間接光 間接光+=
頂点の情報のみ抽出補間
間接光変換処理F[
119949119946119951119941120783119949119946119951119941120784119949119946119951119941120785⋮
119949119946119951119941119930] timesiquest [
119949119941120783119949119941120784119949119941120785⋮119949119941 119930
][ iquest ]
CEDEC 2012
間接光計算の考え方
bull 光の変換行列 F の計算
119826 シーンの頂点数
iquest119826行iquest
⋮⋮
⋮25 82
20
50 ⋯
光の変換行列F
行列 F は静的オブジェクト
なら前計算可能
CEDEC 2012
間接光計算の考え方
bull 要点1 背景オブジェクトの間接光はメッシュ頂点で計算2 ライティング状態はベクトルで表記可能3 直接光は光の変換行列 F を用いて間接光に変換4 光の変換行列 F は静的オブジェクトなら前計算可
能
+=
F[119949119946119951119941120783119949119946119951119941120784119949119946119951119941120785⋮
119949119946119951119941119930] timesiquest [
119949119941120783119949119941120784119949119941120785⋮119949119941 119930
][ iquest ]
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへ光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
問題提起
ただし実行速度が不十分 + 頂点数の増加で処理量が爆発
上記計算式で間接光は計算可能
F[119949119946119951119941120783119949119946119951119941120784119949119946119951119941120785⋮
119949119946119951119941119930] timesiquest [
119949119941120783119949119941120784119949119941120785⋮119949119941 119930
][ iquest ]
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
bull 全ての直接光は前計算した既知の状態の重ね合わせで近似できると仮定
キーアイディア
times01
+
times02
times04
+
現在の状態既知の状態
≒
CEDEC 2012
bull 直接光が変化しても係数のみが変化ndash 既知の状態は変化しない
キーアイディア
times04
+
times03
times01
+
現在の状態既知の状態
≒
CEDEC 2012
bull これはベクトルの足し合わせとして表現可能
キーアイディア
119960120783 +119960120784 +119960120785≑ [119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930]
119949119941 現在の 直接光の 状態
既知の状態
times01
+
times02
times04
+
[ 119949119941120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
CEDEC 2012
bull 各状態には対になる間接光の状態がそれぞれ存在
キーアイディア
119960120783 +119960120784 +119960120785≑
times120778 times120778 times120778times120778
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
CEDEC 2012
bull 直接光側と同じ重みで間接光側を足し合わす事でを近似可能
キーアイディア
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778times120778
CEDEC 2012
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778times120778
bull このロジックは下記条件を満たせば非常に高速1 必要な係数が十分に少ない2 係数が高速に計算可能
キーアイディア
今後既知の状態をrdquo基底rdquoと呼ぶ
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説
1 最適な基底の計算方法 2 係数の計算方法
- ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説
1 最適な基底の計算方法 2 係数の計算方法
- ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
を求める
bull 2方向のアプローチが考えられるndash 直接光優先 を先に求めて
から
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778 times120778
CEDEC 2012
を求める
bull 2方向のアプローチが考えられるndash 間接光優先 を先に求めて
から
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times119813minus120783 times119813minus120783 times119813minus120783 times119813minus120783
CEDEC 2012
を求める
bull 両方を並行して解説ndash 最終的には両方をハイブリッドしたアプローチで
より良い基底を算出
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778 times120778times119813minus120783 times119813minus120783 times119813minus120783 times119813minus120783
CEDEC 2012
最適な基底
bull 最適な基底は同じシーンでも場合によって異なるndash それぞれに特化した基底のほうが良い結果を得ら
れる
サンプリングベースの基底を採用
CEDEC 2012
bull 様々な状況でライティングした結果を集め特異値分解を用いて基底を算出
サンプリングベースの基底
特異値分解 119861119889特異値分解 119861119894119899 119889
CEDEC 2012
サンプルの選び方について
bull 特異値分解で得られるのは「全ての入力サンプルを良く近似する基底」
bull サンプルで用いる光源のタイプ方向位置を予め分かっている範囲で厳選するのが好ましい
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
119871119889
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
bull 入力された行列をという 3 行列に分解ndash 数多くの数学ライブラリがサポート
特異値分解 (Singular Value Decomposition)
119872
SVD
119880 Σ 119881119879lowast lowastiquest
が異なれば当然も異なる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
左から重要度順に並んでいるため必要な数だけ用いればよい
CEDEC 2012
基底による直接光の近似
CEDEC 2012
注意点
bull 元論文では Modular ( モジュール式 ) という概念が前面に押し出されており立方体を組み合わせたシーン以外は適用しにくいような印象を受けます
bull 本セッションでは Modular の部分は抑えて説明しますので論文の流れと多少異なります
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ
ndash 間接光計算手法の解説 (論文 4 節)ndash シーン分割による高速化の解説 (論文 5 節)
3 まとめ
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ
ndash 間接光計算手法の解説 (論文 4 節)ndash シーン分割による高速化の解説 (論文 5 節)
3 まとめ
CEDEC 2012
間接光の概要
bull そもそも間接光って何
rArr 光源から一度以上物体に反射して届く光
CEDEC 2012
間接光の概要
bull 間接光があると何が良いのか rArr 柔らかなライティングを再現できシーン全体の 説得力が増す
解説手法は様々な高速化や制約を設けてリアルタイム処理を実現
その分非常に計算負荷が高くリアルタイム処理は困難
直接光 + 間接光直接光
CEDEC 2012
解説手法の計算概要
直接光
直接光 + 間接光
背景オブジェクト( 静的オブジェクトに
限る )その他オブジェ
クト
分類
統合
+
+
間接光計算 間接光計算光の伝播
CEDEC 2012
Step1 背景オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
間接光計算の考え方
bull 背景オブジェクトの間接光はメッシュ頂点で計算
直接光直接光 + 間接光 間接光+=
頂点の情報のみ抽出補間
間接光変換処理
CEDEC 2012
間接光計算の考え方
bull メッシュ頂点のライティング状態をベクトルで表記
119826 シーンの頂点数
119826行 [119949120783119949120784119949120785⋮]1
ライティングベクトル
今後スライド中でライティング状態を
絵で示してもベクトルで表記しても等価
2
3
CEDEC 2012
間接光計算の考え方
bull 光の変換行列 F を用いた間接光計算119826 シーンの 頂点数
119949119941 サンプル点の直接光成分119949119946119951119941 サンプル点の間接光成分
直接光直接光 + 間接光 間接光+=
頂点の情報のみ抽出補間
間接光変換処理F[
119949119946119951119941120783119949119946119951119941120784119949119946119951119941120785⋮
119949119946119951119941119930] timesiquest [
119949119941120783119949119941120784119949119941120785⋮119949119941 119930
][ iquest ]
CEDEC 2012
間接光計算の考え方
bull 光の変換行列 F の計算
119826 シーンの頂点数
iquest119826行iquest
⋮⋮
⋮25 82
20
50 ⋯
光の変換行列F
行列 F は静的オブジェクト
なら前計算可能
CEDEC 2012
間接光計算の考え方
bull 要点1 背景オブジェクトの間接光はメッシュ頂点で計算2 ライティング状態はベクトルで表記可能3 直接光は光の変換行列 F を用いて間接光に変換4 光の変換行列 F は静的オブジェクトなら前計算可
能
+=
F[119949119946119951119941120783119949119946119951119941120784119949119946119951119941120785⋮
119949119946119951119941119930] timesiquest [
119949119941120783119949119941120784119949119941120785⋮119949119941 119930
][ iquest ]
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへ光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
問題提起
ただし実行速度が不十分 + 頂点数の増加で処理量が爆発
上記計算式で間接光は計算可能
F[119949119946119951119941120783119949119946119951119941120784119949119946119951119941120785⋮
119949119946119951119941119930] timesiquest [
119949119941120783119949119941120784119949119941120785⋮119949119941 119930
][ iquest ]
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
bull 全ての直接光は前計算した既知の状態の重ね合わせで近似できると仮定
キーアイディア
times01
+
times02
times04
+
現在の状態既知の状態
≒
CEDEC 2012
bull 直接光が変化しても係数のみが変化ndash 既知の状態は変化しない
キーアイディア
times04
+
times03
times01
+
現在の状態既知の状態
≒
CEDEC 2012
bull これはベクトルの足し合わせとして表現可能
キーアイディア
119960120783 +119960120784 +119960120785≑ [119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930]
119949119941 現在の 直接光の 状態
既知の状態
times01
+
times02
times04
+
[ 119949119941120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
CEDEC 2012
bull 各状態には対になる間接光の状態がそれぞれ存在
キーアイディア
119960120783 +119960120784 +119960120785≑
times120778 times120778 times120778times120778
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
CEDEC 2012
bull 直接光側と同じ重みで間接光側を足し合わす事でを近似可能
キーアイディア
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778times120778
CEDEC 2012
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778times120778
bull このロジックは下記条件を満たせば非常に高速1 必要な係数が十分に少ない2 係数が高速に計算可能
キーアイディア
今後既知の状態をrdquo基底rdquoと呼ぶ
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説
1 最適な基底の計算方法 2 係数の計算方法
- ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説
1 最適な基底の計算方法 2 係数の計算方法
- ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
を求める
bull 2方向のアプローチが考えられるndash 直接光優先 を先に求めて
から
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778 times120778
CEDEC 2012
を求める
bull 2方向のアプローチが考えられるndash 間接光優先 を先に求めて
から
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times119813minus120783 times119813minus120783 times119813minus120783 times119813minus120783
CEDEC 2012
を求める
bull 両方を並行して解説ndash 最終的には両方をハイブリッドしたアプローチで
より良い基底を算出
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778 times120778times119813minus120783 times119813minus120783 times119813minus120783 times119813minus120783
CEDEC 2012
最適な基底
bull 最適な基底は同じシーンでも場合によって異なるndash それぞれに特化した基底のほうが良い結果を得ら
れる
サンプリングベースの基底を採用
CEDEC 2012
bull 様々な状況でライティングした結果を集め特異値分解を用いて基底を算出
サンプリングベースの基底
特異値分解 119861119889特異値分解 119861119894119899 119889
CEDEC 2012
サンプルの選び方について
bull 特異値分解で得られるのは「全ての入力サンプルを良く近似する基底」
bull サンプルで用いる光源のタイプ方向位置を予め分かっている範囲で厳選するのが好ましい
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
119871119889
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
bull 入力された行列をという 3 行列に分解ndash 数多くの数学ライブラリがサポート
特異値分解 (Singular Value Decomposition)
119872
SVD
119880 Σ 119881119879lowast lowastiquest
が異なれば当然も異なる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
左から重要度順に並んでいるため必要な数だけ用いればよい
CEDEC 2012
基底による直接光の近似
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ
ndash 間接光計算手法の解説 (論文 4 節)ndash シーン分割による高速化の解説 (論文 5 節)
3 まとめ
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ
ndash 間接光計算手法の解説 (論文 4 節)ndash シーン分割による高速化の解説 (論文 5 節)
3 まとめ
CEDEC 2012
間接光の概要
bull そもそも間接光って何
rArr 光源から一度以上物体に反射して届く光
CEDEC 2012
間接光の概要
bull 間接光があると何が良いのか rArr 柔らかなライティングを再現できシーン全体の 説得力が増す
解説手法は様々な高速化や制約を設けてリアルタイム処理を実現
その分非常に計算負荷が高くリアルタイム処理は困難
直接光 + 間接光直接光
CEDEC 2012
解説手法の計算概要
直接光
直接光 + 間接光
背景オブジェクト( 静的オブジェクトに
限る )その他オブジェ
クト
分類
統合
+
+
間接光計算 間接光計算光の伝播
CEDEC 2012
Step1 背景オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
間接光計算の考え方
bull 背景オブジェクトの間接光はメッシュ頂点で計算
直接光直接光 + 間接光 間接光+=
頂点の情報のみ抽出補間
間接光変換処理
CEDEC 2012
間接光計算の考え方
bull メッシュ頂点のライティング状態をベクトルで表記
119826 シーンの頂点数
119826行 [119949120783119949120784119949120785⋮]1
ライティングベクトル
今後スライド中でライティング状態を
絵で示してもベクトルで表記しても等価
2
3
CEDEC 2012
間接光計算の考え方
bull 光の変換行列 F を用いた間接光計算119826 シーンの 頂点数
119949119941 サンプル点の直接光成分119949119946119951119941 サンプル点の間接光成分
直接光直接光 + 間接光 間接光+=
頂点の情報のみ抽出補間
間接光変換処理F[
119949119946119951119941120783119949119946119951119941120784119949119946119951119941120785⋮
119949119946119951119941119930] timesiquest [
119949119941120783119949119941120784119949119941120785⋮119949119941 119930
][ iquest ]
CEDEC 2012
間接光計算の考え方
bull 光の変換行列 F の計算
119826 シーンの頂点数
iquest119826行iquest
⋮⋮
⋮25 82
20
50 ⋯
光の変換行列F
行列 F は静的オブジェクト
なら前計算可能
CEDEC 2012
間接光計算の考え方
bull 要点1 背景オブジェクトの間接光はメッシュ頂点で計算2 ライティング状態はベクトルで表記可能3 直接光は光の変換行列 F を用いて間接光に変換4 光の変換行列 F は静的オブジェクトなら前計算可
能
+=
F[119949119946119951119941120783119949119946119951119941120784119949119946119951119941120785⋮
119949119946119951119941119930] timesiquest [
119949119941120783119949119941120784119949119941120785⋮119949119941 119930
][ iquest ]
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへ光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
問題提起
ただし実行速度が不十分 + 頂点数の増加で処理量が爆発
上記計算式で間接光は計算可能
F[119949119946119951119941120783119949119946119951119941120784119949119946119951119941120785⋮
119949119946119951119941119930] timesiquest [
119949119941120783119949119941120784119949119941120785⋮119949119941 119930
][ iquest ]
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
bull 全ての直接光は前計算した既知の状態の重ね合わせで近似できると仮定
キーアイディア
times01
+
times02
times04
+
現在の状態既知の状態
≒
CEDEC 2012
bull 直接光が変化しても係数のみが変化ndash 既知の状態は変化しない
キーアイディア
times04
+
times03
times01
+
現在の状態既知の状態
≒
CEDEC 2012
bull これはベクトルの足し合わせとして表現可能
キーアイディア
119960120783 +119960120784 +119960120785≑ [119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930]
119949119941 現在の 直接光の 状態
既知の状態
times01
+
times02
times04
+
[ 119949119941120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
CEDEC 2012
bull 各状態には対になる間接光の状態がそれぞれ存在
キーアイディア
119960120783 +119960120784 +119960120785≑
times120778 times120778 times120778times120778
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
CEDEC 2012
bull 直接光側と同じ重みで間接光側を足し合わす事でを近似可能
キーアイディア
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778times120778
CEDEC 2012
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778times120778
bull このロジックは下記条件を満たせば非常に高速1 必要な係数が十分に少ない2 係数が高速に計算可能
キーアイディア
今後既知の状態をrdquo基底rdquoと呼ぶ
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説
1 最適な基底の計算方法 2 係数の計算方法
- ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説
1 最適な基底の計算方法 2 係数の計算方法
- ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
を求める
bull 2方向のアプローチが考えられるndash 直接光優先 を先に求めて
から
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778 times120778
CEDEC 2012
を求める
bull 2方向のアプローチが考えられるndash 間接光優先 を先に求めて
から
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times119813minus120783 times119813minus120783 times119813minus120783 times119813minus120783
CEDEC 2012
を求める
bull 両方を並行して解説ndash 最終的には両方をハイブリッドしたアプローチで
より良い基底を算出
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778 times120778times119813minus120783 times119813minus120783 times119813minus120783 times119813minus120783
CEDEC 2012
最適な基底
bull 最適な基底は同じシーンでも場合によって異なるndash それぞれに特化した基底のほうが良い結果を得ら
れる
サンプリングベースの基底を採用
CEDEC 2012
bull 様々な状況でライティングした結果を集め特異値分解を用いて基底を算出
サンプリングベースの基底
特異値分解 119861119889特異値分解 119861119894119899 119889
CEDEC 2012
サンプルの選び方について
bull 特異値分解で得られるのは「全ての入力サンプルを良く近似する基底」
bull サンプルで用いる光源のタイプ方向位置を予め分かっている範囲で厳選するのが好ましい
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
119871119889
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
bull 入力された行列をという 3 行列に分解ndash 数多くの数学ライブラリがサポート
特異値分解 (Singular Value Decomposition)
119872
SVD
119880 Σ 119881119879lowast lowastiquest
が異なれば当然も異なる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
左から重要度順に並んでいるため必要な数だけ用いればよい
CEDEC 2012
基底による直接光の近似
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ
ndash 間接光計算手法の解説 (論文 4 節)ndash シーン分割による高速化の解説 (論文 5 節)
3 まとめ
CEDEC 2012
間接光の概要
bull そもそも間接光って何
rArr 光源から一度以上物体に反射して届く光
CEDEC 2012
間接光の概要
bull 間接光があると何が良いのか rArr 柔らかなライティングを再現できシーン全体の 説得力が増す
解説手法は様々な高速化や制約を設けてリアルタイム処理を実現
その分非常に計算負荷が高くリアルタイム処理は困難
直接光 + 間接光直接光
CEDEC 2012
解説手法の計算概要
直接光
直接光 + 間接光
背景オブジェクト( 静的オブジェクトに
限る )その他オブジェ
クト
分類
統合
+
+
間接光計算 間接光計算光の伝播
CEDEC 2012
Step1 背景オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
間接光計算の考え方
bull 背景オブジェクトの間接光はメッシュ頂点で計算
直接光直接光 + 間接光 間接光+=
頂点の情報のみ抽出補間
間接光変換処理
CEDEC 2012
間接光計算の考え方
bull メッシュ頂点のライティング状態をベクトルで表記
119826 シーンの頂点数
119826行 [119949120783119949120784119949120785⋮]1
ライティングベクトル
今後スライド中でライティング状態を
絵で示してもベクトルで表記しても等価
2
3
CEDEC 2012
間接光計算の考え方
bull 光の変換行列 F を用いた間接光計算119826 シーンの 頂点数
119949119941 サンプル点の直接光成分119949119946119951119941 サンプル点の間接光成分
直接光直接光 + 間接光 間接光+=
頂点の情報のみ抽出補間
間接光変換処理F[
119949119946119951119941120783119949119946119951119941120784119949119946119951119941120785⋮
119949119946119951119941119930] timesiquest [
119949119941120783119949119941120784119949119941120785⋮119949119941 119930
][ iquest ]
CEDEC 2012
間接光計算の考え方
bull 光の変換行列 F の計算
119826 シーンの頂点数
iquest119826行iquest
⋮⋮
⋮25 82
20
50 ⋯
光の変換行列F
行列 F は静的オブジェクト
なら前計算可能
CEDEC 2012
間接光計算の考え方
bull 要点1 背景オブジェクトの間接光はメッシュ頂点で計算2 ライティング状態はベクトルで表記可能3 直接光は光の変換行列 F を用いて間接光に変換4 光の変換行列 F は静的オブジェクトなら前計算可
能
+=
F[119949119946119951119941120783119949119946119951119941120784119949119946119951119941120785⋮
119949119946119951119941119930] timesiquest [
119949119941120783119949119941120784119949119941120785⋮119949119941 119930
][ iquest ]
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへ光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
問題提起
ただし実行速度が不十分 + 頂点数の増加で処理量が爆発
上記計算式で間接光は計算可能
F[119949119946119951119941120783119949119946119951119941120784119949119946119951119941120785⋮
119949119946119951119941119930] timesiquest [
119949119941120783119949119941120784119949119941120785⋮119949119941 119930
][ iquest ]
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
bull 全ての直接光は前計算した既知の状態の重ね合わせで近似できると仮定
キーアイディア
times01
+
times02
times04
+
現在の状態既知の状態
≒
CEDEC 2012
bull 直接光が変化しても係数のみが変化ndash 既知の状態は変化しない
キーアイディア
times04
+
times03
times01
+
現在の状態既知の状態
≒
CEDEC 2012
bull これはベクトルの足し合わせとして表現可能
キーアイディア
119960120783 +119960120784 +119960120785≑ [119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930]
119949119941 現在の 直接光の 状態
既知の状態
times01
+
times02
times04
+
[ 119949119941120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
CEDEC 2012
bull 各状態には対になる間接光の状態がそれぞれ存在
キーアイディア
119960120783 +119960120784 +119960120785≑
times120778 times120778 times120778times120778
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
CEDEC 2012
bull 直接光側と同じ重みで間接光側を足し合わす事でを近似可能
キーアイディア
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778times120778
CEDEC 2012
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778times120778
bull このロジックは下記条件を満たせば非常に高速1 必要な係数が十分に少ない2 係数が高速に計算可能
キーアイディア
今後既知の状態をrdquo基底rdquoと呼ぶ
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説
1 最適な基底の計算方法 2 係数の計算方法
- ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説
1 最適な基底の計算方法 2 係数の計算方法
- ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
を求める
bull 2方向のアプローチが考えられるndash 直接光優先 を先に求めて
から
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778 times120778
CEDEC 2012
を求める
bull 2方向のアプローチが考えられるndash 間接光優先 を先に求めて
から
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times119813minus120783 times119813minus120783 times119813minus120783 times119813minus120783
CEDEC 2012
を求める
bull 両方を並行して解説ndash 最終的には両方をハイブリッドしたアプローチで
より良い基底を算出
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778 times120778times119813minus120783 times119813minus120783 times119813minus120783 times119813minus120783
CEDEC 2012
最適な基底
bull 最適な基底は同じシーンでも場合によって異なるndash それぞれに特化した基底のほうが良い結果を得ら
れる
サンプリングベースの基底を採用
CEDEC 2012
bull 様々な状況でライティングした結果を集め特異値分解を用いて基底を算出
サンプリングベースの基底
特異値分解 119861119889特異値分解 119861119894119899 119889
CEDEC 2012
サンプルの選び方について
bull 特異値分解で得られるのは「全ての入力サンプルを良く近似する基底」
bull サンプルで用いる光源のタイプ方向位置を予め分かっている範囲で厳選するのが好ましい
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
119871119889
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
bull 入力された行列をという 3 行列に分解ndash 数多くの数学ライブラリがサポート
特異値分解 (Singular Value Decomposition)
119872
SVD
119880 Σ 119881119879lowast lowastiquest
が異なれば当然も異なる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
左から重要度順に並んでいるため必要な数だけ用いればよい
CEDEC 2012
基底による直接光の近似
CEDEC 2012
間接光の概要
bull そもそも間接光って何
rArr 光源から一度以上物体に反射して届く光
CEDEC 2012
間接光の概要
bull 間接光があると何が良いのか rArr 柔らかなライティングを再現できシーン全体の 説得力が増す
解説手法は様々な高速化や制約を設けてリアルタイム処理を実現
その分非常に計算負荷が高くリアルタイム処理は困難
直接光 + 間接光直接光
CEDEC 2012
解説手法の計算概要
直接光
直接光 + 間接光
背景オブジェクト( 静的オブジェクトに
限る )その他オブジェ
クト
分類
統合
+
+
間接光計算 間接光計算光の伝播
CEDEC 2012
Step1 背景オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
間接光計算の考え方
bull 背景オブジェクトの間接光はメッシュ頂点で計算
直接光直接光 + 間接光 間接光+=
頂点の情報のみ抽出補間
間接光変換処理
CEDEC 2012
間接光計算の考え方
bull メッシュ頂点のライティング状態をベクトルで表記
119826 シーンの頂点数
119826行 [119949120783119949120784119949120785⋮]1
ライティングベクトル
今後スライド中でライティング状態を
絵で示してもベクトルで表記しても等価
2
3
CEDEC 2012
間接光計算の考え方
bull 光の変換行列 F を用いた間接光計算119826 シーンの 頂点数
119949119941 サンプル点の直接光成分119949119946119951119941 サンプル点の間接光成分
直接光直接光 + 間接光 間接光+=
頂点の情報のみ抽出補間
間接光変換処理F[
119949119946119951119941120783119949119946119951119941120784119949119946119951119941120785⋮
119949119946119951119941119930] timesiquest [
119949119941120783119949119941120784119949119941120785⋮119949119941 119930
][ iquest ]
CEDEC 2012
間接光計算の考え方
bull 光の変換行列 F の計算
119826 シーンの頂点数
iquest119826行iquest
⋮⋮
⋮25 82
20
50 ⋯
光の変換行列F
行列 F は静的オブジェクト
なら前計算可能
CEDEC 2012
間接光計算の考え方
bull 要点1 背景オブジェクトの間接光はメッシュ頂点で計算2 ライティング状態はベクトルで表記可能3 直接光は光の変換行列 F を用いて間接光に変換4 光の変換行列 F は静的オブジェクトなら前計算可
能
+=
F[119949119946119951119941120783119949119946119951119941120784119949119946119951119941120785⋮
119949119946119951119941119930] timesiquest [
119949119941120783119949119941120784119949119941120785⋮119949119941 119930
][ iquest ]
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへ光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
問題提起
ただし実行速度が不十分 + 頂点数の増加で処理量が爆発
上記計算式で間接光は計算可能
F[119949119946119951119941120783119949119946119951119941120784119949119946119951119941120785⋮
119949119946119951119941119930] timesiquest [
119949119941120783119949119941120784119949119941120785⋮119949119941 119930
][ iquest ]
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
bull 全ての直接光は前計算した既知の状態の重ね合わせで近似できると仮定
キーアイディア
times01
+
times02
times04
+
現在の状態既知の状態
≒
CEDEC 2012
bull 直接光が変化しても係数のみが変化ndash 既知の状態は変化しない
キーアイディア
times04
+
times03
times01
+
現在の状態既知の状態
≒
CEDEC 2012
bull これはベクトルの足し合わせとして表現可能
キーアイディア
119960120783 +119960120784 +119960120785≑ [119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930]
119949119941 現在の 直接光の 状態
既知の状態
times01
+
times02
times04
+
[ 119949119941120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
CEDEC 2012
bull 各状態には対になる間接光の状態がそれぞれ存在
キーアイディア
119960120783 +119960120784 +119960120785≑
times120778 times120778 times120778times120778
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
CEDEC 2012
bull 直接光側と同じ重みで間接光側を足し合わす事でを近似可能
キーアイディア
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778times120778
CEDEC 2012
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778times120778
bull このロジックは下記条件を満たせば非常に高速1 必要な係数が十分に少ない2 係数が高速に計算可能
キーアイディア
今後既知の状態をrdquo基底rdquoと呼ぶ
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説
1 最適な基底の計算方法 2 係数の計算方法
- ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説
1 最適な基底の計算方法 2 係数の計算方法
- ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
を求める
bull 2方向のアプローチが考えられるndash 直接光優先 を先に求めて
から
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778 times120778
CEDEC 2012
を求める
bull 2方向のアプローチが考えられるndash 間接光優先 を先に求めて
から
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times119813minus120783 times119813minus120783 times119813minus120783 times119813minus120783
CEDEC 2012
を求める
bull 両方を並行して解説ndash 最終的には両方をハイブリッドしたアプローチで
より良い基底を算出
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778 times120778times119813minus120783 times119813minus120783 times119813minus120783 times119813minus120783
CEDEC 2012
最適な基底
bull 最適な基底は同じシーンでも場合によって異なるndash それぞれに特化した基底のほうが良い結果を得ら
れる
サンプリングベースの基底を採用
CEDEC 2012
bull 様々な状況でライティングした結果を集め特異値分解を用いて基底を算出
サンプリングベースの基底
特異値分解 119861119889特異値分解 119861119894119899 119889
CEDEC 2012
サンプルの選び方について
bull 特異値分解で得られるのは「全ての入力サンプルを良く近似する基底」
bull サンプルで用いる光源のタイプ方向位置を予め分かっている範囲で厳選するのが好ましい
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
119871119889
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
bull 入力された行列をという 3 行列に分解ndash 数多くの数学ライブラリがサポート
特異値分解 (Singular Value Decomposition)
119872
SVD
119880 Σ 119881119879lowast lowastiquest
が異なれば当然も異なる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
左から重要度順に並んでいるため必要な数だけ用いればよい
CEDEC 2012
基底による直接光の近似
CEDEC 2012
間接光の概要
bull 間接光があると何が良いのか rArr 柔らかなライティングを再現できシーン全体の 説得力が増す
解説手法は様々な高速化や制約を設けてリアルタイム処理を実現
その分非常に計算負荷が高くリアルタイム処理は困難
直接光 + 間接光直接光
CEDEC 2012
解説手法の計算概要
直接光
直接光 + 間接光
背景オブジェクト( 静的オブジェクトに
限る )その他オブジェ
クト
分類
統合
+
+
間接光計算 間接光計算光の伝播
CEDEC 2012
Step1 背景オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
間接光計算の考え方
bull 背景オブジェクトの間接光はメッシュ頂点で計算
直接光直接光 + 間接光 間接光+=
頂点の情報のみ抽出補間
間接光変換処理
CEDEC 2012
間接光計算の考え方
bull メッシュ頂点のライティング状態をベクトルで表記
119826 シーンの頂点数
119826行 [119949120783119949120784119949120785⋮]1
ライティングベクトル
今後スライド中でライティング状態を
絵で示してもベクトルで表記しても等価
2
3
CEDEC 2012
間接光計算の考え方
bull 光の変換行列 F を用いた間接光計算119826 シーンの 頂点数
119949119941 サンプル点の直接光成分119949119946119951119941 サンプル点の間接光成分
直接光直接光 + 間接光 間接光+=
頂点の情報のみ抽出補間
間接光変換処理F[
119949119946119951119941120783119949119946119951119941120784119949119946119951119941120785⋮
119949119946119951119941119930] timesiquest [
119949119941120783119949119941120784119949119941120785⋮119949119941 119930
][ iquest ]
CEDEC 2012
間接光計算の考え方
bull 光の変換行列 F の計算
119826 シーンの頂点数
iquest119826行iquest
⋮⋮
⋮25 82
20
50 ⋯
光の変換行列F
行列 F は静的オブジェクト
なら前計算可能
CEDEC 2012
間接光計算の考え方
bull 要点1 背景オブジェクトの間接光はメッシュ頂点で計算2 ライティング状態はベクトルで表記可能3 直接光は光の変換行列 F を用いて間接光に変換4 光の変換行列 F は静的オブジェクトなら前計算可
能
+=
F[119949119946119951119941120783119949119946119951119941120784119949119946119951119941120785⋮
119949119946119951119941119930] timesiquest [
119949119941120783119949119941120784119949119941120785⋮119949119941 119930
][ iquest ]
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへ光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
問題提起
ただし実行速度が不十分 + 頂点数の増加で処理量が爆発
上記計算式で間接光は計算可能
F[119949119946119951119941120783119949119946119951119941120784119949119946119951119941120785⋮
119949119946119951119941119930] timesiquest [
119949119941120783119949119941120784119949119941120785⋮119949119941 119930
][ iquest ]
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
bull 全ての直接光は前計算した既知の状態の重ね合わせで近似できると仮定
キーアイディア
times01
+
times02
times04
+
現在の状態既知の状態
≒
CEDEC 2012
bull 直接光が変化しても係数のみが変化ndash 既知の状態は変化しない
キーアイディア
times04
+
times03
times01
+
現在の状態既知の状態
≒
CEDEC 2012
bull これはベクトルの足し合わせとして表現可能
キーアイディア
119960120783 +119960120784 +119960120785≑ [119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930]
119949119941 現在の 直接光の 状態
既知の状態
times01
+
times02
times04
+
[ 119949119941120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
CEDEC 2012
bull 各状態には対になる間接光の状態がそれぞれ存在
キーアイディア
119960120783 +119960120784 +119960120785≑
times120778 times120778 times120778times120778
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
CEDEC 2012
bull 直接光側と同じ重みで間接光側を足し合わす事でを近似可能
キーアイディア
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778times120778
CEDEC 2012
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778times120778
bull このロジックは下記条件を満たせば非常に高速1 必要な係数が十分に少ない2 係数が高速に計算可能
キーアイディア
今後既知の状態をrdquo基底rdquoと呼ぶ
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説
1 最適な基底の計算方法 2 係数の計算方法
- ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説
1 最適な基底の計算方法 2 係数の計算方法
- ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
を求める
bull 2方向のアプローチが考えられるndash 直接光優先 を先に求めて
から
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778 times120778
CEDEC 2012
を求める
bull 2方向のアプローチが考えられるndash 間接光優先 を先に求めて
から
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times119813minus120783 times119813minus120783 times119813minus120783 times119813minus120783
CEDEC 2012
を求める
bull 両方を並行して解説ndash 最終的には両方をハイブリッドしたアプローチで
より良い基底を算出
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778 times120778times119813minus120783 times119813minus120783 times119813minus120783 times119813minus120783
CEDEC 2012
最適な基底
bull 最適な基底は同じシーンでも場合によって異なるndash それぞれに特化した基底のほうが良い結果を得ら
れる
サンプリングベースの基底を採用
CEDEC 2012
bull 様々な状況でライティングした結果を集め特異値分解を用いて基底を算出
サンプリングベースの基底
特異値分解 119861119889特異値分解 119861119894119899 119889
CEDEC 2012
サンプルの選び方について
bull 特異値分解で得られるのは「全ての入力サンプルを良く近似する基底」
bull サンプルで用いる光源のタイプ方向位置を予め分かっている範囲で厳選するのが好ましい
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
119871119889
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
bull 入力された行列をという 3 行列に分解ndash 数多くの数学ライブラリがサポート
特異値分解 (Singular Value Decomposition)
119872
SVD
119880 Σ 119881119879lowast lowastiquest
が異なれば当然も異なる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
左から重要度順に並んでいるため必要な数だけ用いればよい
CEDEC 2012
基底による直接光の近似
CEDEC 2012
解説手法の計算概要
直接光
直接光 + 間接光
背景オブジェクト( 静的オブジェクトに
限る )その他オブジェ
クト
分類
統合
+
+
間接光計算 間接光計算光の伝播
CEDEC 2012
Step1 背景オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
間接光計算の考え方
bull 背景オブジェクトの間接光はメッシュ頂点で計算
直接光直接光 + 間接光 間接光+=
頂点の情報のみ抽出補間
間接光変換処理
CEDEC 2012
間接光計算の考え方
bull メッシュ頂点のライティング状態をベクトルで表記
119826 シーンの頂点数
119826行 [119949120783119949120784119949120785⋮]1
ライティングベクトル
今後スライド中でライティング状態を
絵で示してもベクトルで表記しても等価
2
3
CEDEC 2012
間接光計算の考え方
bull 光の変換行列 F を用いた間接光計算119826 シーンの 頂点数
119949119941 サンプル点の直接光成分119949119946119951119941 サンプル点の間接光成分
直接光直接光 + 間接光 間接光+=
頂点の情報のみ抽出補間
間接光変換処理F[
119949119946119951119941120783119949119946119951119941120784119949119946119951119941120785⋮
119949119946119951119941119930] timesiquest [
119949119941120783119949119941120784119949119941120785⋮119949119941 119930
][ iquest ]
CEDEC 2012
間接光計算の考え方
bull 光の変換行列 F の計算
119826 シーンの頂点数
iquest119826行iquest
⋮⋮
⋮25 82
20
50 ⋯
光の変換行列F
行列 F は静的オブジェクト
なら前計算可能
CEDEC 2012
間接光計算の考え方
bull 要点1 背景オブジェクトの間接光はメッシュ頂点で計算2 ライティング状態はベクトルで表記可能3 直接光は光の変換行列 F を用いて間接光に変換4 光の変換行列 F は静的オブジェクトなら前計算可
能
+=
F[119949119946119951119941120783119949119946119951119941120784119949119946119951119941120785⋮
119949119946119951119941119930] timesiquest [
119949119941120783119949119941120784119949119941120785⋮119949119941 119930
][ iquest ]
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへ光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
問題提起
ただし実行速度が不十分 + 頂点数の増加で処理量が爆発
上記計算式で間接光は計算可能
F[119949119946119951119941120783119949119946119951119941120784119949119946119951119941120785⋮
119949119946119951119941119930] timesiquest [
119949119941120783119949119941120784119949119941120785⋮119949119941 119930
][ iquest ]
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
bull 全ての直接光は前計算した既知の状態の重ね合わせで近似できると仮定
キーアイディア
times01
+
times02
times04
+
現在の状態既知の状態
≒
CEDEC 2012
bull 直接光が変化しても係数のみが変化ndash 既知の状態は変化しない
キーアイディア
times04
+
times03
times01
+
現在の状態既知の状態
≒
CEDEC 2012
bull これはベクトルの足し合わせとして表現可能
キーアイディア
119960120783 +119960120784 +119960120785≑ [119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930]
119949119941 現在の 直接光の 状態
既知の状態
times01
+
times02
times04
+
[ 119949119941120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
CEDEC 2012
bull 各状態には対になる間接光の状態がそれぞれ存在
キーアイディア
119960120783 +119960120784 +119960120785≑
times120778 times120778 times120778times120778
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
CEDEC 2012
bull 直接光側と同じ重みで間接光側を足し合わす事でを近似可能
キーアイディア
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778times120778
CEDEC 2012
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778times120778
bull このロジックは下記条件を満たせば非常に高速1 必要な係数が十分に少ない2 係数が高速に計算可能
キーアイディア
今後既知の状態をrdquo基底rdquoと呼ぶ
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説
1 最適な基底の計算方法 2 係数の計算方法
- ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説
1 最適な基底の計算方法 2 係数の計算方法
- ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
を求める
bull 2方向のアプローチが考えられるndash 直接光優先 を先に求めて
から
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778 times120778
CEDEC 2012
を求める
bull 2方向のアプローチが考えられるndash 間接光優先 を先に求めて
から
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times119813minus120783 times119813minus120783 times119813minus120783 times119813minus120783
CEDEC 2012
を求める
bull 両方を並行して解説ndash 最終的には両方をハイブリッドしたアプローチで
より良い基底を算出
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778 times120778times119813minus120783 times119813minus120783 times119813minus120783 times119813minus120783
CEDEC 2012
最適な基底
bull 最適な基底は同じシーンでも場合によって異なるndash それぞれに特化した基底のほうが良い結果を得ら
れる
サンプリングベースの基底を採用
CEDEC 2012
bull 様々な状況でライティングした結果を集め特異値分解を用いて基底を算出
サンプリングベースの基底
特異値分解 119861119889特異値分解 119861119894119899 119889
CEDEC 2012
サンプルの選び方について
bull 特異値分解で得られるのは「全ての入力サンプルを良く近似する基底」
bull サンプルで用いる光源のタイプ方向位置を予め分かっている範囲で厳選するのが好ましい
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
119871119889
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
bull 入力された行列をという 3 行列に分解ndash 数多くの数学ライブラリがサポート
特異値分解 (Singular Value Decomposition)
119872
SVD
119880 Σ 119881119879lowast lowastiquest
が異なれば当然も異なる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
左から重要度順に並んでいるため必要な数だけ用いればよい
CEDEC 2012
基底による直接光の近似
CEDEC 2012
Step1 背景オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
間接光計算の考え方
bull 背景オブジェクトの間接光はメッシュ頂点で計算
直接光直接光 + 間接光 間接光+=
頂点の情報のみ抽出補間
間接光変換処理
CEDEC 2012
間接光計算の考え方
bull メッシュ頂点のライティング状態をベクトルで表記
119826 シーンの頂点数
119826行 [119949120783119949120784119949120785⋮]1
ライティングベクトル
今後スライド中でライティング状態を
絵で示してもベクトルで表記しても等価
2
3
CEDEC 2012
間接光計算の考え方
bull 光の変換行列 F を用いた間接光計算119826 シーンの 頂点数
119949119941 サンプル点の直接光成分119949119946119951119941 サンプル点の間接光成分
直接光直接光 + 間接光 間接光+=
頂点の情報のみ抽出補間
間接光変換処理F[
119949119946119951119941120783119949119946119951119941120784119949119946119951119941120785⋮
119949119946119951119941119930] timesiquest [
119949119941120783119949119941120784119949119941120785⋮119949119941 119930
][ iquest ]
CEDEC 2012
間接光計算の考え方
bull 光の変換行列 F の計算
119826 シーンの頂点数
iquest119826行iquest
⋮⋮
⋮25 82
20
50 ⋯
光の変換行列F
行列 F は静的オブジェクト
なら前計算可能
CEDEC 2012
間接光計算の考え方
bull 要点1 背景オブジェクトの間接光はメッシュ頂点で計算2 ライティング状態はベクトルで表記可能3 直接光は光の変換行列 F を用いて間接光に変換4 光の変換行列 F は静的オブジェクトなら前計算可
能
+=
F[119949119946119951119941120783119949119946119951119941120784119949119946119951119941120785⋮
119949119946119951119941119930] timesiquest [
119949119941120783119949119941120784119949119941120785⋮119949119941 119930
][ iquest ]
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへ光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
問題提起
ただし実行速度が不十分 + 頂点数の増加で処理量が爆発
上記計算式で間接光は計算可能
F[119949119946119951119941120783119949119946119951119941120784119949119946119951119941120785⋮
119949119946119951119941119930] timesiquest [
119949119941120783119949119941120784119949119941120785⋮119949119941 119930
][ iquest ]
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
bull 全ての直接光は前計算した既知の状態の重ね合わせで近似できると仮定
キーアイディア
times01
+
times02
times04
+
現在の状態既知の状態
≒
CEDEC 2012
bull 直接光が変化しても係数のみが変化ndash 既知の状態は変化しない
キーアイディア
times04
+
times03
times01
+
現在の状態既知の状態
≒
CEDEC 2012
bull これはベクトルの足し合わせとして表現可能
キーアイディア
119960120783 +119960120784 +119960120785≑ [119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930]
119949119941 現在の 直接光の 状態
既知の状態
times01
+
times02
times04
+
[ 119949119941120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
CEDEC 2012
bull 各状態には対になる間接光の状態がそれぞれ存在
キーアイディア
119960120783 +119960120784 +119960120785≑
times120778 times120778 times120778times120778
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
CEDEC 2012
bull 直接光側と同じ重みで間接光側を足し合わす事でを近似可能
キーアイディア
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778times120778
CEDEC 2012
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778times120778
bull このロジックは下記条件を満たせば非常に高速1 必要な係数が十分に少ない2 係数が高速に計算可能
キーアイディア
今後既知の状態をrdquo基底rdquoと呼ぶ
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説
1 最適な基底の計算方法 2 係数の計算方法
- ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説
1 最適な基底の計算方法 2 係数の計算方法
- ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
を求める
bull 2方向のアプローチが考えられるndash 直接光優先 を先に求めて
から
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778 times120778
CEDEC 2012
を求める
bull 2方向のアプローチが考えられるndash 間接光優先 を先に求めて
から
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times119813minus120783 times119813minus120783 times119813minus120783 times119813minus120783
CEDEC 2012
を求める
bull 両方を並行して解説ndash 最終的には両方をハイブリッドしたアプローチで
より良い基底を算出
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778 times120778times119813minus120783 times119813minus120783 times119813minus120783 times119813minus120783
CEDEC 2012
最適な基底
bull 最適な基底は同じシーンでも場合によって異なるndash それぞれに特化した基底のほうが良い結果を得ら
れる
サンプリングベースの基底を採用
CEDEC 2012
bull 様々な状況でライティングした結果を集め特異値分解を用いて基底を算出
サンプリングベースの基底
特異値分解 119861119889特異値分解 119861119894119899 119889
CEDEC 2012
サンプルの選び方について
bull 特異値分解で得られるのは「全ての入力サンプルを良く近似する基底」
bull サンプルで用いる光源のタイプ方向位置を予め分かっている範囲で厳選するのが好ましい
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
119871119889
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
bull 入力された行列をという 3 行列に分解ndash 数多くの数学ライブラリがサポート
特異値分解 (Singular Value Decomposition)
119872
SVD
119880 Σ 119881119879lowast lowastiquest
が異なれば当然も異なる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
左から重要度順に並んでいるため必要な数だけ用いればよい
CEDEC 2012
基底による直接光の近似
CEDEC 2012
Step1 背景オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
間接光計算の考え方
bull 背景オブジェクトの間接光はメッシュ頂点で計算
直接光直接光 + 間接光 間接光+=
頂点の情報のみ抽出補間
間接光変換処理
CEDEC 2012
間接光計算の考え方
bull メッシュ頂点のライティング状態をベクトルで表記
119826 シーンの頂点数
119826行 [119949120783119949120784119949120785⋮]1
ライティングベクトル
今後スライド中でライティング状態を
絵で示してもベクトルで表記しても等価
2
3
CEDEC 2012
間接光計算の考え方
bull 光の変換行列 F を用いた間接光計算119826 シーンの 頂点数
119949119941 サンプル点の直接光成分119949119946119951119941 サンプル点の間接光成分
直接光直接光 + 間接光 間接光+=
頂点の情報のみ抽出補間
間接光変換処理F[
119949119946119951119941120783119949119946119951119941120784119949119946119951119941120785⋮
119949119946119951119941119930] timesiquest [
119949119941120783119949119941120784119949119941120785⋮119949119941 119930
][ iquest ]
CEDEC 2012
間接光計算の考え方
bull 光の変換行列 F の計算
119826 シーンの頂点数
iquest119826行iquest
⋮⋮
⋮25 82
20
50 ⋯
光の変換行列F
行列 F は静的オブジェクト
なら前計算可能
CEDEC 2012
間接光計算の考え方
bull 要点1 背景オブジェクトの間接光はメッシュ頂点で計算2 ライティング状態はベクトルで表記可能3 直接光は光の変換行列 F を用いて間接光に変換4 光の変換行列 F は静的オブジェクトなら前計算可
能
+=
F[119949119946119951119941120783119949119946119951119941120784119949119946119951119941120785⋮
119949119946119951119941119930] timesiquest [
119949119941120783119949119941120784119949119941120785⋮119949119941 119930
][ iquest ]
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへ光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
問題提起
ただし実行速度が不十分 + 頂点数の増加で処理量が爆発
上記計算式で間接光は計算可能
F[119949119946119951119941120783119949119946119951119941120784119949119946119951119941120785⋮
119949119946119951119941119930] timesiquest [
119949119941120783119949119941120784119949119941120785⋮119949119941 119930
][ iquest ]
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
bull 全ての直接光は前計算した既知の状態の重ね合わせで近似できると仮定
キーアイディア
times01
+
times02
times04
+
現在の状態既知の状態
≒
CEDEC 2012
bull 直接光が変化しても係数のみが変化ndash 既知の状態は変化しない
キーアイディア
times04
+
times03
times01
+
現在の状態既知の状態
≒
CEDEC 2012
bull これはベクトルの足し合わせとして表現可能
キーアイディア
119960120783 +119960120784 +119960120785≑ [119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930]
119949119941 現在の 直接光の 状態
既知の状態
times01
+
times02
times04
+
[ 119949119941120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
CEDEC 2012
bull 各状態には対になる間接光の状態がそれぞれ存在
キーアイディア
119960120783 +119960120784 +119960120785≑
times120778 times120778 times120778times120778
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
CEDEC 2012
bull 直接光側と同じ重みで間接光側を足し合わす事でを近似可能
キーアイディア
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778times120778
CEDEC 2012
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778times120778
bull このロジックは下記条件を満たせば非常に高速1 必要な係数が十分に少ない2 係数が高速に計算可能
キーアイディア
今後既知の状態をrdquo基底rdquoと呼ぶ
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説
1 最適な基底の計算方法 2 係数の計算方法
- ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説
1 最適な基底の計算方法 2 係数の計算方法
- ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
を求める
bull 2方向のアプローチが考えられるndash 直接光優先 を先に求めて
から
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778 times120778
CEDEC 2012
を求める
bull 2方向のアプローチが考えられるndash 間接光優先 を先に求めて
から
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times119813minus120783 times119813minus120783 times119813minus120783 times119813minus120783
CEDEC 2012
を求める
bull 両方を並行して解説ndash 最終的には両方をハイブリッドしたアプローチで
より良い基底を算出
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778 times120778times119813minus120783 times119813minus120783 times119813minus120783 times119813minus120783
CEDEC 2012
最適な基底
bull 最適な基底は同じシーンでも場合によって異なるndash それぞれに特化した基底のほうが良い結果を得ら
れる
サンプリングベースの基底を採用
CEDEC 2012
bull 様々な状況でライティングした結果を集め特異値分解を用いて基底を算出
サンプリングベースの基底
特異値分解 119861119889特異値分解 119861119894119899 119889
CEDEC 2012
サンプルの選び方について
bull 特異値分解で得られるのは「全ての入力サンプルを良く近似する基底」
bull サンプルで用いる光源のタイプ方向位置を予め分かっている範囲で厳選するのが好ましい
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
119871119889
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
bull 入力された行列をという 3 行列に分解ndash 数多くの数学ライブラリがサポート
特異値分解 (Singular Value Decomposition)
119872
SVD
119880 Σ 119881119879lowast lowastiquest
が異なれば当然も異なる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
左から重要度順に並んでいるため必要な数だけ用いればよい
CEDEC 2012
基底による直接光の近似
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
間接光計算の考え方
bull 背景オブジェクトの間接光はメッシュ頂点で計算
直接光直接光 + 間接光 間接光+=
頂点の情報のみ抽出補間
間接光変換処理
CEDEC 2012
間接光計算の考え方
bull メッシュ頂点のライティング状態をベクトルで表記
119826 シーンの頂点数
119826行 [119949120783119949120784119949120785⋮]1
ライティングベクトル
今後スライド中でライティング状態を
絵で示してもベクトルで表記しても等価
2
3
CEDEC 2012
間接光計算の考え方
bull 光の変換行列 F を用いた間接光計算119826 シーンの 頂点数
119949119941 サンプル点の直接光成分119949119946119951119941 サンプル点の間接光成分
直接光直接光 + 間接光 間接光+=
頂点の情報のみ抽出補間
間接光変換処理F[
119949119946119951119941120783119949119946119951119941120784119949119946119951119941120785⋮
119949119946119951119941119930] timesiquest [
119949119941120783119949119941120784119949119941120785⋮119949119941 119930
][ iquest ]
CEDEC 2012
間接光計算の考え方
bull 光の変換行列 F の計算
119826 シーンの頂点数
iquest119826行iquest
⋮⋮
⋮25 82
20
50 ⋯
光の変換行列F
行列 F は静的オブジェクト
なら前計算可能
CEDEC 2012
間接光計算の考え方
bull 要点1 背景オブジェクトの間接光はメッシュ頂点で計算2 ライティング状態はベクトルで表記可能3 直接光は光の変換行列 F を用いて間接光に変換4 光の変換行列 F は静的オブジェクトなら前計算可
能
+=
F[119949119946119951119941120783119949119946119951119941120784119949119946119951119941120785⋮
119949119946119951119941119930] timesiquest [
119949119941120783119949119941120784119949119941120785⋮119949119941 119930
][ iquest ]
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへ光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
問題提起
ただし実行速度が不十分 + 頂点数の増加で処理量が爆発
上記計算式で間接光は計算可能
F[119949119946119951119941120783119949119946119951119941120784119949119946119951119941120785⋮
119949119946119951119941119930] timesiquest [
119949119941120783119949119941120784119949119941120785⋮119949119941 119930
][ iquest ]
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
bull 全ての直接光は前計算した既知の状態の重ね合わせで近似できると仮定
キーアイディア
times01
+
times02
times04
+
現在の状態既知の状態
≒
CEDEC 2012
bull 直接光が変化しても係数のみが変化ndash 既知の状態は変化しない
キーアイディア
times04
+
times03
times01
+
現在の状態既知の状態
≒
CEDEC 2012
bull これはベクトルの足し合わせとして表現可能
キーアイディア
119960120783 +119960120784 +119960120785≑ [119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930]
119949119941 現在の 直接光の 状態
既知の状態
times01
+
times02
times04
+
[ 119949119941120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
CEDEC 2012
bull 各状態には対になる間接光の状態がそれぞれ存在
キーアイディア
119960120783 +119960120784 +119960120785≑
times120778 times120778 times120778times120778
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
CEDEC 2012
bull 直接光側と同じ重みで間接光側を足し合わす事でを近似可能
キーアイディア
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778times120778
CEDEC 2012
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778times120778
bull このロジックは下記条件を満たせば非常に高速1 必要な係数が十分に少ない2 係数が高速に計算可能
キーアイディア
今後既知の状態をrdquo基底rdquoと呼ぶ
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説
1 最適な基底の計算方法 2 係数の計算方法
- ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説
1 最適な基底の計算方法 2 係数の計算方法
- ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
を求める
bull 2方向のアプローチが考えられるndash 直接光優先 を先に求めて
から
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778 times120778
CEDEC 2012
を求める
bull 2方向のアプローチが考えられるndash 間接光優先 を先に求めて
から
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times119813minus120783 times119813minus120783 times119813minus120783 times119813minus120783
CEDEC 2012
を求める
bull 両方を並行して解説ndash 最終的には両方をハイブリッドしたアプローチで
より良い基底を算出
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778 times120778times119813minus120783 times119813minus120783 times119813minus120783 times119813minus120783
CEDEC 2012
最適な基底
bull 最適な基底は同じシーンでも場合によって異なるndash それぞれに特化した基底のほうが良い結果を得ら
れる
サンプリングベースの基底を採用
CEDEC 2012
bull 様々な状況でライティングした結果を集め特異値分解を用いて基底を算出
サンプリングベースの基底
特異値分解 119861119889特異値分解 119861119894119899 119889
CEDEC 2012
サンプルの選び方について
bull 特異値分解で得られるのは「全ての入力サンプルを良く近似する基底」
bull サンプルで用いる光源のタイプ方向位置を予め分かっている範囲で厳選するのが好ましい
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
119871119889
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
bull 入力された行列をという 3 行列に分解ndash 数多くの数学ライブラリがサポート
特異値分解 (Singular Value Decomposition)
119872
SVD
119880 Σ 119881119879lowast lowastiquest
が異なれば当然も異なる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
左から重要度順に並んでいるため必要な数だけ用いればよい
CEDEC 2012
基底による直接光の近似
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
間接光計算の考え方
bull 背景オブジェクトの間接光はメッシュ頂点で計算
直接光直接光 + 間接光 間接光+=
頂点の情報のみ抽出補間
間接光変換処理
CEDEC 2012
間接光計算の考え方
bull メッシュ頂点のライティング状態をベクトルで表記
119826 シーンの頂点数
119826行 [119949120783119949120784119949120785⋮]1
ライティングベクトル
今後スライド中でライティング状態を
絵で示してもベクトルで表記しても等価
2
3
CEDEC 2012
間接光計算の考え方
bull 光の変換行列 F を用いた間接光計算119826 シーンの 頂点数
119949119941 サンプル点の直接光成分119949119946119951119941 サンプル点の間接光成分
直接光直接光 + 間接光 間接光+=
頂点の情報のみ抽出補間
間接光変換処理F[
119949119946119951119941120783119949119946119951119941120784119949119946119951119941120785⋮
119949119946119951119941119930] timesiquest [
119949119941120783119949119941120784119949119941120785⋮119949119941 119930
][ iquest ]
CEDEC 2012
間接光計算の考え方
bull 光の変換行列 F の計算
119826 シーンの頂点数
iquest119826行iquest
⋮⋮
⋮25 82
20
50 ⋯
光の変換行列F
行列 F は静的オブジェクト
なら前計算可能
CEDEC 2012
間接光計算の考え方
bull 要点1 背景オブジェクトの間接光はメッシュ頂点で計算2 ライティング状態はベクトルで表記可能3 直接光は光の変換行列 F を用いて間接光に変換4 光の変換行列 F は静的オブジェクトなら前計算可
能
+=
F[119949119946119951119941120783119949119946119951119941120784119949119946119951119941120785⋮
119949119946119951119941119930] timesiquest [
119949119941120783119949119941120784119949119941120785⋮119949119941 119930
][ iquest ]
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへ光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
問題提起
ただし実行速度が不十分 + 頂点数の増加で処理量が爆発
上記計算式で間接光は計算可能
F[119949119946119951119941120783119949119946119951119941120784119949119946119951119941120785⋮
119949119946119951119941119930] timesiquest [
119949119941120783119949119941120784119949119941120785⋮119949119941 119930
][ iquest ]
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
bull 全ての直接光は前計算した既知の状態の重ね合わせで近似できると仮定
キーアイディア
times01
+
times02
times04
+
現在の状態既知の状態
≒
CEDEC 2012
bull 直接光が変化しても係数のみが変化ndash 既知の状態は変化しない
キーアイディア
times04
+
times03
times01
+
現在の状態既知の状態
≒
CEDEC 2012
bull これはベクトルの足し合わせとして表現可能
キーアイディア
119960120783 +119960120784 +119960120785≑ [119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930]
119949119941 現在の 直接光の 状態
既知の状態
times01
+
times02
times04
+
[ 119949119941120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
CEDEC 2012
bull 各状態には対になる間接光の状態がそれぞれ存在
キーアイディア
119960120783 +119960120784 +119960120785≑
times120778 times120778 times120778times120778
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
CEDEC 2012
bull 直接光側と同じ重みで間接光側を足し合わす事でを近似可能
キーアイディア
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778times120778
CEDEC 2012
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778times120778
bull このロジックは下記条件を満たせば非常に高速1 必要な係数が十分に少ない2 係数が高速に計算可能
キーアイディア
今後既知の状態をrdquo基底rdquoと呼ぶ
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説
1 最適な基底の計算方法 2 係数の計算方法
- ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説
1 最適な基底の計算方法 2 係数の計算方法
- ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
を求める
bull 2方向のアプローチが考えられるndash 直接光優先 を先に求めて
から
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778 times120778
CEDEC 2012
を求める
bull 2方向のアプローチが考えられるndash 間接光優先 を先に求めて
から
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times119813minus120783 times119813minus120783 times119813minus120783 times119813minus120783
CEDEC 2012
を求める
bull 両方を並行して解説ndash 最終的には両方をハイブリッドしたアプローチで
より良い基底を算出
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778 times120778times119813minus120783 times119813minus120783 times119813minus120783 times119813minus120783
CEDEC 2012
最適な基底
bull 最適な基底は同じシーンでも場合によって異なるndash それぞれに特化した基底のほうが良い結果を得ら
れる
サンプリングベースの基底を採用
CEDEC 2012
bull 様々な状況でライティングした結果を集め特異値分解を用いて基底を算出
サンプリングベースの基底
特異値分解 119861119889特異値分解 119861119894119899 119889
CEDEC 2012
サンプルの選び方について
bull 特異値分解で得られるのは「全ての入力サンプルを良く近似する基底」
bull サンプルで用いる光源のタイプ方向位置を予め分かっている範囲で厳選するのが好ましい
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
119871119889
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
bull 入力された行列をという 3 行列に分解ndash 数多くの数学ライブラリがサポート
特異値分解 (Singular Value Decomposition)
119872
SVD
119880 Σ 119881119879lowast lowastiquest
が異なれば当然も異なる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
左から重要度順に並んでいるため必要な数だけ用いればよい
CEDEC 2012
基底による直接光の近似
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
間接光計算の考え方
bull 背景オブジェクトの間接光はメッシュ頂点で計算
直接光直接光 + 間接光 間接光+=
頂点の情報のみ抽出補間
間接光変換処理
CEDEC 2012
間接光計算の考え方
bull メッシュ頂点のライティング状態をベクトルで表記
119826 シーンの頂点数
119826行 [119949120783119949120784119949120785⋮]1
ライティングベクトル
今後スライド中でライティング状態を
絵で示してもベクトルで表記しても等価
2
3
CEDEC 2012
間接光計算の考え方
bull 光の変換行列 F を用いた間接光計算119826 シーンの 頂点数
119949119941 サンプル点の直接光成分119949119946119951119941 サンプル点の間接光成分
直接光直接光 + 間接光 間接光+=
頂点の情報のみ抽出補間
間接光変換処理F[
119949119946119951119941120783119949119946119951119941120784119949119946119951119941120785⋮
119949119946119951119941119930] timesiquest [
119949119941120783119949119941120784119949119941120785⋮119949119941 119930
][ iquest ]
CEDEC 2012
間接光計算の考え方
bull 光の変換行列 F の計算
119826 シーンの頂点数
iquest119826行iquest
⋮⋮
⋮25 82
20
50 ⋯
光の変換行列F
行列 F は静的オブジェクト
なら前計算可能
CEDEC 2012
間接光計算の考え方
bull 要点1 背景オブジェクトの間接光はメッシュ頂点で計算2 ライティング状態はベクトルで表記可能3 直接光は光の変換行列 F を用いて間接光に変換4 光の変換行列 F は静的オブジェクトなら前計算可
能
+=
F[119949119946119951119941120783119949119946119951119941120784119949119946119951119941120785⋮
119949119946119951119941119930] timesiquest [
119949119941120783119949119941120784119949119941120785⋮119949119941 119930
][ iquest ]
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへ光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
問題提起
ただし実行速度が不十分 + 頂点数の増加で処理量が爆発
上記計算式で間接光は計算可能
F[119949119946119951119941120783119949119946119951119941120784119949119946119951119941120785⋮
119949119946119951119941119930] timesiquest [
119949119941120783119949119941120784119949119941120785⋮119949119941 119930
][ iquest ]
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
bull 全ての直接光は前計算した既知の状態の重ね合わせで近似できると仮定
キーアイディア
times01
+
times02
times04
+
現在の状態既知の状態
≒
CEDEC 2012
bull 直接光が変化しても係数のみが変化ndash 既知の状態は変化しない
キーアイディア
times04
+
times03
times01
+
現在の状態既知の状態
≒
CEDEC 2012
bull これはベクトルの足し合わせとして表現可能
キーアイディア
119960120783 +119960120784 +119960120785≑ [119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930]
119949119941 現在の 直接光の 状態
既知の状態
times01
+
times02
times04
+
[ 119949119941120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
CEDEC 2012
bull 各状態には対になる間接光の状態がそれぞれ存在
キーアイディア
119960120783 +119960120784 +119960120785≑
times120778 times120778 times120778times120778
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
CEDEC 2012
bull 直接光側と同じ重みで間接光側を足し合わす事でを近似可能
キーアイディア
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778times120778
CEDEC 2012
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778times120778
bull このロジックは下記条件を満たせば非常に高速1 必要な係数が十分に少ない2 係数が高速に計算可能
キーアイディア
今後既知の状態をrdquo基底rdquoと呼ぶ
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説
1 最適な基底の計算方法 2 係数の計算方法
- ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説
1 最適な基底の計算方法 2 係数の計算方法
- ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
を求める
bull 2方向のアプローチが考えられるndash 直接光優先 を先に求めて
から
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778 times120778
CEDEC 2012
を求める
bull 2方向のアプローチが考えられるndash 間接光優先 を先に求めて
から
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times119813minus120783 times119813minus120783 times119813minus120783 times119813minus120783
CEDEC 2012
を求める
bull 両方を並行して解説ndash 最終的には両方をハイブリッドしたアプローチで
より良い基底を算出
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778 times120778times119813minus120783 times119813minus120783 times119813minus120783 times119813minus120783
CEDEC 2012
最適な基底
bull 最適な基底は同じシーンでも場合によって異なるndash それぞれに特化した基底のほうが良い結果を得ら
れる
サンプリングベースの基底を採用
CEDEC 2012
bull 様々な状況でライティングした結果を集め特異値分解を用いて基底を算出
サンプリングベースの基底
特異値分解 119861119889特異値分解 119861119894119899 119889
CEDEC 2012
サンプルの選び方について
bull 特異値分解で得られるのは「全ての入力サンプルを良く近似する基底」
bull サンプルで用いる光源のタイプ方向位置を予め分かっている範囲で厳選するのが好ましい
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
119871119889
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
bull 入力された行列をという 3 行列に分解ndash 数多くの数学ライブラリがサポート
特異値分解 (Singular Value Decomposition)
119872
SVD
119880 Σ 119881119879lowast lowastiquest
が異なれば当然も異なる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
左から重要度順に並んでいるため必要な数だけ用いればよい
CEDEC 2012
基底による直接光の近似
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
間接光計算の考え方
bull 背景オブジェクトの間接光はメッシュ頂点で計算
直接光直接光 + 間接光 間接光+=
頂点の情報のみ抽出補間
間接光変換処理
CEDEC 2012
間接光計算の考え方
bull メッシュ頂点のライティング状態をベクトルで表記
119826 シーンの頂点数
119826行 [119949120783119949120784119949120785⋮]1
ライティングベクトル
今後スライド中でライティング状態を
絵で示してもベクトルで表記しても等価
2
3
CEDEC 2012
間接光計算の考え方
bull 光の変換行列 F を用いた間接光計算119826 シーンの 頂点数
119949119941 サンプル点の直接光成分119949119946119951119941 サンプル点の間接光成分
直接光直接光 + 間接光 間接光+=
頂点の情報のみ抽出補間
間接光変換処理F[
119949119946119951119941120783119949119946119951119941120784119949119946119951119941120785⋮
119949119946119951119941119930] timesiquest [
119949119941120783119949119941120784119949119941120785⋮119949119941 119930
][ iquest ]
CEDEC 2012
間接光計算の考え方
bull 光の変換行列 F の計算
119826 シーンの頂点数
iquest119826行iquest
⋮⋮
⋮25 82
20
50 ⋯
光の変換行列F
行列 F は静的オブジェクト
なら前計算可能
CEDEC 2012
間接光計算の考え方
bull 要点1 背景オブジェクトの間接光はメッシュ頂点で計算2 ライティング状態はベクトルで表記可能3 直接光は光の変換行列 F を用いて間接光に変換4 光の変換行列 F は静的オブジェクトなら前計算可
能
+=
F[119949119946119951119941120783119949119946119951119941120784119949119946119951119941120785⋮
119949119946119951119941119930] timesiquest [
119949119941120783119949119941120784119949119941120785⋮119949119941 119930
][ iquest ]
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへ光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
問題提起
ただし実行速度が不十分 + 頂点数の増加で処理量が爆発
上記計算式で間接光は計算可能
F[119949119946119951119941120783119949119946119951119941120784119949119946119951119941120785⋮
119949119946119951119941119930] timesiquest [
119949119941120783119949119941120784119949119941120785⋮119949119941 119930
][ iquest ]
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
bull 全ての直接光は前計算した既知の状態の重ね合わせで近似できると仮定
キーアイディア
times01
+
times02
times04
+
現在の状態既知の状態
≒
CEDEC 2012
bull 直接光が変化しても係数のみが変化ndash 既知の状態は変化しない
キーアイディア
times04
+
times03
times01
+
現在の状態既知の状態
≒
CEDEC 2012
bull これはベクトルの足し合わせとして表現可能
キーアイディア
119960120783 +119960120784 +119960120785≑ [119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930]
119949119941 現在の 直接光の 状態
既知の状態
times01
+
times02
times04
+
[ 119949119941120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
CEDEC 2012
bull 各状態には対になる間接光の状態がそれぞれ存在
キーアイディア
119960120783 +119960120784 +119960120785≑
times120778 times120778 times120778times120778
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
CEDEC 2012
bull 直接光側と同じ重みで間接光側を足し合わす事でを近似可能
キーアイディア
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778times120778
CEDEC 2012
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778times120778
bull このロジックは下記条件を満たせば非常に高速1 必要な係数が十分に少ない2 係数が高速に計算可能
キーアイディア
今後既知の状態をrdquo基底rdquoと呼ぶ
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説
1 最適な基底の計算方法 2 係数の計算方法
- ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説
1 最適な基底の計算方法 2 係数の計算方法
- ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
を求める
bull 2方向のアプローチが考えられるndash 直接光優先 を先に求めて
から
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778 times120778
CEDEC 2012
を求める
bull 2方向のアプローチが考えられるndash 間接光優先 を先に求めて
から
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times119813minus120783 times119813minus120783 times119813minus120783 times119813minus120783
CEDEC 2012
を求める
bull 両方を並行して解説ndash 最終的には両方をハイブリッドしたアプローチで
より良い基底を算出
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778 times120778times119813minus120783 times119813minus120783 times119813minus120783 times119813minus120783
CEDEC 2012
最適な基底
bull 最適な基底は同じシーンでも場合によって異なるndash それぞれに特化した基底のほうが良い結果を得ら
れる
サンプリングベースの基底を採用
CEDEC 2012
bull 様々な状況でライティングした結果を集め特異値分解を用いて基底を算出
サンプリングベースの基底
特異値分解 119861119889特異値分解 119861119894119899 119889
CEDEC 2012
サンプルの選び方について
bull 特異値分解で得られるのは「全ての入力サンプルを良く近似する基底」
bull サンプルで用いる光源のタイプ方向位置を予め分かっている範囲で厳選するのが好ましい
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
119871119889
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
bull 入力された行列をという 3 行列に分解ndash 数多くの数学ライブラリがサポート
特異値分解 (Singular Value Decomposition)
119872
SVD
119880 Σ 119881119879lowast lowastiquest
が異なれば当然も異なる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
左から重要度順に並んでいるため必要な数だけ用いればよい
CEDEC 2012
基底による直接光の近似
CEDEC 2012
間接光計算の考え方
bull 背景オブジェクトの間接光はメッシュ頂点で計算
直接光直接光 + 間接光 間接光+=
頂点の情報のみ抽出補間
間接光変換処理
CEDEC 2012
間接光計算の考え方
bull メッシュ頂点のライティング状態をベクトルで表記
119826 シーンの頂点数
119826行 [119949120783119949120784119949120785⋮]1
ライティングベクトル
今後スライド中でライティング状態を
絵で示してもベクトルで表記しても等価
2
3
CEDEC 2012
間接光計算の考え方
bull 光の変換行列 F を用いた間接光計算119826 シーンの 頂点数
119949119941 サンプル点の直接光成分119949119946119951119941 サンプル点の間接光成分
直接光直接光 + 間接光 間接光+=
頂点の情報のみ抽出補間
間接光変換処理F[
119949119946119951119941120783119949119946119951119941120784119949119946119951119941120785⋮
119949119946119951119941119930] timesiquest [
119949119941120783119949119941120784119949119941120785⋮119949119941 119930
][ iquest ]
CEDEC 2012
間接光計算の考え方
bull 光の変換行列 F の計算
119826 シーンの頂点数
iquest119826行iquest
⋮⋮
⋮25 82
20
50 ⋯
光の変換行列F
行列 F は静的オブジェクト
なら前計算可能
CEDEC 2012
間接光計算の考え方
bull 要点1 背景オブジェクトの間接光はメッシュ頂点で計算2 ライティング状態はベクトルで表記可能3 直接光は光の変換行列 F を用いて間接光に変換4 光の変換行列 F は静的オブジェクトなら前計算可
能
+=
F[119949119946119951119941120783119949119946119951119941120784119949119946119951119941120785⋮
119949119946119951119941119930] timesiquest [
119949119941120783119949119941120784119949119941120785⋮119949119941 119930
][ iquest ]
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへ光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
問題提起
ただし実行速度が不十分 + 頂点数の増加で処理量が爆発
上記計算式で間接光は計算可能
F[119949119946119951119941120783119949119946119951119941120784119949119946119951119941120785⋮
119949119946119951119941119930] timesiquest [
119949119941120783119949119941120784119949119941120785⋮119949119941 119930
][ iquest ]
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
bull 全ての直接光は前計算した既知の状態の重ね合わせで近似できると仮定
キーアイディア
times01
+
times02
times04
+
現在の状態既知の状態
≒
CEDEC 2012
bull 直接光が変化しても係数のみが変化ndash 既知の状態は変化しない
キーアイディア
times04
+
times03
times01
+
現在の状態既知の状態
≒
CEDEC 2012
bull これはベクトルの足し合わせとして表現可能
キーアイディア
119960120783 +119960120784 +119960120785≑ [119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930]
119949119941 現在の 直接光の 状態
既知の状態
times01
+
times02
times04
+
[ 119949119941120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
CEDEC 2012
bull 各状態には対になる間接光の状態がそれぞれ存在
キーアイディア
119960120783 +119960120784 +119960120785≑
times120778 times120778 times120778times120778
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
CEDEC 2012
bull 直接光側と同じ重みで間接光側を足し合わす事でを近似可能
キーアイディア
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778times120778
CEDEC 2012
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778times120778
bull このロジックは下記条件を満たせば非常に高速1 必要な係数が十分に少ない2 係数が高速に計算可能
キーアイディア
今後既知の状態をrdquo基底rdquoと呼ぶ
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説
1 最適な基底の計算方法 2 係数の計算方法
- ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説
1 最適な基底の計算方法 2 係数の計算方法
- ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
を求める
bull 2方向のアプローチが考えられるndash 直接光優先 を先に求めて
から
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778 times120778
CEDEC 2012
を求める
bull 2方向のアプローチが考えられるndash 間接光優先 を先に求めて
から
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times119813minus120783 times119813minus120783 times119813minus120783 times119813minus120783
CEDEC 2012
を求める
bull 両方を並行して解説ndash 最終的には両方をハイブリッドしたアプローチで
より良い基底を算出
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778 times120778times119813minus120783 times119813minus120783 times119813minus120783 times119813minus120783
CEDEC 2012
最適な基底
bull 最適な基底は同じシーンでも場合によって異なるndash それぞれに特化した基底のほうが良い結果を得ら
れる
サンプリングベースの基底を採用
CEDEC 2012
bull 様々な状況でライティングした結果を集め特異値分解を用いて基底を算出
サンプリングベースの基底
特異値分解 119861119889特異値分解 119861119894119899 119889
CEDEC 2012
サンプルの選び方について
bull 特異値分解で得られるのは「全ての入力サンプルを良く近似する基底」
bull サンプルで用いる光源のタイプ方向位置を予め分かっている範囲で厳選するのが好ましい
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
119871119889
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
bull 入力された行列をという 3 行列に分解ndash 数多くの数学ライブラリがサポート
特異値分解 (Singular Value Decomposition)
119872
SVD
119880 Σ 119881119879lowast lowastiquest
が異なれば当然も異なる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
左から重要度順に並んでいるため必要な数だけ用いればよい
CEDEC 2012
基底による直接光の近似
CEDEC 2012
間接光計算の考え方
bull メッシュ頂点のライティング状態をベクトルで表記
119826 シーンの頂点数
119826行 [119949120783119949120784119949120785⋮]1
ライティングベクトル
今後スライド中でライティング状態を
絵で示してもベクトルで表記しても等価
2
3
CEDEC 2012
間接光計算の考え方
bull 光の変換行列 F を用いた間接光計算119826 シーンの 頂点数
119949119941 サンプル点の直接光成分119949119946119951119941 サンプル点の間接光成分
直接光直接光 + 間接光 間接光+=
頂点の情報のみ抽出補間
間接光変換処理F[
119949119946119951119941120783119949119946119951119941120784119949119946119951119941120785⋮
119949119946119951119941119930] timesiquest [
119949119941120783119949119941120784119949119941120785⋮119949119941 119930
][ iquest ]
CEDEC 2012
間接光計算の考え方
bull 光の変換行列 F の計算
119826 シーンの頂点数
iquest119826行iquest
⋮⋮
⋮25 82
20
50 ⋯
光の変換行列F
行列 F は静的オブジェクト
なら前計算可能
CEDEC 2012
間接光計算の考え方
bull 要点1 背景オブジェクトの間接光はメッシュ頂点で計算2 ライティング状態はベクトルで表記可能3 直接光は光の変換行列 F を用いて間接光に変換4 光の変換行列 F は静的オブジェクトなら前計算可
能
+=
F[119949119946119951119941120783119949119946119951119941120784119949119946119951119941120785⋮
119949119946119951119941119930] timesiquest [
119949119941120783119949119941120784119949119941120785⋮119949119941 119930
][ iquest ]
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへ光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
問題提起
ただし実行速度が不十分 + 頂点数の増加で処理量が爆発
上記計算式で間接光は計算可能
F[119949119946119951119941120783119949119946119951119941120784119949119946119951119941120785⋮
119949119946119951119941119930] timesiquest [
119949119941120783119949119941120784119949119941120785⋮119949119941 119930
][ iquest ]
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
bull 全ての直接光は前計算した既知の状態の重ね合わせで近似できると仮定
キーアイディア
times01
+
times02
times04
+
現在の状態既知の状態
≒
CEDEC 2012
bull 直接光が変化しても係数のみが変化ndash 既知の状態は変化しない
キーアイディア
times04
+
times03
times01
+
現在の状態既知の状態
≒
CEDEC 2012
bull これはベクトルの足し合わせとして表現可能
キーアイディア
119960120783 +119960120784 +119960120785≑ [119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930]
119949119941 現在の 直接光の 状態
既知の状態
times01
+
times02
times04
+
[ 119949119941120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
CEDEC 2012
bull 各状態には対になる間接光の状態がそれぞれ存在
キーアイディア
119960120783 +119960120784 +119960120785≑
times120778 times120778 times120778times120778
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
CEDEC 2012
bull 直接光側と同じ重みで間接光側を足し合わす事でを近似可能
キーアイディア
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778times120778
CEDEC 2012
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778times120778
bull このロジックは下記条件を満たせば非常に高速1 必要な係数が十分に少ない2 係数が高速に計算可能
キーアイディア
今後既知の状態をrdquo基底rdquoと呼ぶ
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説
1 最適な基底の計算方法 2 係数の計算方法
- ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説
1 最適な基底の計算方法 2 係数の計算方法
- ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
を求める
bull 2方向のアプローチが考えられるndash 直接光優先 を先に求めて
から
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778 times120778
CEDEC 2012
を求める
bull 2方向のアプローチが考えられるndash 間接光優先 を先に求めて
から
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times119813minus120783 times119813minus120783 times119813minus120783 times119813minus120783
CEDEC 2012
を求める
bull 両方を並行して解説ndash 最終的には両方をハイブリッドしたアプローチで
より良い基底を算出
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778 times120778times119813minus120783 times119813minus120783 times119813minus120783 times119813minus120783
CEDEC 2012
最適な基底
bull 最適な基底は同じシーンでも場合によって異なるndash それぞれに特化した基底のほうが良い結果を得ら
れる
サンプリングベースの基底を採用
CEDEC 2012
bull 様々な状況でライティングした結果を集め特異値分解を用いて基底を算出
サンプリングベースの基底
特異値分解 119861119889特異値分解 119861119894119899 119889
CEDEC 2012
サンプルの選び方について
bull 特異値分解で得られるのは「全ての入力サンプルを良く近似する基底」
bull サンプルで用いる光源のタイプ方向位置を予め分かっている範囲で厳選するのが好ましい
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
119871119889
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
bull 入力された行列をという 3 行列に分解ndash 数多くの数学ライブラリがサポート
特異値分解 (Singular Value Decomposition)
119872
SVD
119880 Σ 119881119879lowast lowastiquest
が異なれば当然も異なる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
左から重要度順に並んでいるため必要な数だけ用いればよい
CEDEC 2012
基底による直接光の近似
CEDEC 2012
間接光計算の考え方
bull 光の変換行列 F を用いた間接光計算119826 シーンの 頂点数
119949119941 サンプル点の直接光成分119949119946119951119941 サンプル点の間接光成分
直接光直接光 + 間接光 間接光+=
頂点の情報のみ抽出補間
間接光変換処理F[
119949119946119951119941120783119949119946119951119941120784119949119946119951119941120785⋮
119949119946119951119941119930] timesiquest [
119949119941120783119949119941120784119949119941120785⋮119949119941 119930
][ iquest ]
CEDEC 2012
間接光計算の考え方
bull 光の変換行列 F の計算
119826 シーンの頂点数
iquest119826行iquest
⋮⋮
⋮25 82
20
50 ⋯
光の変換行列F
行列 F は静的オブジェクト
なら前計算可能
CEDEC 2012
間接光計算の考え方
bull 要点1 背景オブジェクトの間接光はメッシュ頂点で計算2 ライティング状態はベクトルで表記可能3 直接光は光の変換行列 F を用いて間接光に変換4 光の変換行列 F は静的オブジェクトなら前計算可
能
+=
F[119949119946119951119941120783119949119946119951119941120784119949119946119951119941120785⋮
119949119946119951119941119930] timesiquest [
119949119941120783119949119941120784119949119941120785⋮119949119941 119930
][ iquest ]
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへ光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
問題提起
ただし実行速度が不十分 + 頂点数の増加で処理量が爆発
上記計算式で間接光は計算可能
F[119949119946119951119941120783119949119946119951119941120784119949119946119951119941120785⋮
119949119946119951119941119930] timesiquest [
119949119941120783119949119941120784119949119941120785⋮119949119941 119930
][ iquest ]
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
bull 全ての直接光は前計算した既知の状態の重ね合わせで近似できると仮定
キーアイディア
times01
+
times02
times04
+
現在の状態既知の状態
≒
CEDEC 2012
bull 直接光が変化しても係数のみが変化ndash 既知の状態は変化しない
キーアイディア
times04
+
times03
times01
+
現在の状態既知の状態
≒
CEDEC 2012
bull これはベクトルの足し合わせとして表現可能
キーアイディア
119960120783 +119960120784 +119960120785≑ [119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930]
119949119941 現在の 直接光の 状態
既知の状態
times01
+
times02
times04
+
[ 119949119941120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
CEDEC 2012
bull 各状態には対になる間接光の状態がそれぞれ存在
キーアイディア
119960120783 +119960120784 +119960120785≑
times120778 times120778 times120778times120778
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
CEDEC 2012
bull 直接光側と同じ重みで間接光側を足し合わす事でを近似可能
キーアイディア
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778times120778
CEDEC 2012
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778times120778
bull このロジックは下記条件を満たせば非常に高速1 必要な係数が十分に少ない2 係数が高速に計算可能
キーアイディア
今後既知の状態をrdquo基底rdquoと呼ぶ
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説
1 最適な基底の計算方法 2 係数の計算方法
- ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説
1 最適な基底の計算方法 2 係数の計算方法
- ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
を求める
bull 2方向のアプローチが考えられるndash 直接光優先 を先に求めて
から
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778 times120778
CEDEC 2012
を求める
bull 2方向のアプローチが考えられるndash 間接光優先 を先に求めて
から
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times119813minus120783 times119813minus120783 times119813minus120783 times119813minus120783
CEDEC 2012
を求める
bull 両方を並行して解説ndash 最終的には両方をハイブリッドしたアプローチで
より良い基底を算出
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778 times120778times119813minus120783 times119813minus120783 times119813minus120783 times119813minus120783
CEDEC 2012
最適な基底
bull 最適な基底は同じシーンでも場合によって異なるndash それぞれに特化した基底のほうが良い結果を得ら
れる
サンプリングベースの基底を採用
CEDEC 2012
bull 様々な状況でライティングした結果を集め特異値分解を用いて基底を算出
サンプリングベースの基底
特異値分解 119861119889特異値分解 119861119894119899 119889
CEDEC 2012
サンプルの選び方について
bull 特異値分解で得られるのは「全ての入力サンプルを良く近似する基底」
bull サンプルで用いる光源のタイプ方向位置を予め分かっている範囲で厳選するのが好ましい
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
119871119889
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
bull 入力された行列をという 3 行列に分解ndash 数多くの数学ライブラリがサポート
特異値分解 (Singular Value Decomposition)
119872
SVD
119880 Σ 119881119879lowast lowastiquest
が異なれば当然も異なる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
左から重要度順に並んでいるため必要な数だけ用いればよい
CEDEC 2012
基底による直接光の近似
CEDEC 2012
間接光計算の考え方
bull 光の変換行列 F の計算
119826 シーンの頂点数
iquest119826行iquest
⋮⋮
⋮25 82
20
50 ⋯
光の変換行列F
行列 F は静的オブジェクト
なら前計算可能
CEDEC 2012
間接光計算の考え方
bull 要点1 背景オブジェクトの間接光はメッシュ頂点で計算2 ライティング状態はベクトルで表記可能3 直接光は光の変換行列 F を用いて間接光に変換4 光の変換行列 F は静的オブジェクトなら前計算可
能
+=
F[119949119946119951119941120783119949119946119951119941120784119949119946119951119941120785⋮
119949119946119951119941119930] timesiquest [
119949119941120783119949119941120784119949119941120785⋮119949119941 119930
][ iquest ]
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへ光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
問題提起
ただし実行速度が不十分 + 頂点数の増加で処理量が爆発
上記計算式で間接光は計算可能
F[119949119946119951119941120783119949119946119951119941120784119949119946119951119941120785⋮
119949119946119951119941119930] timesiquest [
119949119941120783119949119941120784119949119941120785⋮119949119941 119930
][ iquest ]
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
bull 全ての直接光は前計算した既知の状態の重ね合わせで近似できると仮定
キーアイディア
times01
+
times02
times04
+
現在の状態既知の状態
≒
CEDEC 2012
bull 直接光が変化しても係数のみが変化ndash 既知の状態は変化しない
キーアイディア
times04
+
times03
times01
+
現在の状態既知の状態
≒
CEDEC 2012
bull これはベクトルの足し合わせとして表現可能
キーアイディア
119960120783 +119960120784 +119960120785≑ [119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930]
119949119941 現在の 直接光の 状態
既知の状態
times01
+
times02
times04
+
[ 119949119941120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
CEDEC 2012
bull 各状態には対になる間接光の状態がそれぞれ存在
キーアイディア
119960120783 +119960120784 +119960120785≑
times120778 times120778 times120778times120778
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
CEDEC 2012
bull 直接光側と同じ重みで間接光側を足し合わす事でを近似可能
キーアイディア
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778times120778
CEDEC 2012
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778times120778
bull このロジックは下記条件を満たせば非常に高速1 必要な係数が十分に少ない2 係数が高速に計算可能
キーアイディア
今後既知の状態をrdquo基底rdquoと呼ぶ
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説
1 最適な基底の計算方法 2 係数の計算方法
- ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説
1 最適な基底の計算方法 2 係数の計算方法
- ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
を求める
bull 2方向のアプローチが考えられるndash 直接光優先 を先に求めて
から
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778 times120778
CEDEC 2012
を求める
bull 2方向のアプローチが考えられるndash 間接光優先 を先に求めて
から
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times119813minus120783 times119813minus120783 times119813minus120783 times119813minus120783
CEDEC 2012
を求める
bull 両方を並行して解説ndash 最終的には両方をハイブリッドしたアプローチで
より良い基底を算出
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778 times120778times119813minus120783 times119813minus120783 times119813minus120783 times119813minus120783
CEDEC 2012
最適な基底
bull 最適な基底は同じシーンでも場合によって異なるndash それぞれに特化した基底のほうが良い結果を得ら
れる
サンプリングベースの基底を採用
CEDEC 2012
bull 様々な状況でライティングした結果を集め特異値分解を用いて基底を算出
サンプリングベースの基底
特異値分解 119861119889特異値分解 119861119894119899 119889
CEDEC 2012
サンプルの選び方について
bull 特異値分解で得られるのは「全ての入力サンプルを良く近似する基底」
bull サンプルで用いる光源のタイプ方向位置を予め分かっている範囲で厳選するのが好ましい
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
119871119889
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
bull 入力された行列をという 3 行列に分解ndash 数多くの数学ライブラリがサポート
特異値分解 (Singular Value Decomposition)
119872
SVD
119880 Σ 119881119879lowast lowastiquest
が異なれば当然も異なる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
左から重要度順に並んでいるため必要な数だけ用いればよい
CEDEC 2012
基底による直接光の近似
CEDEC 2012
間接光計算の考え方
bull 要点1 背景オブジェクトの間接光はメッシュ頂点で計算2 ライティング状態はベクトルで表記可能3 直接光は光の変換行列 F を用いて間接光に変換4 光の変換行列 F は静的オブジェクトなら前計算可
能
+=
F[119949119946119951119941120783119949119946119951119941120784119949119946119951119941120785⋮
119949119946119951119941119930] timesiquest [
119949119941120783119949119941120784119949119941120785⋮119949119941 119930
][ iquest ]
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへ光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
問題提起
ただし実行速度が不十分 + 頂点数の増加で処理量が爆発
上記計算式で間接光は計算可能
F[119949119946119951119941120783119949119946119951119941120784119949119946119951119941120785⋮
119949119946119951119941119930] timesiquest [
119949119941120783119949119941120784119949119941120785⋮119949119941 119930
][ iquest ]
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
bull 全ての直接光は前計算した既知の状態の重ね合わせで近似できると仮定
キーアイディア
times01
+
times02
times04
+
現在の状態既知の状態
≒
CEDEC 2012
bull 直接光が変化しても係数のみが変化ndash 既知の状態は変化しない
キーアイディア
times04
+
times03
times01
+
現在の状態既知の状態
≒
CEDEC 2012
bull これはベクトルの足し合わせとして表現可能
キーアイディア
119960120783 +119960120784 +119960120785≑ [119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930]
119949119941 現在の 直接光の 状態
既知の状態
times01
+
times02
times04
+
[ 119949119941120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
CEDEC 2012
bull 各状態には対になる間接光の状態がそれぞれ存在
キーアイディア
119960120783 +119960120784 +119960120785≑
times120778 times120778 times120778times120778
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
CEDEC 2012
bull 直接光側と同じ重みで間接光側を足し合わす事でを近似可能
キーアイディア
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778times120778
CEDEC 2012
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778times120778
bull このロジックは下記条件を満たせば非常に高速1 必要な係数が十分に少ない2 係数が高速に計算可能
キーアイディア
今後既知の状態をrdquo基底rdquoと呼ぶ
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説
1 最適な基底の計算方法 2 係数の計算方法
- ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説
1 最適な基底の計算方法 2 係数の計算方法
- ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
を求める
bull 2方向のアプローチが考えられるndash 直接光優先 を先に求めて
から
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778 times120778
CEDEC 2012
を求める
bull 2方向のアプローチが考えられるndash 間接光優先 を先に求めて
から
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times119813minus120783 times119813minus120783 times119813minus120783 times119813minus120783
CEDEC 2012
を求める
bull 両方を並行して解説ndash 最終的には両方をハイブリッドしたアプローチで
より良い基底を算出
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778 times120778times119813minus120783 times119813minus120783 times119813minus120783 times119813minus120783
CEDEC 2012
最適な基底
bull 最適な基底は同じシーンでも場合によって異なるndash それぞれに特化した基底のほうが良い結果を得ら
れる
サンプリングベースの基底を採用
CEDEC 2012
bull 様々な状況でライティングした結果を集め特異値分解を用いて基底を算出
サンプリングベースの基底
特異値分解 119861119889特異値分解 119861119894119899 119889
CEDEC 2012
サンプルの選び方について
bull 特異値分解で得られるのは「全ての入力サンプルを良く近似する基底」
bull サンプルで用いる光源のタイプ方向位置を予め分かっている範囲で厳選するのが好ましい
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
119871119889
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
bull 入力された行列をという 3 行列に分解ndash 数多くの数学ライブラリがサポート
特異値分解 (Singular Value Decomposition)
119872
SVD
119880 Σ 119881119879lowast lowastiquest
が異なれば当然も異なる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
左から重要度順に並んでいるため必要な数だけ用いればよい
CEDEC 2012
基底による直接光の近似
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへ光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
問題提起
ただし実行速度が不十分 + 頂点数の増加で処理量が爆発
上記計算式で間接光は計算可能
F[119949119946119951119941120783119949119946119951119941120784119949119946119951119941120785⋮
119949119946119951119941119930] timesiquest [
119949119941120783119949119941120784119949119941120785⋮119949119941 119930
][ iquest ]
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
bull 全ての直接光は前計算した既知の状態の重ね合わせで近似できると仮定
キーアイディア
times01
+
times02
times04
+
現在の状態既知の状態
≒
CEDEC 2012
bull 直接光が変化しても係数のみが変化ndash 既知の状態は変化しない
キーアイディア
times04
+
times03
times01
+
現在の状態既知の状態
≒
CEDEC 2012
bull これはベクトルの足し合わせとして表現可能
キーアイディア
119960120783 +119960120784 +119960120785≑ [119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930]
119949119941 現在の 直接光の 状態
既知の状態
times01
+
times02
times04
+
[ 119949119941120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
CEDEC 2012
bull 各状態には対になる間接光の状態がそれぞれ存在
キーアイディア
119960120783 +119960120784 +119960120785≑
times120778 times120778 times120778times120778
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
CEDEC 2012
bull 直接光側と同じ重みで間接光側を足し合わす事でを近似可能
キーアイディア
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778times120778
CEDEC 2012
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778times120778
bull このロジックは下記条件を満たせば非常に高速1 必要な係数が十分に少ない2 係数が高速に計算可能
キーアイディア
今後既知の状態をrdquo基底rdquoと呼ぶ
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説
1 最適な基底の計算方法 2 係数の計算方法
- ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説
1 最適な基底の計算方法 2 係数の計算方法
- ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
を求める
bull 2方向のアプローチが考えられるndash 直接光優先 を先に求めて
から
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778 times120778
CEDEC 2012
を求める
bull 2方向のアプローチが考えられるndash 間接光優先 を先に求めて
から
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times119813minus120783 times119813minus120783 times119813minus120783 times119813minus120783
CEDEC 2012
を求める
bull 両方を並行して解説ndash 最終的には両方をハイブリッドしたアプローチで
より良い基底を算出
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778 times120778times119813minus120783 times119813minus120783 times119813minus120783 times119813minus120783
CEDEC 2012
最適な基底
bull 最適な基底は同じシーンでも場合によって異なるndash それぞれに特化した基底のほうが良い結果を得ら
れる
サンプリングベースの基底を採用
CEDEC 2012
bull 様々な状況でライティングした結果を集め特異値分解を用いて基底を算出
サンプリングベースの基底
特異値分解 119861119889特異値分解 119861119894119899 119889
CEDEC 2012
サンプルの選び方について
bull 特異値分解で得られるのは「全ての入力サンプルを良く近似する基底」
bull サンプルで用いる光源のタイプ方向位置を予め分かっている範囲で厳選するのが好ましい
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
119871119889
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
bull 入力された行列をという 3 行列に分解ndash 数多くの数学ライブラリがサポート
特異値分解 (Singular Value Decomposition)
119872
SVD
119880 Σ 119881119879lowast lowastiquest
が異なれば当然も異なる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
左から重要度順に並んでいるため必要な数だけ用いればよい
CEDEC 2012
基底による直接光の近似
CEDEC 2012
問題提起
ただし実行速度が不十分 + 頂点数の増加で処理量が爆発
上記計算式で間接光は計算可能
F[119949119946119951119941120783119949119946119951119941120784119949119946119951119941120785⋮
119949119946119951119941119930] timesiquest [
119949119941120783119949119941120784119949119941120785⋮119949119941 119930
][ iquest ]
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
bull 全ての直接光は前計算した既知の状態の重ね合わせで近似できると仮定
キーアイディア
times01
+
times02
times04
+
現在の状態既知の状態
≒
CEDEC 2012
bull 直接光が変化しても係数のみが変化ndash 既知の状態は変化しない
キーアイディア
times04
+
times03
times01
+
現在の状態既知の状態
≒
CEDEC 2012
bull これはベクトルの足し合わせとして表現可能
キーアイディア
119960120783 +119960120784 +119960120785≑ [119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930]
119949119941 現在の 直接光の 状態
既知の状態
times01
+
times02
times04
+
[ 119949119941120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
CEDEC 2012
bull 各状態には対になる間接光の状態がそれぞれ存在
キーアイディア
119960120783 +119960120784 +119960120785≑
times120778 times120778 times120778times120778
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
CEDEC 2012
bull 直接光側と同じ重みで間接光側を足し合わす事でを近似可能
キーアイディア
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778times120778
CEDEC 2012
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778times120778
bull このロジックは下記条件を満たせば非常に高速1 必要な係数が十分に少ない2 係数が高速に計算可能
キーアイディア
今後既知の状態をrdquo基底rdquoと呼ぶ
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説
1 最適な基底の計算方法 2 係数の計算方法
- ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説
1 最適な基底の計算方法 2 係数の計算方法
- ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
を求める
bull 2方向のアプローチが考えられるndash 直接光優先 を先に求めて
から
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778 times120778
CEDEC 2012
を求める
bull 2方向のアプローチが考えられるndash 間接光優先 を先に求めて
から
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times119813minus120783 times119813minus120783 times119813minus120783 times119813minus120783
CEDEC 2012
を求める
bull 両方を並行して解説ndash 最終的には両方をハイブリッドしたアプローチで
より良い基底を算出
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778 times120778times119813minus120783 times119813minus120783 times119813minus120783 times119813minus120783
CEDEC 2012
最適な基底
bull 最適な基底は同じシーンでも場合によって異なるndash それぞれに特化した基底のほうが良い結果を得ら
れる
サンプリングベースの基底を採用
CEDEC 2012
bull 様々な状況でライティングした結果を集め特異値分解を用いて基底を算出
サンプリングベースの基底
特異値分解 119861119889特異値分解 119861119894119899 119889
CEDEC 2012
サンプルの選び方について
bull 特異値分解で得られるのは「全ての入力サンプルを良く近似する基底」
bull サンプルで用いる光源のタイプ方向位置を予め分かっている範囲で厳選するのが好ましい
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
119871119889
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
bull 入力された行列をという 3 行列に分解ndash 数多くの数学ライブラリがサポート
特異値分解 (Singular Value Decomposition)
119872
SVD
119880 Σ 119881119879lowast lowastiquest
が異なれば当然も異なる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
左から重要度順に並んでいるため必要な数だけ用いればよい
CEDEC 2012
基底による直接光の近似
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 1 間接光計算の考え方の説明 2 問題提起 3 キーアイディアの説明
- 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
bull 全ての直接光は前計算した既知の状態の重ね合わせで近似できると仮定
キーアイディア
times01
+
times02
times04
+
現在の状態既知の状態
≒
CEDEC 2012
bull 直接光が変化しても係数のみが変化ndash 既知の状態は変化しない
キーアイディア
times04
+
times03
times01
+
現在の状態既知の状態
≒
CEDEC 2012
bull これはベクトルの足し合わせとして表現可能
キーアイディア
119960120783 +119960120784 +119960120785≑ [119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930]
119949119941 現在の 直接光の 状態
既知の状態
times01
+
times02
times04
+
[ 119949119941120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
CEDEC 2012
bull 各状態には対になる間接光の状態がそれぞれ存在
キーアイディア
119960120783 +119960120784 +119960120785≑
times120778 times120778 times120778times120778
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
CEDEC 2012
bull 直接光側と同じ重みで間接光側を足し合わす事でを近似可能
キーアイディア
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778times120778
CEDEC 2012
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778times120778
bull このロジックは下記条件を満たせば非常に高速1 必要な係数が十分に少ない2 係数が高速に計算可能
キーアイディア
今後既知の状態をrdquo基底rdquoと呼ぶ
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説
1 最適な基底の計算方法 2 係数の計算方法
- ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説
1 最適な基底の計算方法 2 係数の計算方法
- ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
を求める
bull 2方向のアプローチが考えられるndash 直接光優先 を先に求めて
から
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778 times120778
CEDEC 2012
を求める
bull 2方向のアプローチが考えられるndash 間接光優先 を先に求めて
から
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times119813minus120783 times119813minus120783 times119813minus120783 times119813minus120783
CEDEC 2012
を求める
bull 両方を並行して解説ndash 最終的には両方をハイブリッドしたアプローチで
より良い基底を算出
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778 times120778times119813minus120783 times119813minus120783 times119813minus120783 times119813minus120783
CEDEC 2012
最適な基底
bull 最適な基底は同じシーンでも場合によって異なるndash それぞれに特化した基底のほうが良い結果を得ら
れる
サンプリングベースの基底を採用
CEDEC 2012
bull 様々な状況でライティングした結果を集め特異値分解を用いて基底を算出
サンプリングベースの基底
特異値分解 119861119889特異値分解 119861119894119899 119889
CEDEC 2012
サンプルの選び方について
bull 特異値分解で得られるのは「全ての入力サンプルを良く近似する基底」
bull サンプルで用いる光源のタイプ方向位置を予め分かっている範囲で厳選するのが好ましい
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
119871119889
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
bull 入力された行列をという 3 行列に分解ndash 数多くの数学ライブラリがサポート
特異値分解 (Singular Value Decomposition)
119872
SVD
119880 Σ 119881119879lowast lowastiquest
が異なれば当然も異なる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
左から重要度順に並んでいるため必要な数だけ用いればよい
CEDEC 2012
基底による直接光の近似
CEDEC 2012
bull 全ての直接光は前計算した既知の状態の重ね合わせで近似できると仮定
キーアイディア
times01
+
times02
times04
+
現在の状態既知の状態
≒
CEDEC 2012
bull 直接光が変化しても係数のみが変化ndash 既知の状態は変化しない
キーアイディア
times04
+
times03
times01
+
現在の状態既知の状態
≒
CEDEC 2012
bull これはベクトルの足し合わせとして表現可能
キーアイディア
119960120783 +119960120784 +119960120785≑ [119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930]
119949119941 現在の 直接光の 状態
既知の状態
times01
+
times02
times04
+
[ 119949119941120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
CEDEC 2012
bull 各状態には対になる間接光の状態がそれぞれ存在
キーアイディア
119960120783 +119960120784 +119960120785≑
times120778 times120778 times120778times120778
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
CEDEC 2012
bull 直接光側と同じ重みで間接光側を足し合わす事でを近似可能
キーアイディア
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778times120778
CEDEC 2012
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778times120778
bull このロジックは下記条件を満たせば非常に高速1 必要な係数が十分に少ない2 係数が高速に計算可能
キーアイディア
今後既知の状態をrdquo基底rdquoと呼ぶ
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説
1 最適な基底の計算方法 2 係数の計算方法
- ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説
1 最適な基底の計算方法 2 係数の計算方法
- ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
を求める
bull 2方向のアプローチが考えられるndash 直接光優先 を先に求めて
から
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778 times120778
CEDEC 2012
を求める
bull 2方向のアプローチが考えられるndash 間接光優先 を先に求めて
から
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times119813minus120783 times119813minus120783 times119813minus120783 times119813minus120783
CEDEC 2012
を求める
bull 両方を並行して解説ndash 最終的には両方をハイブリッドしたアプローチで
より良い基底を算出
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778 times120778times119813minus120783 times119813minus120783 times119813minus120783 times119813minus120783
CEDEC 2012
最適な基底
bull 最適な基底は同じシーンでも場合によって異なるndash それぞれに特化した基底のほうが良い結果を得ら
れる
サンプリングベースの基底を採用
CEDEC 2012
bull 様々な状況でライティングした結果を集め特異値分解を用いて基底を算出
サンプリングベースの基底
特異値分解 119861119889特異値分解 119861119894119899 119889
CEDEC 2012
サンプルの選び方について
bull 特異値分解で得られるのは「全ての入力サンプルを良く近似する基底」
bull サンプルで用いる光源のタイプ方向位置を予め分かっている範囲で厳選するのが好ましい
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
119871119889
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
bull 入力された行列をという 3 行列に分解ndash 数多くの数学ライブラリがサポート
特異値分解 (Singular Value Decomposition)
119872
SVD
119880 Σ 119881119879lowast lowastiquest
が異なれば当然も異なる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
左から重要度順に並んでいるため必要な数だけ用いればよい
CEDEC 2012
基底による直接光の近似
CEDEC 2012
bull 直接光が変化しても係数のみが変化ndash 既知の状態は変化しない
キーアイディア
times04
+
times03
times01
+
現在の状態既知の状態
≒
CEDEC 2012
bull これはベクトルの足し合わせとして表現可能
キーアイディア
119960120783 +119960120784 +119960120785≑ [119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930]
119949119941 現在の 直接光の 状態
既知の状態
times01
+
times02
times04
+
[ 119949119941120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
CEDEC 2012
bull 各状態には対になる間接光の状態がそれぞれ存在
キーアイディア
119960120783 +119960120784 +119960120785≑
times120778 times120778 times120778times120778
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
CEDEC 2012
bull 直接光側と同じ重みで間接光側を足し合わす事でを近似可能
キーアイディア
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778times120778
CEDEC 2012
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778times120778
bull このロジックは下記条件を満たせば非常に高速1 必要な係数が十分に少ない2 係数が高速に計算可能
キーアイディア
今後既知の状態をrdquo基底rdquoと呼ぶ
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説
1 最適な基底の計算方法 2 係数の計算方法
- ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説
1 最適な基底の計算方法 2 係数の計算方法
- ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
を求める
bull 2方向のアプローチが考えられるndash 直接光優先 を先に求めて
から
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778 times120778
CEDEC 2012
を求める
bull 2方向のアプローチが考えられるndash 間接光優先 を先に求めて
から
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times119813minus120783 times119813minus120783 times119813minus120783 times119813minus120783
CEDEC 2012
を求める
bull 両方を並行して解説ndash 最終的には両方をハイブリッドしたアプローチで
より良い基底を算出
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778 times120778times119813minus120783 times119813minus120783 times119813minus120783 times119813minus120783
CEDEC 2012
最適な基底
bull 最適な基底は同じシーンでも場合によって異なるndash それぞれに特化した基底のほうが良い結果を得ら
れる
サンプリングベースの基底を採用
CEDEC 2012
bull 様々な状況でライティングした結果を集め特異値分解を用いて基底を算出
サンプリングベースの基底
特異値分解 119861119889特異値分解 119861119894119899 119889
CEDEC 2012
サンプルの選び方について
bull 特異値分解で得られるのは「全ての入力サンプルを良く近似する基底」
bull サンプルで用いる光源のタイプ方向位置を予め分かっている範囲で厳選するのが好ましい
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
119871119889
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
bull 入力された行列をという 3 行列に分解ndash 数多くの数学ライブラリがサポート
特異値分解 (Singular Value Decomposition)
119872
SVD
119880 Σ 119881119879lowast lowastiquest
が異なれば当然も異なる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
左から重要度順に並んでいるため必要な数だけ用いればよい
CEDEC 2012
基底による直接光の近似
CEDEC 2012
bull これはベクトルの足し合わせとして表現可能
キーアイディア
119960120783 +119960120784 +119960120785≑ [119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930]
119949119941 現在の 直接光の 状態
既知の状態
times01
+
times02
times04
+
[ 119949119941120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
CEDEC 2012
bull 各状態には対になる間接光の状態がそれぞれ存在
キーアイディア
119960120783 +119960120784 +119960120785≑
times120778 times120778 times120778times120778
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
CEDEC 2012
bull 直接光側と同じ重みで間接光側を足し合わす事でを近似可能
キーアイディア
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778times120778
CEDEC 2012
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778times120778
bull このロジックは下記条件を満たせば非常に高速1 必要な係数が十分に少ない2 係数が高速に計算可能
キーアイディア
今後既知の状態をrdquo基底rdquoと呼ぶ
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説
1 最適な基底の計算方法 2 係数の計算方法
- ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説
1 最適な基底の計算方法 2 係数の計算方法
- ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
を求める
bull 2方向のアプローチが考えられるndash 直接光優先 を先に求めて
から
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778 times120778
CEDEC 2012
を求める
bull 2方向のアプローチが考えられるndash 間接光優先 を先に求めて
から
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times119813minus120783 times119813minus120783 times119813minus120783 times119813minus120783
CEDEC 2012
を求める
bull 両方を並行して解説ndash 最終的には両方をハイブリッドしたアプローチで
より良い基底を算出
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778 times120778times119813minus120783 times119813minus120783 times119813minus120783 times119813minus120783
CEDEC 2012
最適な基底
bull 最適な基底は同じシーンでも場合によって異なるndash それぞれに特化した基底のほうが良い結果を得ら
れる
サンプリングベースの基底を採用
CEDEC 2012
bull 様々な状況でライティングした結果を集め特異値分解を用いて基底を算出
サンプリングベースの基底
特異値分解 119861119889特異値分解 119861119894119899 119889
CEDEC 2012
サンプルの選び方について
bull 特異値分解で得られるのは「全ての入力サンプルを良く近似する基底」
bull サンプルで用いる光源のタイプ方向位置を予め分かっている範囲で厳選するのが好ましい
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
119871119889
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
bull 入力された行列をという 3 行列に分解ndash 数多くの数学ライブラリがサポート
特異値分解 (Singular Value Decomposition)
119872
SVD
119880 Σ 119881119879lowast lowastiquest
が異なれば当然も異なる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
左から重要度順に並んでいるため必要な数だけ用いればよい
CEDEC 2012
基底による直接光の近似
CEDEC 2012
bull 各状態には対になる間接光の状態がそれぞれ存在
キーアイディア
119960120783 +119960120784 +119960120785≑
times120778 times120778 times120778times120778
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
CEDEC 2012
bull 直接光側と同じ重みで間接光側を足し合わす事でを近似可能
キーアイディア
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778times120778
CEDEC 2012
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778times120778
bull このロジックは下記条件を満たせば非常に高速1 必要な係数が十分に少ない2 係数が高速に計算可能
キーアイディア
今後既知の状態をrdquo基底rdquoと呼ぶ
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説
1 最適な基底の計算方法 2 係数の計算方法
- ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説
1 最適な基底の計算方法 2 係数の計算方法
- ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
を求める
bull 2方向のアプローチが考えられるndash 直接光優先 を先に求めて
から
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778 times120778
CEDEC 2012
を求める
bull 2方向のアプローチが考えられるndash 間接光優先 を先に求めて
から
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times119813minus120783 times119813minus120783 times119813minus120783 times119813minus120783
CEDEC 2012
を求める
bull 両方を並行して解説ndash 最終的には両方をハイブリッドしたアプローチで
より良い基底を算出
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778 times120778times119813minus120783 times119813minus120783 times119813minus120783 times119813minus120783
CEDEC 2012
最適な基底
bull 最適な基底は同じシーンでも場合によって異なるndash それぞれに特化した基底のほうが良い結果を得ら
れる
サンプリングベースの基底を採用
CEDEC 2012
bull 様々な状況でライティングした結果を集め特異値分解を用いて基底を算出
サンプリングベースの基底
特異値分解 119861119889特異値分解 119861119894119899 119889
CEDEC 2012
サンプルの選び方について
bull 特異値分解で得られるのは「全ての入力サンプルを良く近似する基底」
bull サンプルで用いる光源のタイプ方向位置を予め分かっている範囲で厳選するのが好ましい
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
119871119889
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
bull 入力された行列をという 3 行列に分解ndash 数多くの数学ライブラリがサポート
特異値分解 (Singular Value Decomposition)
119872
SVD
119880 Σ 119881119879lowast lowastiquest
が異なれば当然も異なる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
左から重要度順に並んでいるため必要な数だけ用いればよい
CEDEC 2012
基底による直接光の近似
CEDEC 2012
bull 直接光側と同じ重みで間接光側を足し合わす事でを近似可能
キーアイディア
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778times120778
CEDEC 2012
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778times120778
bull このロジックは下記条件を満たせば非常に高速1 必要な係数が十分に少ない2 係数が高速に計算可能
キーアイディア
今後既知の状態をrdquo基底rdquoと呼ぶ
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説
1 最適な基底の計算方法 2 係数の計算方法
- ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説
1 最適な基底の計算方法 2 係数の計算方法
- ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
を求める
bull 2方向のアプローチが考えられるndash 直接光優先 を先に求めて
から
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778 times120778
CEDEC 2012
を求める
bull 2方向のアプローチが考えられるndash 間接光優先 を先に求めて
から
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times119813minus120783 times119813minus120783 times119813minus120783 times119813minus120783
CEDEC 2012
を求める
bull 両方を並行して解説ndash 最終的には両方をハイブリッドしたアプローチで
より良い基底を算出
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778 times120778times119813minus120783 times119813minus120783 times119813minus120783 times119813minus120783
CEDEC 2012
最適な基底
bull 最適な基底は同じシーンでも場合によって異なるndash それぞれに特化した基底のほうが良い結果を得ら
れる
サンプリングベースの基底を採用
CEDEC 2012
bull 様々な状況でライティングした結果を集め特異値分解を用いて基底を算出
サンプリングベースの基底
特異値分解 119861119889特異値分解 119861119894119899 119889
CEDEC 2012
サンプルの選び方について
bull 特異値分解で得られるのは「全ての入力サンプルを良く近似する基底」
bull サンプルで用いる光源のタイプ方向位置を予め分かっている範囲で厳選するのが好ましい
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
119871119889
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
bull 入力された行列をという 3 行列に分解ndash 数多くの数学ライブラリがサポート
特異値分解 (Singular Value Decomposition)
119872
SVD
119880 Σ 119881119879lowast lowastiquest
が異なれば当然も異なる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
左から重要度順に並んでいるため必要な数だけ用いればよい
CEDEC 2012
基底による直接光の近似
CEDEC 2012
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778times120778
bull このロジックは下記条件を満たせば非常に高速1 必要な係数が十分に少ない2 係数が高速に計算可能
キーアイディア
今後既知の状態をrdquo基底rdquoと呼ぶ
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説
1 最適な基底の計算方法 2 係数の計算方法
- ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説
1 最適な基底の計算方法 2 係数の計算方法
- ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
を求める
bull 2方向のアプローチが考えられるndash 直接光優先 を先に求めて
から
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778 times120778
CEDEC 2012
を求める
bull 2方向のアプローチが考えられるndash 間接光優先 を先に求めて
から
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times119813minus120783 times119813minus120783 times119813minus120783 times119813minus120783
CEDEC 2012
を求める
bull 両方を並行して解説ndash 最終的には両方をハイブリッドしたアプローチで
より良い基底を算出
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778 times120778times119813minus120783 times119813minus120783 times119813minus120783 times119813minus120783
CEDEC 2012
最適な基底
bull 最適な基底は同じシーンでも場合によって異なるndash それぞれに特化した基底のほうが良い結果を得ら
れる
サンプリングベースの基底を採用
CEDEC 2012
bull 様々な状況でライティングした結果を集め特異値分解を用いて基底を算出
サンプリングベースの基底
特異値分解 119861119889特異値分解 119861119894119899 119889
CEDEC 2012
サンプルの選び方について
bull 特異値分解で得られるのは「全ての入力サンプルを良く近似する基底」
bull サンプルで用いる光源のタイプ方向位置を予め分かっている範囲で厳選するのが好ましい
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
119871119889
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
bull 入力された行列をという 3 行列に分解ndash 数多くの数学ライブラリがサポート
特異値分解 (Singular Value Decomposition)
119872
SVD
119880 Σ 119881119879lowast lowastiquest
が異なれば当然も異なる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
左から重要度順に並んでいるため必要な数だけ用いればよい
CEDEC 2012
基底による直接光の近似
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説
1 最適な基底の計算方法 2 係数の計算方法
- ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説
1 最適な基底の計算方法 2 係数の計算方法
- ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
を求める
bull 2方向のアプローチが考えられるndash 直接光優先 を先に求めて
から
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778 times120778
CEDEC 2012
を求める
bull 2方向のアプローチが考えられるndash 間接光優先 を先に求めて
から
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times119813minus120783 times119813minus120783 times119813minus120783 times119813minus120783
CEDEC 2012
を求める
bull 両方を並行して解説ndash 最終的には両方をハイブリッドしたアプローチで
より良い基底を算出
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778 times120778times119813minus120783 times119813minus120783 times119813minus120783 times119813minus120783
CEDEC 2012
最適な基底
bull 最適な基底は同じシーンでも場合によって異なるndash それぞれに特化した基底のほうが良い結果を得ら
れる
サンプリングベースの基底を採用
CEDEC 2012
bull 様々な状況でライティングした結果を集め特異値分解を用いて基底を算出
サンプリングベースの基底
特異値分解 119861119889特異値分解 119861119894119899 119889
CEDEC 2012
サンプルの選び方について
bull 特異値分解で得られるのは「全ての入力サンプルを良く近似する基底」
bull サンプルで用いる光源のタイプ方向位置を予め分かっている範囲で厳選するのが好ましい
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
119871119889
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
bull 入力された行列をという 3 行列に分解ndash 数多くの数学ライブラリがサポート
特異値分解 (Singular Value Decomposition)
119872
SVD
119880 Σ 119881119879lowast lowastiquest
が異なれば当然も異なる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
左から重要度順に並んでいるため必要な数だけ用いればよい
CEDEC 2012
基底による直接光の近似
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説
1 最適な基底の計算方法 2 係数の計算方法
- ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
を求める
bull 2方向のアプローチが考えられるndash 直接光優先 を先に求めて
から
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778 times120778
CEDEC 2012
を求める
bull 2方向のアプローチが考えられるndash 間接光優先 を先に求めて
から
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times119813minus120783 times119813minus120783 times119813minus120783 times119813minus120783
CEDEC 2012
を求める
bull 両方を並行して解説ndash 最終的には両方をハイブリッドしたアプローチで
より良い基底を算出
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778 times120778times119813minus120783 times119813minus120783 times119813minus120783 times119813minus120783
CEDEC 2012
最適な基底
bull 最適な基底は同じシーンでも場合によって異なるndash それぞれに特化した基底のほうが良い結果を得ら
れる
サンプリングベースの基底を採用
CEDEC 2012
bull 様々な状況でライティングした結果を集め特異値分解を用いて基底を算出
サンプリングベースの基底
特異値分解 119861119889特異値分解 119861119894119899 119889
CEDEC 2012
サンプルの選び方について
bull 特異値分解で得られるのは「全ての入力サンプルを良く近似する基底」
bull サンプルで用いる光源のタイプ方向位置を予め分かっている範囲で厳選するのが好ましい
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
119871119889
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
bull 入力された行列をという 3 行列に分解ndash 数多くの数学ライブラリがサポート
特異値分解 (Singular Value Decomposition)
119872
SVD
119880 Σ 119881119879lowast lowastiquest
が異なれば当然も異なる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
左から重要度順に並んでいるため必要な数だけ用いればよい
CEDEC 2012
基底による直接光の近似
CEDEC 2012
を求める
bull 2方向のアプローチが考えられるndash 直接光優先 を先に求めて
から
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778 times120778
CEDEC 2012
を求める
bull 2方向のアプローチが考えられるndash 間接光優先 を先に求めて
から
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times119813minus120783 times119813minus120783 times119813minus120783 times119813minus120783
CEDEC 2012
を求める
bull 両方を並行して解説ndash 最終的には両方をハイブリッドしたアプローチで
より良い基底を算出
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778 times120778times119813minus120783 times119813minus120783 times119813minus120783 times119813minus120783
CEDEC 2012
最適な基底
bull 最適な基底は同じシーンでも場合によって異なるndash それぞれに特化した基底のほうが良い結果を得ら
れる
サンプリングベースの基底を採用
CEDEC 2012
bull 様々な状況でライティングした結果を集め特異値分解を用いて基底を算出
サンプリングベースの基底
特異値分解 119861119889特異値分解 119861119894119899 119889
CEDEC 2012
サンプルの選び方について
bull 特異値分解で得られるのは「全ての入力サンプルを良く近似する基底」
bull サンプルで用いる光源のタイプ方向位置を予め分かっている範囲で厳選するのが好ましい
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
119871119889
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
bull 入力された行列をという 3 行列に分解ndash 数多くの数学ライブラリがサポート
特異値分解 (Singular Value Decomposition)
119872
SVD
119880 Σ 119881119879lowast lowastiquest
が異なれば当然も異なる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
左から重要度順に並んでいるため必要な数だけ用いればよい
CEDEC 2012
基底による直接光の近似
CEDEC 2012
を求める
bull 2方向のアプローチが考えられるndash 間接光優先 を先に求めて
から
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times119813minus120783 times119813minus120783 times119813minus120783 times119813minus120783
CEDEC 2012
を求める
bull 両方を並行して解説ndash 最終的には両方をハイブリッドしたアプローチで
より良い基底を算出
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778 times120778times119813minus120783 times119813minus120783 times119813minus120783 times119813minus120783
CEDEC 2012
最適な基底
bull 最適な基底は同じシーンでも場合によって異なるndash それぞれに特化した基底のほうが良い結果を得ら
れる
サンプリングベースの基底を採用
CEDEC 2012
bull 様々な状況でライティングした結果を集め特異値分解を用いて基底を算出
サンプリングベースの基底
特異値分解 119861119889特異値分解 119861119894119899 119889
CEDEC 2012
サンプルの選び方について
bull 特異値分解で得られるのは「全ての入力サンプルを良く近似する基底」
bull サンプルで用いる光源のタイプ方向位置を予め分かっている範囲で厳選するのが好ましい
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
119871119889
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
bull 入力された行列をという 3 行列に分解ndash 数多くの数学ライブラリがサポート
特異値分解 (Singular Value Decomposition)
119872
SVD
119880 Σ 119881119879lowast lowastiquest
が異なれば当然も異なる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
左から重要度順に並んでいるため必要な数だけ用いればよい
CEDEC 2012
基底による直接光の近似
CEDEC 2012
を求める
bull 両方を並行して解説ndash 最終的には両方をハイブリッドしたアプローチで
より良い基底を算出
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
[119913119941120783120783
119913119941120783120784
⋮119913119941
120783119930][ 119949119941
120783
119949119941120784
⋮119949119941119930] [119913119941
120784120783
119913119941120784120784
⋮119913119941
120784119930] [119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119930]
[119913119946119951119941120783
120783
119913119946119951119941120783
120784
⋮119913119946119951119941
120783119930][ 119949119946119951119941
120783
119949119946119951119941
120784
⋮119949119946119951119941
119930] [119913119946119951119941
120784120783
119913119946119951119941120784
120784
⋮119913119946119951119941
120784119930] [119913119946119951119941
120785120783
119913119946119951119941120785
120784
⋮119913119946119951119941
120785119930]
times120778 times120778 times120778 times120778times119813minus120783 times119813minus120783 times119813minus120783 times119813minus120783
CEDEC 2012
最適な基底
bull 最適な基底は同じシーンでも場合によって異なるndash それぞれに特化した基底のほうが良い結果を得ら
れる
サンプリングベースの基底を採用
CEDEC 2012
bull 様々な状況でライティングした結果を集め特異値分解を用いて基底を算出
サンプリングベースの基底
特異値分解 119861119889特異値分解 119861119894119899 119889
CEDEC 2012
サンプルの選び方について
bull 特異値分解で得られるのは「全ての入力サンプルを良く近似する基底」
bull サンプルで用いる光源のタイプ方向位置を予め分かっている範囲で厳選するのが好ましい
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
119871119889
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
bull 入力された行列をという 3 行列に分解ndash 数多くの数学ライブラリがサポート
特異値分解 (Singular Value Decomposition)
119872
SVD
119880 Σ 119881119879lowast lowastiquest
が異なれば当然も異なる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
左から重要度順に並んでいるため必要な数だけ用いればよい
CEDEC 2012
基底による直接光の近似
CEDEC 2012
最適な基底
bull 最適な基底は同じシーンでも場合によって異なるndash それぞれに特化した基底のほうが良い結果を得ら
れる
サンプリングベースの基底を採用
CEDEC 2012
bull 様々な状況でライティングした結果を集め特異値分解を用いて基底を算出
サンプリングベースの基底
特異値分解 119861119889特異値分解 119861119894119899 119889
CEDEC 2012
サンプルの選び方について
bull 特異値分解で得られるのは「全ての入力サンプルを良く近似する基底」
bull サンプルで用いる光源のタイプ方向位置を予め分かっている範囲で厳選するのが好ましい
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
119871119889
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
bull 入力された行列をという 3 行列に分解ndash 数多くの数学ライブラリがサポート
特異値分解 (Singular Value Decomposition)
119872
SVD
119880 Σ 119881119879lowast lowastiquest
が異なれば当然も異なる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
左から重要度順に並んでいるため必要な数だけ用いればよい
CEDEC 2012
基底による直接光の近似
CEDEC 2012
bull 様々な状況でライティングした結果を集め特異値分解を用いて基底を算出
サンプリングベースの基底
特異値分解 119861119889特異値分解 119861119894119899 119889
CEDEC 2012
サンプルの選び方について
bull 特異値分解で得られるのは「全ての入力サンプルを良く近似する基底」
bull サンプルで用いる光源のタイプ方向位置を予め分かっている範囲で厳選するのが好ましい
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
119871119889
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
bull 入力された行列をという 3 行列に分解ndash 数多くの数学ライブラリがサポート
特異値分解 (Singular Value Decomposition)
119872
SVD
119880 Σ 119881119879lowast lowastiquest
が異なれば当然も異なる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
左から重要度順に並んでいるため必要な数だけ用いればよい
CEDEC 2012
基底による直接光の近似
CEDEC 2012
サンプルの選び方について
bull 特異値分解で得られるのは「全ての入力サンプルを良く近似する基底」
bull サンプルで用いる光源のタイプ方向位置を予め分かっている範囲で厳選するのが好ましい
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
119871119889
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
bull 入力された行列をという 3 行列に分解ndash 数多くの数学ライブラリがサポート
特異値分解 (Singular Value Decomposition)
119872
SVD
119880 Σ 119881119879lowast lowastiquest
が異なれば当然も異なる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
左から重要度順に並んでいるため必要な数だけ用いればよい
CEDEC 2012
基底による直接光の近似
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
119871119889
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
bull 入力された行列をという 3 行列に分解ndash 数多くの数学ライブラリがサポート
特異値分解 (Singular Value Decomposition)
119872
SVD
119880 Σ 119881119879lowast lowastiquest
が異なれば当然も異なる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
左から重要度順に並んでいるため必要な数だけ用いればよい
CEDEC 2012
基底による直接光の近似
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
119871119889
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
bull 入力された行列をという 3 行列に分解ndash 数多くの数学ライブラリがサポート
特異値分解 (Singular Value Decomposition)
119872
SVD
119880 Σ 119881119879lowast lowastiquest
が異なれば当然も異なる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
左から重要度順に並んでいるため必要な数だけ用いればよい
CEDEC 2012
基底による直接光の近似
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
CEDEC 2012
119871119889
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
bull 入力された行列をという 3 行列に分解ndash 数多くの数学ライブラリがサポート
特異値分解 (Singular Value Decomposition)
119872
SVD
119880 Σ 119881119879lowast lowastiquest
が異なれば当然も異なる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
左から重要度順に並んでいるため必要な数だけ用いればよい
CEDEC 2012
基底による直接光の近似
CEDEC 2012
119871119889
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
bull 入力された行列をという 3 行列に分解ndash 数多くの数学ライブラリがサポート
特異値分解 (Singular Value Decomposition)
119872
SVD
119880 Σ 119881119879lowast lowastiquest
が異なれば当然も異なる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
左から重要度順に並んでいるため必要な数だけ用いればよい
CEDEC 2012
基底による直接光の近似
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
bull 入力された行列をという 3 行列に分解ndash 数多くの数学ライブラリがサポート
特異値分解 (Singular Value Decomposition)
119872
SVD
119880 Σ 119881119879lowast lowastiquest
が異なれば当然も異なる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
左から重要度順に並んでいるため必要な数だけ用いればよい
CEDEC 2012
基底による直接光の近似
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
bull 入力された行列をという 3 行列に分解ndash 数多くの数学ライブラリがサポート
特異値分解 (Singular Value Decomposition)
119872
SVD
119880 Σ 119881119879lowast lowastiquest
が異なれば当然も異なる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
左から重要度順に並んでいるため必要な数だけ用いればよい
CEDEC 2012
基底による直接光の近似
CEDEC 2012
サンプリング行列
bull 特異値分解を施すために各サンプルの頂点の入射光を列に並べた行列を作成
119871119889
119871119894119899119889
CEDEC 2012
bull 入力された行列をという 3 行列に分解ndash 数多くの数学ライブラリがサポート
特異値分解 (Singular Value Decomposition)
119872
SVD
119880 Σ 119881119879lowast lowastiquest
が異なれば当然も異なる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
左から重要度順に並んでいるため必要な数だけ用いればよい
CEDEC 2012
基底による直接光の近似
CEDEC 2012
bull 入力された行列をという 3 行列に分解ndash 数多くの数学ライブラリがサポート
特異値分解 (Singular Value Decomposition)
119872
SVD
119880 Σ 119881119879lowast lowastiquest
が異なれば当然も異なる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
左から重要度順に並んでいるため必要な数だけ用いればよい
CEDEC 2012
基底による直接光の近似
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
左から重要度順に並んでいるため必要な数だけ用いればよい
CEDEC 2012
基底による直接光の近似
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
左から重要度順に並んでいるため必要な数だけ用いればよい
CEDEC 2012
基底による直接光の近似
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
左から重要度順に並んでいるため必要な数だけ用いればよい
CEDEC 2012
基底による直接光の近似
CEDEC 2012
特異値分解 (Singular Value Decomposition)
bull に特異値分解を適用すると行列がとなる
左から重要度順に並んでいるため必要な数だけ用いればよい
CEDEC 2012
基底による直接光の近似
CEDEC 2012
基底による直接光の近似
CEDEC 2012
bull 優先してサンプリングした方の近似精度が高いbull 近似したいのは間接光なので間接光優先が好まし
い
アプローチの比較
直接光の近似精度 間接光の近似精度直接光優先
間接光優先
ハイブリッド
論文ではもう一歩進んだハイブリッドなアプローチを採用
CEDEC 2012
ハイブリッド手法の計算手順
119861119889=119880119889 Σ119889119881119898
①
②
④
直接光優先アプローチ
①で求めた基底を元に間接光サンプルを計算
間接光優先アプローチを利用してを算出
からを計算
119871119894119899119889=119865119880119889 Σ119889
③
CEDEC 2012
係数の数の比較
bull 直接光優先 bull ハイブリッド
係数の数
4係数の数
32
直接光 + 間接光 直接光 + 間接光間接光のみ 間接光のみ
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説
1 最適な基底の計算方法 2 係数の計算方法
- ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
ランタイムの計算処理
CEDEC 2012
係数の計算方法
bull ランタイムで必要な計算は
ここで
bull が必要だがハイブリッド手法の場合
119897119894119899119889=119861119894119899119889119960 119960120783 +119960120784 +119960120785≑
119960=119861119889minus1 119897119889
CEDEC 2012
ランタイムの計算処理
bull ここで k は使用する係数の数ndash 自分たちのデモではndash 頂点数に比べ非常に少ないrarr高速
119861119889minus1119861119894119899 119889 119897119889119897119894119899 119889iquest lowast lowast
iquest
119948
119948
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
ショートデモ
CEDEC 2012
Step1 静的オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 - 手法概要の説明 - データ更新時における高速化の解説 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 静的オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 - 手法概要の説明 - データ更新時における高速化の解説 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Light Probe
bull 背景以外のオブジェクトには Light Probe を用いる
CEDEC 2012
Light Probe
bull Light Probe とはndash 全方位の入射光を保持する仮想的な球ndash 今回は球面調和関数 (SH) を使用
CEDEC 2012
Light Probe によるライティング
bull Light Probe を離散的に配置ndash シェーダで近傍の Light Probe の値を補間して
間接光の表現が可能
CEDEC 2012
Light Probe によるライティング
bull 時間の都合上詳細は割愛詳しくは下記書籍をご参照下さいndash Chapter8 「 KILLZONE2」 Light Probe自体の解説ndash Chapter9 「バイオハザード 5」 Light Probe によるラ
イティング
西川善司著「 3D ゲームファンのための
グラフィックス講座」
ここまではあくまで既存の手法の話
CEDEC 2012
Step1 静的オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 - 手法概要の説明 - データ更新時における高速化の解説 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Light Probe の計算
bull 通常 Light Probe は前計算した後更新しないndash Light Probe の計算は負荷が高い
今回は動的に Light Probe を更新する必要がある
CEDEC 2012
動的な Light Probe
bull 今回シーンのライティング結果は既知の状態の組み合わせに分解される
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
times120778 times120778 times120778times120778
CEDEC 2012
動的な Light Probe
bull 間接光と同様にそれぞれに対応した Light Probe を計算しておけば足し合わせで高速に計算可能
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
CEDEC 2012
Step1 背景オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
デモ
CEDEC 2012
デモ詳細
bull 背景オブジェクトndash 頂点数 10800 ( 頂点 )ndash基底の係数 22 (係数 )
bull Light Probendash Probe総数 500 (個 )ndash基底の係数 12 (係数 )ndash球面調和関数の係数 9 (係数 )
CEDEC 2012
パフォーマンス
bull 解像度は 1400800 で測定bull 実装には Compute Shader を使用bull 前計算約 45 分
ndash 2520 光源サンプルndash 20回反射まで考慮ndash 最適化で 10倍以上の高速化の余地あり
影あり 影なし 影なし GIなし
Geforce GTX 680 500 fps 800 fps 1500 fps
Geforce GTX 560 360 fps 440 fps 750 fps
Radeon 6630 M 80 fps 120 fps 280 fps
実装の Tips は Appendix に記載
CEDEC 2012
まとめ
bull 良い点ndash 非常に高速計算負荷が一定ndash 反射回数が無制限(行列 F に含められる )ndash 高速な Light Probe 計算ndash 様々な拡張
bull 悪い点ndash Light の位置方向を含めた前計算ndash 動的すぎるシーンは不可 (rarrDelta Radiance
Transfer)ndash 頂点カラーを念頭に置いたメッシュ分割頂点配置
ndash 複雑すぎない形状
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ
ndash 間接光計算手法の解説 (論文 4 節)ndash シーン分割による高速化の解説 (論文 5 節)
3 まとめ
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
問題提起 ( 14 )
bull 対象とする問題 シーンが複雑になった場合の計算負荷の増大
シンプルなシーン
より複雑なシーン
CEDEC 2012
問題提起 ( 24 )
bull 複雑なシーンでは1 メッシュ頂点数が増加2 必要な係数の数の増大 rArr 計算量の増大}
CEDEC 2012
問題提起 ( 34 )
bull 解決策シーンを複数の小領域に分割
rArr 適切に小領域を設定すればシーンの複雑さを 抑える事が可能bull 小領域の分割方法はユーザーが決定
CEDEC 2012
問題提起 ( 44 )
bull 各小領域内の間接光は前述の方法で計算可能bull 小領域間の光の伝播を別途考慮する必要がある
小領域間の光の伝播の高速な計算方法を解説
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
キーアイディア ( 16 )
bull 小領域間の光の伝播を個別に計算
CEDEC 2012
キーアイディア ( 26 )
bull 例として右rArr(中央)rArr左へ伝播する光を考える
キーアイディアでは多重反射を考慮しない光の伝播を考える
CEDEC 2012
キーアイディア ( 36 )
bull 小領域間の光の伝播は頂点間の影響に帰着
CEDEC 2012
キーアイディア ( 46 )
bull 小領域間の光の伝播行列 P を前計算119820 伝播先の小領域の頂点数119821 伝播元の小領域の頂点数
光の伝播行列P
119820行119821列[iquest ]P
CEDEC 2012
キーアイディア ( 56 )
bull 光の伝播行列 P を利用して光の伝播を高速に計算
[ 119956120783⋮119956119925]
119852 伝播元の小領域の頂点の色119941 伝播先の小領域の頂点の色
119820行119821列[iquest ][ 119941120783
⋮119941119924
] timesiquest P119820 伝播先の小領域の頂点数119821 伝播元の小領域の頂点数
CEDEC 2012
キーアイディア ( 66 )
bull 光の伝播を係数からの変換に修正
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
bull ライトフィールドという概念を導入
光の伝播行列の計算 ( 17 )
ライトフィールドは任意の点群を通過する
光を体系的に記録するためのデータ構造
境界面に注目
CEDEC 2012
光の伝播行列の計算 ( 27 )
bull 光の伝播行列 P を三要素に分割1 光の出射行列 Pout2 光の通過行列 Pthrough3 光の入射行列 Pin
右の小領域 中央の小領域 左の小領域P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 37 )
bull 光の出射行列 Poutndash 小領域 rArr ライトフィールド
119819120783 出射ライトフィールドのサンプル数119821 伝播元の小領域の頂点数
iquest119819120783行iquest
⋮⋮
⋮4 5 9
6
8
CEDEC 2012
光の伝播行列の計算 ( 47 )
bull 光の通過行列 Pthroughndash ライトフィールド rArr ライトフィールド
119819120784 出射ライトフィールドのサンプル数119819120783入射ライトフィールドのサンプル数
iquest119819120784行iquest
⋮⋮
⋮5 8
2
5 ⋯
CEDEC 2012
光の伝播行列の計算 ( 57 )
bull 光の入射行列 Pinndash ライトフィールド rArr 小領域
119820伝播先の小領域の頂点数119819120784 入射ライトフィールドのサンプル数
iquest119820行iquest
⋮
2 5 6
1
5⋮
Pin 計算時にヘミキューブ法などを用いて立体角を考慮
CEDEC 2012
光の伝播行列の計算 ( 67 )
bull 全ての小領域間の光の伝播は三種類の行列の組み合わせで計算可能
P = Pin times Pout上記例ではは再利用不可能だがは共通
P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 77 )
bull 光の伝播の計算のまとめ
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
多重反射への拡張
bull 間接光計算を反復実行
⋮
間接光計算
間接光計算
間接光計算
直接光
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
モジュールの導入 ( 13 )
bull モジュール( = 再利用可能な汎用小領域)の導入
bull 上記のようなシーンは「回転」も考慮すれば5種の立方体モジュールの組合わせで構成可能
3 方向壁 2 方向壁 2 方向壁 1 方向壁 0 方向壁
CEDEC 2012
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
モジュールの導入 ( 23 )
通過行列は(直進 右折 左折)の三種類
ライトフィールドデータを一つの行列に格納
特異値分解
データ量の削減及び計算の高速化
詳しくは論文 51 節参照
CEDEC 2012
モジュールの導入 ( 33 )
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
メリットは多いがシーンの自由度とのトレードオフ
モジュールの使い所は要検討
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
デモ
CEDEC 2012
考察
bull ライトフィールドは本当に必要か
bull 小領域間の位置関係が固定ならば(恐らく)不要
rArr レイトレーシング法で伝播行列 P を直接計算 した方が効率的bull 小領域を動的に入れ替える場合は必要
P = Pin times Pthrough times Pout
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ 3 まとめ
CEDEC 2012
発表内容のまとめ
bull Modular Radiance Transfer 法を解説ndash 長所
bull とにかく高速bull 多重反射を含んだ間接光が扱えるbull 技術のコア部分は汎用的で応用の余地が高い
ndash 短所bull 前計算を含め使い方に癖がある ( 実験を通してノウハウを蓄積すれば余り問題にならない )
ゲームへの応用は十分可能
CEDEC 2012
本スライド内で引用した論文の図の著作権は全て論文著者に帰属します
その他の図スライド本体挿絵等の著作権は
シリコンスタジオ株式会社に帰属します
著作権について
CEDEC 2012
最後に
御清聴ありがとうございました
httpwwwsiliconstudiocojppresentationsindexhtml
スライドデモは弊社 HP で近日公開
制作協力 河野 駿介 辻 俊晶 古家 亙 後藤 晋也 京田 文人 三谷 健一郎
問い合わせ先 田村 nk-tamurasiliconstudiocojp 安田 re-yasudasiliconstudiocojp
シリコンスタジオは常に人材を求めています
ご興味ある方は弊社 HP をご覧ください
CEDEC 2012
Appendix A 実装について
bull 実装自体は様々なアプローチが可能bull ここではデモの実装でのアプローチを紹介
CEDEC 2012
Appendix A 前計算について
bull F の計算ndash メッシュの全頂点からキューブマップにレンダリングndash ピクセルには頂点 ID とウェイトを出力
bull 直接光サンプルの計算ndash 頂点カラーを Stream Out でバッファに出力ndash 頂点シャドウあり
bull Light Probe の計算ndash 各 Probe の中心からキューブマップにレンダリングndash の対応する基底ベクトル同士を足し合わせた
ベクトル ( 直接光 + 間接光 ) を頂点カラーとして使用
CEDEC 2012
Appendix A ランタイム
bull 直接光の結果を Stream Out でバッファに出力ndash 頂点シャドウありndash カラーバッファへの書き込み OFFndash 複数オブジェクトの場合は単一バッファにオフ
セットを変えて出力
119897119889
CEDEC 2012
Appendix A ランタイム 係数
bull Compute Shader で を計算ndash は極めて横長の行列 ( 行 ~100程度 列 頂点数 )ndash は GPU が少々苦手な処理ではあるものの
タイリングベースの実装で高速に処理可能
iquest
119897119889119960 lowast119861119889minus1
CEDEC 2012
Appendix A ランタイム
bull Compute Shader で を計算ndash は極めて縦長 ( の転置と同サイズ ) なので素直に実装可能
iquest
119861119894119899119889 119960119897119894119899 119889 lowast
CEDEC 2012
Appendix A ランタイム 最終パス
bull を頂点カラーとして入力としてピクセル単位の直接光のシェーディングと合成して最終結果を得る
iquest +
CEDEC 2012
Appendix A ランタイム Light Probe(1)
bull Compute Shader でを計算ndash は縦長 ( 行 頂点数 timesSH係数の数 列 ~100程度 )
iquest
119880119907119900119897 119960119897119907119900119897 lowast
CEDEC 2012
Appendix A ランタイム Light Probe(2)
bull Probe を用いて Dynamic Objects をライティングndash 各 Light Probe が SH を 9係数で保持するため
3D Texture ではなく Structured-Buffer で保持ndash Vertex Shader 内で自力 Tri-Linear 補間
iquest +
CEDEC 2012
Appendix B 後半の補足
bull 大規模なシーンでの光の伝播bull 小領域間の光の伝播は個別に総当たりで計算
rArr小領域間の光の伝播は距離によって大きく減衰
実際は大規模シーンでも概ね二つ隣の小領域まで考慮すれば十分
CEDEC 2012
Appendix B 後半の補足
bull 小領域の境界
bull 小領域の境界部分が不連続になる rArr 小領域の境界部分は補間の必要がある
CEDEC 2012
bull スライドと論文で表記が違う記号があります
Appendix C 記号の表記
スライドでの表記 論文での表記
b
- Slide 1
- 発表の流れ
- 発表の流れ (2)
- 発表の概要
- 解説技術の特徴
- 注意点
- 発表の流れ (3)
- 発表の流れ (4)
- 間接光の概要
- 間接光の概要 (2)
- 解説手法の計算概要
- 間接光計算の解説手順
- 間接光計算の解説手順 (2)
- 間接光計算の解説手順 (3)
- 間接光計算の解説手順 (4)
- 間接光計算の解説手順 (5)
- 間接光計算の解説手順 (6)
- 間接光計算の考え方
- 間接光計算の考え方 (2)
- 間接光計算の考え方 (3)
- 間接光計算の考え方 (4)
- 間接光計算の考え方 (5)
- 間接光計算の解説手順 (7)
- 問題提起
- 間接光計算の解説手順 (8)
- キーアイディア
- キーアイディア (2)
- キーアイディア (3)
- キーアイディア (4)
- キーアイディア (5)
- キーアイディア (6)
- 間接光計算の解説手順 (9)
- 間接光計算の解説手順 (10)
- を求める
- を求める (2)
- を求める (3)
- 最適な基底
- サンプリングベースの基底
- サンプルの選び方について
- サンプリング行列
- サンプリング行列 (2)
- サンプリング行列 (3)
- サンプリング行列 (4)
- サンプリング行列 (5)
- サンプリング行列 (6)
- サンプリング行列 (7)
- 特異値分解(Singular Value Decomposition)
- 特異値分解(Singular Value Decomposition) (2)
- 特異値分解(Singular Value Decomposition) (3)
- 特異値分解(Singular Value Decomposition) (4)
- 特異値分解(Singular Value Decomposition) (5)
- 基底による直接光の近似
- アプローチの比較
- ハイブリッド手法の計算手順
- 係数の数の比較
- ランタイムの計算処理
- 係数の計算方法
- ランタイムの計算処理 (2)
- 間接光計算の解説手順 (11)
- ショートデモ
- 間接光計算の解説手順 (12)
- 間接光計算の解説手順 (13)
- Light Probe
- Light Probe (2)
- Light Probeによるライティング
- Light Probeによるライティング (2)
- 間接光計算の解説手順 (14)
- Light Probeの計算
- 動的なLight Probe
- 動的なLight Probe (2)
- 間接光計算の解説手順 (15)
- デモ
- デモ詳細
- パフォーマンス
- まとめ
- 発表の流れ (5)
- シーン分割による高速化の解説手順
- シーン分割による高速化の解説手順 (2)
- 問題提起 (14)
- 問題提起 (24)
- 問題提起 (34)
- 問題提起 (44)
- シーン分割による高速化の解説手順 (3)
- シーン分割による高速化の解説手順 (4)
- キーアイディア (16)
- キーアイディア (26)
- キーアイディア (36)
- キーアイディア (46)
- キーアイディア (56)
- キーアイディア (66)
- シーン分割による高速化の解説手順 (5)
- 光の伝播行列の計算 (17)
- 光の伝播行列の計算 (27)
- 光の伝播行列の計算 (37)
- 光の伝播行列の計算 (47)
- 光の伝播行列の計算 (57)
- 光の伝播行列の計算 (67)
- 光の伝播行列の計算 (77)
- シーン分割による高速化の解説手順 (6)
- シーン分割による高速化の解説手順 (7)
- 多重反射への拡張
- シーン分割による高速化の解説手順 (8)
- モジュールの導入 (13)
- モジュールの導入 (23)
- モジュールの導入 (33)
- シーン分割による高速化の解説手順 (9)
- デモ (2)
- 考察
- 発表の流れ (6)
- 発表内容のまとめ
- 著作権について
- 最後に
- Appendix A 実装について
- Appendix A 前計算について
- Appendix A ランタイム
- Appendix A ランタイム 係数
- Appendix A ランタイム
- Appendix A ランタイム 最終パス
- Appendix A ランタイム Light Probe(1)
- Appendix A ランタイム Light Probe(2)
- Appendix B 後半の補足
- Appendix B 後半の補足 (2)
- Appendix C 記号の表記
-
CEDEC 2012
ハイブリッド手法の計算手順
119861119889=119880119889 Σ119889119881119898
①
②
④
直接光優先アプローチ
①で求めた基底を元に間接光サンプルを計算
間接光優先アプローチを利用してを算出
からを計算
119871119894119899119889=119865119880119889 Σ119889
③
CEDEC 2012
係数の数の比較
bull 直接光優先 bull ハイブリッド
係数の数
4係数の数
32
直接光 + 間接光 直接光 + 間接光間接光のみ 間接光のみ
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説
1 最適な基底の計算方法 2 係数の計算方法
- ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
ランタイムの計算処理
CEDEC 2012
係数の計算方法
bull ランタイムで必要な計算は
ここで
bull が必要だがハイブリッド手法の場合
119897119894119899119889=119861119894119899119889119960 119960120783 +119960120784 +119960120785≑
119960=119861119889minus1 119897119889
CEDEC 2012
ランタイムの計算処理
bull ここで k は使用する係数の数ndash 自分たちのデモではndash 頂点数に比べ非常に少ないrarr高速
119861119889minus1119861119894119899 119889 119897119889119897119894119899 119889iquest lowast lowast
iquest
119948
119948
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
ショートデモ
CEDEC 2012
Step1 静的オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 - 手法概要の説明 - データ更新時における高速化の解説 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 静的オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 - 手法概要の説明 - データ更新時における高速化の解説 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Light Probe
bull 背景以外のオブジェクトには Light Probe を用いる
CEDEC 2012
Light Probe
bull Light Probe とはndash 全方位の入射光を保持する仮想的な球ndash 今回は球面調和関数 (SH) を使用
CEDEC 2012
Light Probe によるライティング
bull Light Probe を離散的に配置ndash シェーダで近傍の Light Probe の値を補間して
間接光の表現が可能
CEDEC 2012
Light Probe によるライティング
bull 時間の都合上詳細は割愛詳しくは下記書籍をご参照下さいndash Chapter8 「 KILLZONE2」 Light Probe自体の解説ndash Chapter9 「バイオハザード 5」 Light Probe によるラ
イティング
西川善司著「 3D ゲームファンのための
グラフィックス講座」
ここまではあくまで既存の手法の話
CEDEC 2012
Step1 静的オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 - 手法概要の説明 - データ更新時における高速化の解説 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Light Probe の計算
bull 通常 Light Probe は前計算した後更新しないndash Light Probe の計算は負荷が高い
今回は動的に Light Probe を更新する必要がある
CEDEC 2012
動的な Light Probe
bull 今回シーンのライティング結果は既知の状態の組み合わせに分解される
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
times120778 times120778 times120778times120778
CEDEC 2012
動的な Light Probe
bull 間接光と同様にそれぞれに対応した Light Probe を計算しておけば足し合わせで高速に計算可能
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
CEDEC 2012
Step1 背景オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
デモ
CEDEC 2012
デモ詳細
bull 背景オブジェクトndash 頂点数 10800 ( 頂点 )ndash基底の係数 22 (係数 )
bull Light Probendash Probe総数 500 (個 )ndash基底の係数 12 (係数 )ndash球面調和関数の係数 9 (係数 )
CEDEC 2012
パフォーマンス
bull 解像度は 1400800 で測定bull 実装には Compute Shader を使用bull 前計算約 45 分
ndash 2520 光源サンプルndash 20回反射まで考慮ndash 最適化で 10倍以上の高速化の余地あり
影あり 影なし 影なし GIなし
Geforce GTX 680 500 fps 800 fps 1500 fps
Geforce GTX 560 360 fps 440 fps 750 fps
Radeon 6630 M 80 fps 120 fps 280 fps
実装の Tips は Appendix に記載
CEDEC 2012
まとめ
bull 良い点ndash 非常に高速計算負荷が一定ndash 反射回数が無制限(行列 F に含められる )ndash 高速な Light Probe 計算ndash 様々な拡張
bull 悪い点ndash Light の位置方向を含めた前計算ndash 動的すぎるシーンは不可 (rarrDelta Radiance
Transfer)ndash 頂点カラーを念頭に置いたメッシュ分割頂点配置
ndash 複雑すぎない形状
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ
ndash 間接光計算手法の解説 (論文 4 節)ndash シーン分割による高速化の解説 (論文 5 節)
3 まとめ
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
問題提起 ( 14 )
bull 対象とする問題 シーンが複雑になった場合の計算負荷の増大
シンプルなシーン
より複雑なシーン
CEDEC 2012
問題提起 ( 24 )
bull 複雑なシーンでは1 メッシュ頂点数が増加2 必要な係数の数の増大 rArr 計算量の増大}
CEDEC 2012
問題提起 ( 34 )
bull 解決策シーンを複数の小領域に分割
rArr 適切に小領域を設定すればシーンの複雑さを 抑える事が可能bull 小領域の分割方法はユーザーが決定
CEDEC 2012
問題提起 ( 44 )
bull 各小領域内の間接光は前述の方法で計算可能bull 小領域間の光の伝播を別途考慮する必要がある
小領域間の光の伝播の高速な計算方法を解説
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
キーアイディア ( 16 )
bull 小領域間の光の伝播を個別に計算
CEDEC 2012
キーアイディア ( 26 )
bull 例として右rArr(中央)rArr左へ伝播する光を考える
キーアイディアでは多重反射を考慮しない光の伝播を考える
CEDEC 2012
キーアイディア ( 36 )
bull 小領域間の光の伝播は頂点間の影響に帰着
CEDEC 2012
キーアイディア ( 46 )
bull 小領域間の光の伝播行列 P を前計算119820 伝播先の小領域の頂点数119821 伝播元の小領域の頂点数
光の伝播行列P
119820行119821列[iquest ]P
CEDEC 2012
キーアイディア ( 56 )
bull 光の伝播行列 P を利用して光の伝播を高速に計算
[ 119956120783⋮119956119925]
119852 伝播元の小領域の頂点の色119941 伝播先の小領域の頂点の色
119820行119821列[iquest ][ 119941120783
⋮119941119924
] timesiquest P119820 伝播先の小領域の頂点数119821 伝播元の小領域の頂点数
CEDEC 2012
キーアイディア ( 66 )
bull 光の伝播を係数からの変換に修正
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
bull ライトフィールドという概念を導入
光の伝播行列の計算 ( 17 )
ライトフィールドは任意の点群を通過する
光を体系的に記録するためのデータ構造
境界面に注目
CEDEC 2012
光の伝播行列の計算 ( 27 )
bull 光の伝播行列 P を三要素に分割1 光の出射行列 Pout2 光の通過行列 Pthrough3 光の入射行列 Pin
右の小領域 中央の小領域 左の小領域P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 37 )
bull 光の出射行列 Poutndash 小領域 rArr ライトフィールド
119819120783 出射ライトフィールドのサンプル数119821 伝播元の小領域の頂点数
iquest119819120783行iquest
⋮⋮
⋮4 5 9
6
8
CEDEC 2012
光の伝播行列の計算 ( 47 )
bull 光の通過行列 Pthroughndash ライトフィールド rArr ライトフィールド
119819120784 出射ライトフィールドのサンプル数119819120783入射ライトフィールドのサンプル数
iquest119819120784行iquest
⋮⋮
⋮5 8
2
5 ⋯
CEDEC 2012
光の伝播行列の計算 ( 57 )
bull 光の入射行列 Pinndash ライトフィールド rArr 小領域
119820伝播先の小領域の頂点数119819120784 入射ライトフィールドのサンプル数
iquest119820行iquest
⋮
2 5 6
1
5⋮
Pin 計算時にヘミキューブ法などを用いて立体角を考慮
CEDEC 2012
光の伝播行列の計算 ( 67 )
bull 全ての小領域間の光の伝播は三種類の行列の組み合わせで計算可能
P = Pin times Pout上記例ではは再利用不可能だがは共通
P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 77 )
bull 光の伝播の計算のまとめ
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
多重反射への拡張
bull 間接光計算を反復実行
⋮
間接光計算
間接光計算
間接光計算
直接光
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
モジュールの導入 ( 13 )
bull モジュール( = 再利用可能な汎用小領域)の導入
bull 上記のようなシーンは「回転」も考慮すれば5種の立方体モジュールの組合わせで構成可能
3 方向壁 2 方向壁 2 方向壁 1 方向壁 0 方向壁
CEDEC 2012
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
モジュールの導入 ( 23 )
通過行列は(直進 右折 左折)の三種類
ライトフィールドデータを一つの行列に格納
特異値分解
データ量の削減及び計算の高速化
詳しくは論文 51 節参照
CEDEC 2012
モジュールの導入 ( 33 )
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
メリットは多いがシーンの自由度とのトレードオフ
モジュールの使い所は要検討
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
デモ
CEDEC 2012
考察
bull ライトフィールドは本当に必要か
bull 小領域間の位置関係が固定ならば(恐らく)不要
rArr レイトレーシング法で伝播行列 P を直接計算 した方が効率的bull 小領域を動的に入れ替える場合は必要
P = Pin times Pthrough times Pout
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ 3 まとめ
CEDEC 2012
発表内容のまとめ
bull Modular Radiance Transfer 法を解説ndash 長所
bull とにかく高速bull 多重反射を含んだ間接光が扱えるbull 技術のコア部分は汎用的で応用の余地が高い
ndash 短所bull 前計算を含め使い方に癖がある ( 実験を通してノウハウを蓄積すれば余り問題にならない )
ゲームへの応用は十分可能
CEDEC 2012
本スライド内で引用した論文の図の著作権は全て論文著者に帰属します
その他の図スライド本体挿絵等の著作権は
シリコンスタジオ株式会社に帰属します
著作権について
CEDEC 2012
最後に
御清聴ありがとうございました
httpwwwsiliconstudiocojppresentationsindexhtml
スライドデモは弊社 HP で近日公開
制作協力 河野 駿介 辻 俊晶 古家 亙 後藤 晋也 京田 文人 三谷 健一郎
問い合わせ先 田村 nk-tamurasiliconstudiocojp 安田 re-yasudasiliconstudiocojp
シリコンスタジオは常に人材を求めています
ご興味ある方は弊社 HP をご覧ください
CEDEC 2012
Appendix A 実装について
bull 実装自体は様々なアプローチが可能bull ここではデモの実装でのアプローチを紹介
CEDEC 2012
Appendix A 前計算について
bull F の計算ndash メッシュの全頂点からキューブマップにレンダリングndash ピクセルには頂点 ID とウェイトを出力
bull 直接光サンプルの計算ndash 頂点カラーを Stream Out でバッファに出力ndash 頂点シャドウあり
bull Light Probe の計算ndash 各 Probe の中心からキューブマップにレンダリングndash の対応する基底ベクトル同士を足し合わせた
ベクトル ( 直接光 + 間接光 ) を頂点カラーとして使用
CEDEC 2012
Appendix A ランタイム
bull 直接光の結果を Stream Out でバッファに出力ndash 頂点シャドウありndash カラーバッファへの書き込み OFFndash 複数オブジェクトの場合は単一バッファにオフ
セットを変えて出力
119897119889
CEDEC 2012
Appendix A ランタイム 係数
bull Compute Shader で を計算ndash は極めて横長の行列 ( 行 ~100程度 列 頂点数 )ndash は GPU が少々苦手な処理ではあるものの
タイリングベースの実装で高速に処理可能
iquest
119897119889119960 lowast119861119889minus1
CEDEC 2012
Appendix A ランタイム
bull Compute Shader で を計算ndash は極めて縦長 ( の転置と同サイズ ) なので素直に実装可能
iquest
119861119894119899119889 119960119897119894119899 119889 lowast
CEDEC 2012
Appendix A ランタイム 最終パス
bull を頂点カラーとして入力としてピクセル単位の直接光のシェーディングと合成して最終結果を得る
iquest +
CEDEC 2012
Appendix A ランタイム Light Probe(1)
bull Compute Shader でを計算ndash は縦長 ( 行 頂点数 timesSH係数の数 列 ~100程度 )
iquest
119880119907119900119897 119960119897119907119900119897 lowast
CEDEC 2012
Appendix A ランタイム Light Probe(2)
bull Probe を用いて Dynamic Objects をライティングndash 各 Light Probe が SH を 9係数で保持するため
3D Texture ではなく Structured-Buffer で保持ndash Vertex Shader 内で自力 Tri-Linear 補間
iquest +
CEDEC 2012
Appendix B 後半の補足
bull 大規模なシーンでの光の伝播bull 小領域間の光の伝播は個別に総当たりで計算
rArr小領域間の光の伝播は距離によって大きく減衰
実際は大規模シーンでも概ね二つ隣の小領域まで考慮すれば十分
CEDEC 2012
Appendix B 後半の補足
bull 小領域の境界
bull 小領域の境界部分が不連続になる rArr 小領域の境界部分は補間の必要がある
CEDEC 2012
bull スライドと論文で表記が違う記号があります
Appendix C 記号の表記
スライドでの表記 論文での表記
b
- Slide 1
- 発表の流れ
- 発表の流れ (2)
- 発表の概要
- 解説技術の特徴
- 注意点
- 発表の流れ (3)
- 発表の流れ (4)
- 間接光の概要
- 間接光の概要 (2)
- 解説手法の計算概要
- 間接光計算の解説手順
- 間接光計算の解説手順 (2)
- 間接光計算の解説手順 (3)
- 間接光計算の解説手順 (4)
- 間接光計算の解説手順 (5)
- 間接光計算の解説手順 (6)
- 間接光計算の考え方
- 間接光計算の考え方 (2)
- 間接光計算の考え方 (3)
- 間接光計算の考え方 (4)
- 間接光計算の考え方 (5)
- 間接光計算の解説手順 (7)
- 問題提起
- 間接光計算の解説手順 (8)
- キーアイディア
- キーアイディア (2)
- キーアイディア (3)
- キーアイディア (4)
- キーアイディア (5)
- キーアイディア (6)
- 間接光計算の解説手順 (9)
- 間接光計算の解説手順 (10)
- を求める
- を求める (2)
- を求める (3)
- 最適な基底
- サンプリングベースの基底
- サンプルの選び方について
- サンプリング行列
- サンプリング行列 (2)
- サンプリング行列 (3)
- サンプリング行列 (4)
- サンプリング行列 (5)
- サンプリング行列 (6)
- サンプリング行列 (7)
- 特異値分解(Singular Value Decomposition)
- 特異値分解(Singular Value Decomposition) (2)
- 特異値分解(Singular Value Decomposition) (3)
- 特異値分解(Singular Value Decomposition) (4)
- 特異値分解(Singular Value Decomposition) (5)
- 基底による直接光の近似
- アプローチの比較
- ハイブリッド手法の計算手順
- 係数の数の比較
- ランタイムの計算処理
- 係数の計算方法
- ランタイムの計算処理 (2)
- 間接光計算の解説手順 (11)
- ショートデモ
- 間接光計算の解説手順 (12)
- 間接光計算の解説手順 (13)
- Light Probe
- Light Probe (2)
- Light Probeによるライティング
- Light Probeによるライティング (2)
- 間接光計算の解説手順 (14)
- Light Probeの計算
- 動的なLight Probe
- 動的なLight Probe (2)
- 間接光計算の解説手順 (15)
- デモ
- デモ詳細
- パフォーマンス
- まとめ
- 発表の流れ (5)
- シーン分割による高速化の解説手順
- シーン分割による高速化の解説手順 (2)
- 問題提起 (14)
- 問題提起 (24)
- 問題提起 (34)
- 問題提起 (44)
- シーン分割による高速化の解説手順 (3)
- シーン分割による高速化の解説手順 (4)
- キーアイディア (16)
- キーアイディア (26)
- キーアイディア (36)
- キーアイディア (46)
- キーアイディア (56)
- キーアイディア (66)
- シーン分割による高速化の解説手順 (5)
- 光の伝播行列の計算 (17)
- 光の伝播行列の計算 (27)
- 光の伝播行列の計算 (37)
- 光の伝播行列の計算 (47)
- 光の伝播行列の計算 (57)
- 光の伝播行列の計算 (67)
- 光の伝播行列の計算 (77)
- シーン分割による高速化の解説手順 (6)
- シーン分割による高速化の解説手順 (7)
- 多重反射への拡張
- シーン分割による高速化の解説手順 (8)
- モジュールの導入 (13)
- モジュールの導入 (23)
- モジュールの導入 (33)
- シーン分割による高速化の解説手順 (9)
- デモ (2)
- 考察
- 発表の流れ (6)
- 発表内容のまとめ
- 著作権について
- 最後に
- Appendix A 実装について
- Appendix A 前計算について
- Appendix A ランタイム
- Appendix A ランタイム 係数
- Appendix A ランタイム
- Appendix A ランタイム 最終パス
- Appendix A ランタイム Light Probe(1)
- Appendix A ランタイム Light Probe(2)
- Appendix B 後半の補足
- Appendix B 後半の補足 (2)
- Appendix C 記号の表記
-
CEDEC 2012
係数の数の比較
bull 直接光優先 bull ハイブリッド
係数の数
4係数の数
32
直接光 + 間接光 直接光 + 間接光間接光のみ 間接光のみ
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説
1 最適な基底の計算方法 2 係数の計算方法
- ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
ランタイムの計算処理
CEDEC 2012
係数の計算方法
bull ランタイムで必要な計算は
ここで
bull が必要だがハイブリッド手法の場合
119897119894119899119889=119861119894119899119889119960 119960120783 +119960120784 +119960120785≑
119960=119861119889minus1 119897119889
CEDEC 2012
ランタイムの計算処理
bull ここで k は使用する係数の数ndash 自分たちのデモではndash 頂点数に比べ非常に少ないrarr高速
119861119889minus1119861119894119899 119889 119897119889119897119894119899 119889iquest lowast lowast
iquest
119948
119948
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
ショートデモ
CEDEC 2012
Step1 静的オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 - 手法概要の説明 - データ更新時における高速化の解説 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 静的オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 - 手法概要の説明 - データ更新時における高速化の解説 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Light Probe
bull 背景以外のオブジェクトには Light Probe を用いる
CEDEC 2012
Light Probe
bull Light Probe とはndash 全方位の入射光を保持する仮想的な球ndash 今回は球面調和関数 (SH) を使用
CEDEC 2012
Light Probe によるライティング
bull Light Probe を離散的に配置ndash シェーダで近傍の Light Probe の値を補間して
間接光の表現が可能
CEDEC 2012
Light Probe によるライティング
bull 時間の都合上詳細は割愛詳しくは下記書籍をご参照下さいndash Chapter8 「 KILLZONE2」 Light Probe自体の解説ndash Chapter9 「バイオハザード 5」 Light Probe によるラ
イティング
西川善司著「 3D ゲームファンのための
グラフィックス講座」
ここまではあくまで既存の手法の話
CEDEC 2012
Step1 静的オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 - 手法概要の説明 - データ更新時における高速化の解説 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Light Probe の計算
bull 通常 Light Probe は前計算した後更新しないndash Light Probe の計算は負荷が高い
今回は動的に Light Probe を更新する必要がある
CEDEC 2012
動的な Light Probe
bull 今回シーンのライティング結果は既知の状態の組み合わせに分解される
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
times120778 times120778 times120778times120778
CEDEC 2012
動的な Light Probe
bull 間接光と同様にそれぞれに対応した Light Probe を計算しておけば足し合わせで高速に計算可能
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
CEDEC 2012
Step1 背景オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
デモ
CEDEC 2012
デモ詳細
bull 背景オブジェクトndash 頂点数 10800 ( 頂点 )ndash基底の係数 22 (係数 )
bull Light Probendash Probe総数 500 (個 )ndash基底の係数 12 (係数 )ndash球面調和関数の係数 9 (係数 )
CEDEC 2012
パフォーマンス
bull 解像度は 1400800 で測定bull 実装には Compute Shader を使用bull 前計算約 45 分
ndash 2520 光源サンプルndash 20回反射まで考慮ndash 最適化で 10倍以上の高速化の余地あり
影あり 影なし 影なし GIなし
Geforce GTX 680 500 fps 800 fps 1500 fps
Geforce GTX 560 360 fps 440 fps 750 fps
Radeon 6630 M 80 fps 120 fps 280 fps
実装の Tips は Appendix に記載
CEDEC 2012
まとめ
bull 良い点ndash 非常に高速計算負荷が一定ndash 反射回数が無制限(行列 F に含められる )ndash 高速な Light Probe 計算ndash 様々な拡張
bull 悪い点ndash Light の位置方向を含めた前計算ndash 動的すぎるシーンは不可 (rarrDelta Radiance
Transfer)ndash 頂点カラーを念頭に置いたメッシュ分割頂点配置
ndash 複雑すぎない形状
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ
ndash 間接光計算手法の解説 (論文 4 節)ndash シーン分割による高速化の解説 (論文 5 節)
3 まとめ
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
問題提起 ( 14 )
bull 対象とする問題 シーンが複雑になった場合の計算負荷の増大
シンプルなシーン
より複雑なシーン
CEDEC 2012
問題提起 ( 24 )
bull 複雑なシーンでは1 メッシュ頂点数が増加2 必要な係数の数の増大 rArr 計算量の増大}
CEDEC 2012
問題提起 ( 34 )
bull 解決策シーンを複数の小領域に分割
rArr 適切に小領域を設定すればシーンの複雑さを 抑える事が可能bull 小領域の分割方法はユーザーが決定
CEDEC 2012
問題提起 ( 44 )
bull 各小領域内の間接光は前述の方法で計算可能bull 小領域間の光の伝播を別途考慮する必要がある
小領域間の光の伝播の高速な計算方法を解説
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
キーアイディア ( 16 )
bull 小領域間の光の伝播を個別に計算
CEDEC 2012
キーアイディア ( 26 )
bull 例として右rArr(中央)rArr左へ伝播する光を考える
キーアイディアでは多重反射を考慮しない光の伝播を考える
CEDEC 2012
キーアイディア ( 36 )
bull 小領域間の光の伝播は頂点間の影響に帰着
CEDEC 2012
キーアイディア ( 46 )
bull 小領域間の光の伝播行列 P を前計算119820 伝播先の小領域の頂点数119821 伝播元の小領域の頂点数
光の伝播行列P
119820行119821列[iquest ]P
CEDEC 2012
キーアイディア ( 56 )
bull 光の伝播行列 P を利用して光の伝播を高速に計算
[ 119956120783⋮119956119925]
119852 伝播元の小領域の頂点の色119941 伝播先の小領域の頂点の色
119820行119821列[iquest ][ 119941120783
⋮119941119924
] timesiquest P119820 伝播先の小領域の頂点数119821 伝播元の小領域の頂点数
CEDEC 2012
キーアイディア ( 66 )
bull 光の伝播を係数からの変換に修正
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
bull ライトフィールドという概念を導入
光の伝播行列の計算 ( 17 )
ライトフィールドは任意の点群を通過する
光を体系的に記録するためのデータ構造
境界面に注目
CEDEC 2012
光の伝播行列の計算 ( 27 )
bull 光の伝播行列 P を三要素に分割1 光の出射行列 Pout2 光の通過行列 Pthrough3 光の入射行列 Pin
右の小領域 中央の小領域 左の小領域P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 37 )
bull 光の出射行列 Poutndash 小領域 rArr ライトフィールド
119819120783 出射ライトフィールドのサンプル数119821 伝播元の小領域の頂点数
iquest119819120783行iquest
⋮⋮
⋮4 5 9
6
8
CEDEC 2012
光の伝播行列の計算 ( 47 )
bull 光の通過行列 Pthroughndash ライトフィールド rArr ライトフィールド
119819120784 出射ライトフィールドのサンプル数119819120783入射ライトフィールドのサンプル数
iquest119819120784行iquest
⋮⋮
⋮5 8
2
5 ⋯
CEDEC 2012
光の伝播行列の計算 ( 57 )
bull 光の入射行列 Pinndash ライトフィールド rArr 小領域
119820伝播先の小領域の頂点数119819120784 入射ライトフィールドのサンプル数
iquest119820行iquest
⋮
2 5 6
1
5⋮
Pin 計算時にヘミキューブ法などを用いて立体角を考慮
CEDEC 2012
光の伝播行列の計算 ( 67 )
bull 全ての小領域間の光の伝播は三種類の行列の組み合わせで計算可能
P = Pin times Pout上記例ではは再利用不可能だがは共通
P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 77 )
bull 光の伝播の計算のまとめ
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
多重反射への拡張
bull 間接光計算を反復実行
⋮
間接光計算
間接光計算
間接光計算
直接光
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
モジュールの導入 ( 13 )
bull モジュール( = 再利用可能な汎用小領域)の導入
bull 上記のようなシーンは「回転」も考慮すれば5種の立方体モジュールの組合わせで構成可能
3 方向壁 2 方向壁 2 方向壁 1 方向壁 0 方向壁
CEDEC 2012
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
モジュールの導入 ( 23 )
通過行列は(直進 右折 左折)の三種類
ライトフィールドデータを一つの行列に格納
特異値分解
データ量の削減及び計算の高速化
詳しくは論文 51 節参照
CEDEC 2012
モジュールの導入 ( 33 )
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
メリットは多いがシーンの自由度とのトレードオフ
モジュールの使い所は要検討
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
デモ
CEDEC 2012
考察
bull ライトフィールドは本当に必要か
bull 小領域間の位置関係が固定ならば(恐らく)不要
rArr レイトレーシング法で伝播行列 P を直接計算 した方が効率的bull 小領域を動的に入れ替える場合は必要
P = Pin times Pthrough times Pout
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ 3 まとめ
CEDEC 2012
発表内容のまとめ
bull Modular Radiance Transfer 法を解説ndash 長所
bull とにかく高速bull 多重反射を含んだ間接光が扱えるbull 技術のコア部分は汎用的で応用の余地が高い
ndash 短所bull 前計算を含め使い方に癖がある ( 実験を通してノウハウを蓄積すれば余り問題にならない )
ゲームへの応用は十分可能
CEDEC 2012
本スライド内で引用した論文の図の著作権は全て論文著者に帰属します
その他の図スライド本体挿絵等の著作権は
シリコンスタジオ株式会社に帰属します
著作権について
CEDEC 2012
最後に
御清聴ありがとうございました
httpwwwsiliconstudiocojppresentationsindexhtml
スライドデモは弊社 HP で近日公開
制作協力 河野 駿介 辻 俊晶 古家 亙 後藤 晋也 京田 文人 三谷 健一郎
問い合わせ先 田村 nk-tamurasiliconstudiocojp 安田 re-yasudasiliconstudiocojp
シリコンスタジオは常に人材を求めています
ご興味ある方は弊社 HP をご覧ください
CEDEC 2012
Appendix A 実装について
bull 実装自体は様々なアプローチが可能bull ここではデモの実装でのアプローチを紹介
CEDEC 2012
Appendix A 前計算について
bull F の計算ndash メッシュの全頂点からキューブマップにレンダリングndash ピクセルには頂点 ID とウェイトを出力
bull 直接光サンプルの計算ndash 頂点カラーを Stream Out でバッファに出力ndash 頂点シャドウあり
bull Light Probe の計算ndash 各 Probe の中心からキューブマップにレンダリングndash の対応する基底ベクトル同士を足し合わせた
ベクトル ( 直接光 + 間接光 ) を頂点カラーとして使用
CEDEC 2012
Appendix A ランタイム
bull 直接光の結果を Stream Out でバッファに出力ndash 頂点シャドウありndash カラーバッファへの書き込み OFFndash 複数オブジェクトの場合は単一バッファにオフ
セットを変えて出力
119897119889
CEDEC 2012
Appendix A ランタイム 係数
bull Compute Shader で を計算ndash は極めて横長の行列 ( 行 ~100程度 列 頂点数 )ndash は GPU が少々苦手な処理ではあるものの
タイリングベースの実装で高速に処理可能
iquest
119897119889119960 lowast119861119889minus1
CEDEC 2012
Appendix A ランタイム
bull Compute Shader で を計算ndash は極めて縦長 ( の転置と同サイズ ) なので素直に実装可能
iquest
119861119894119899119889 119960119897119894119899 119889 lowast
CEDEC 2012
Appendix A ランタイム 最終パス
bull を頂点カラーとして入力としてピクセル単位の直接光のシェーディングと合成して最終結果を得る
iquest +
CEDEC 2012
Appendix A ランタイム Light Probe(1)
bull Compute Shader でを計算ndash は縦長 ( 行 頂点数 timesSH係数の数 列 ~100程度 )
iquest
119880119907119900119897 119960119897119907119900119897 lowast
CEDEC 2012
Appendix A ランタイム Light Probe(2)
bull Probe を用いて Dynamic Objects をライティングndash 各 Light Probe が SH を 9係数で保持するため
3D Texture ではなく Structured-Buffer で保持ndash Vertex Shader 内で自力 Tri-Linear 補間
iquest +
CEDEC 2012
Appendix B 後半の補足
bull 大規模なシーンでの光の伝播bull 小領域間の光の伝播は個別に総当たりで計算
rArr小領域間の光の伝播は距離によって大きく減衰
実際は大規模シーンでも概ね二つ隣の小領域まで考慮すれば十分
CEDEC 2012
Appendix B 後半の補足
bull 小領域の境界
bull 小領域の境界部分が不連続になる rArr 小領域の境界部分は補間の必要がある
CEDEC 2012
bull スライドと論文で表記が違う記号があります
Appendix C 記号の表記
スライドでの表記 論文での表記
b
- Slide 1
- 発表の流れ
- 発表の流れ (2)
- 発表の概要
- 解説技術の特徴
- 注意点
- 発表の流れ (3)
- 発表の流れ (4)
- 間接光の概要
- 間接光の概要 (2)
- 解説手法の計算概要
- 間接光計算の解説手順
- 間接光計算の解説手順 (2)
- 間接光計算の解説手順 (3)
- 間接光計算の解説手順 (4)
- 間接光計算の解説手順 (5)
- 間接光計算の解説手順 (6)
- 間接光計算の考え方
- 間接光計算の考え方 (2)
- 間接光計算の考え方 (3)
- 間接光計算の考え方 (4)
- 間接光計算の考え方 (5)
- 間接光計算の解説手順 (7)
- 問題提起
- 間接光計算の解説手順 (8)
- キーアイディア
- キーアイディア (2)
- キーアイディア (3)
- キーアイディア (4)
- キーアイディア (5)
- キーアイディア (6)
- 間接光計算の解説手順 (9)
- 間接光計算の解説手順 (10)
- を求める
- を求める (2)
- を求める (3)
- 最適な基底
- サンプリングベースの基底
- サンプルの選び方について
- サンプリング行列
- サンプリング行列 (2)
- サンプリング行列 (3)
- サンプリング行列 (4)
- サンプリング行列 (5)
- サンプリング行列 (6)
- サンプリング行列 (7)
- 特異値分解(Singular Value Decomposition)
- 特異値分解(Singular Value Decomposition) (2)
- 特異値分解(Singular Value Decomposition) (3)
- 特異値分解(Singular Value Decomposition) (4)
- 特異値分解(Singular Value Decomposition) (5)
- 基底による直接光の近似
- アプローチの比較
- ハイブリッド手法の計算手順
- 係数の数の比較
- ランタイムの計算処理
- 係数の計算方法
- ランタイムの計算処理 (2)
- 間接光計算の解説手順 (11)
- ショートデモ
- 間接光計算の解説手順 (12)
- 間接光計算の解説手順 (13)
- Light Probe
- Light Probe (2)
- Light Probeによるライティング
- Light Probeによるライティング (2)
- 間接光計算の解説手順 (14)
- Light Probeの計算
- 動的なLight Probe
- 動的なLight Probe (2)
- 間接光計算の解説手順 (15)
- デモ
- デモ詳細
- パフォーマンス
- まとめ
- 発表の流れ (5)
- シーン分割による高速化の解説手順
- シーン分割による高速化の解説手順 (2)
- 問題提起 (14)
- 問題提起 (24)
- 問題提起 (34)
- 問題提起 (44)
- シーン分割による高速化の解説手順 (3)
- シーン分割による高速化の解説手順 (4)
- キーアイディア (16)
- キーアイディア (26)
- キーアイディア (36)
- キーアイディア (46)
- キーアイディア (56)
- キーアイディア (66)
- シーン分割による高速化の解説手順 (5)
- 光の伝播行列の計算 (17)
- 光の伝播行列の計算 (27)
- 光の伝播行列の計算 (37)
- 光の伝播行列の計算 (47)
- 光の伝播行列の計算 (57)
- 光の伝播行列の計算 (67)
- 光の伝播行列の計算 (77)
- シーン分割による高速化の解説手順 (6)
- シーン分割による高速化の解説手順 (7)
- 多重反射への拡張
- シーン分割による高速化の解説手順 (8)
- モジュールの導入 (13)
- モジュールの導入 (23)
- モジュールの導入 (33)
- シーン分割による高速化の解説手順 (9)
- デモ (2)
- 考察
- 発表の流れ (6)
- 発表内容のまとめ
- 著作権について
- 最後に
- Appendix A 実装について
- Appendix A 前計算について
- Appendix A ランタイム
- Appendix A ランタイム 係数
- Appendix A ランタイム
- Appendix A ランタイム 最終パス
- Appendix A ランタイム Light Probe(1)
- Appendix A ランタイム Light Probe(2)
- Appendix B 後半の補足
- Appendix B 後半の補足 (2)
- Appendix C 記号の表記
-
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説
1 最適な基底の計算方法 2 係数の計算方法
- ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
ランタイムの計算処理
CEDEC 2012
係数の計算方法
bull ランタイムで必要な計算は
ここで
bull が必要だがハイブリッド手法の場合
119897119894119899119889=119861119894119899119889119960 119960120783 +119960120784 +119960120785≑
119960=119861119889minus1 119897119889
CEDEC 2012
ランタイムの計算処理
bull ここで k は使用する係数の数ndash 自分たちのデモではndash 頂点数に比べ非常に少ないrarr高速
119861119889minus1119861119894119899 119889 119897119889119897119894119899 119889iquest lowast lowast
iquest
119948
119948
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
ショートデモ
CEDEC 2012
Step1 静的オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 - 手法概要の説明 - データ更新時における高速化の解説 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 静的オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 - 手法概要の説明 - データ更新時における高速化の解説 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Light Probe
bull 背景以外のオブジェクトには Light Probe を用いる
CEDEC 2012
Light Probe
bull Light Probe とはndash 全方位の入射光を保持する仮想的な球ndash 今回は球面調和関数 (SH) を使用
CEDEC 2012
Light Probe によるライティング
bull Light Probe を離散的に配置ndash シェーダで近傍の Light Probe の値を補間して
間接光の表現が可能
CEDEC 2012
Light Probe によるライティング
bull 時間の都合上詳細は割愛詳しくは下記書籍をご参照下さいndash Chapter8 「 KILLZONE2」 Light Probe自体の解説ndash Chapter9 「バイオハザード 5」 Light Probe によるラ
イティング
西川善司著「 3D ゲームファンのための
グラフィックス講座」
ここまではあくまで既存の手法の話
CEDEC 2012
Step1 静的オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 - 手法概要の説明 - データ更新時における高速化の解説 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Light Probe の計算
bull 通常 Light Probe は前計算した後更新しないndash Light Probe の計算は負荷が高い
今回は動的に Light Probe を更新する必要がある
CEDEC 2012
動的な Light Probe
bull 今回シーンのライティング結果は既知の状態の組み合わせに分解される
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
times120778 times120778 times120778times120778
CEDEC 2012
動的な Light Probe
bull 間接光と同様にそれぞれに対応した Light Probe を計算しておけば足し合わせで高速に計算可能
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
CEDEC 2012
Step1 背景オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
デモ
CEDEC 2012
デモ詳細
bull 背景オブジェクトndash 頂点数 10800 ( 頂点 )ndash基底の係数 22 (係数 )
bull Light Probendash Probe総数 500 (個 )ndash基底の係数 12 (係数 )ndash球面調和関数の係数 9 (係数 )
CEDEC 2012
パフォーマンス
bull 解像度は 1400800 で測定bull 実装には Compute Shader を使用bull 前計算約 45 分
ndash 2520 光源サンプルndash 20回反射まで考慮ndash 最適化で 10倍以上の高速化の余地あり
影あり 影なし 影なし GIなし
Geforce GTX 680 500 fps 800 fps 1500 fps
Geforce GTX 560 360 fps 440 fps 750 fps
Radeon 6630 M 80 fps 120 fps 280 fps
実装の Tips は Appendix に記載
CEDEC 2012
まとめ
bull 良い点ndash 非常に高速計算負荷が一定ndash 反射回数が無制限(行列 F に含められる )ndash 高速な Light Probe 計算ndash 様々な拡張
bull 悪い点ndash Light の位置方向を含めた前計算ndash 動的すぎるシーンは不可 (rarrDelta Radiance
Transfer)ndash 頂点カラーを念頭に置いたメッシュ分割頂点配置
ndash 複雑すぎない形状
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ
ndash 間接光計算手法の解説 (論文 4 節)ndash シーン分割による高速化の解説 (論文 5 節)
3 まとめ
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
問題提起 ( 14 )
bull 対象とする問題 シーンが複雑になった場合の計算負荷の増大
シンプルなシーン
より複雑なシーン
CEDEC 2012
問題提起 ( 24 )
bull 複雑なシーンでは1 メッシュ頂点数が増加2 必要な係数の数の増大 rArr 計算量の増大}
CEDEC 2012
問題提起 ( 34 )
bull 解決策シーンを複数の小領域に分割
rArr 適切に小領域を設定すればシーンの複雑さを 抑える事が可能bull 小領域の分割方法はユーザーが決定
CEDEC 2012
問題提起 ( 44 )
bull 各小領域内の間接光は前述の方法で計算可能bull 小領域間の光の伝播を別途考慮する必要がある
小領域間の光の伝播の高速な計算方法を解説
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
キーアイディア ( 16 )
bull 小領域間の光の伝播を個別に計算
CEDEC 2012
キーアイディア ( 26 )
bull 例として右rArr(中央)rArr左へ伝播する光を考える
キーアイディアでは多重反射を考慮しない光の伝播を考える
CEDEC 2012
キーアイディア ( 36 )
bull 小領域間の光の伝播は頂点間の影響に帰着
CEDEC 2012
キーアイディア ( 46 )
bull 小領域間の光の伝播行列 P を前計算119820 伝播先の小領域の頂点数119821 伝播元の小領域の頂点数
光の伝播行列P
119820行119821列[iquest ]P
CEDEC 2012
キーアイディア ( 56 )
bull 光の伝播行列 P を利用して光の伝播を高速に計算
[ 119956120783⋮119956119925]
119852 伝播元の小領域の頂点の色119941 伝播先の小領域の頂点の色
119820行119821列[iquest ][ 119941120783
⋮119941119924
] timesiquest P119820 伝播先の小領域の頂点数119821 伝播元の小領域の頂点数
CEDEC 2012
キーアイディア ( 66 )
bull 光の伝播を係数からの変換に修正
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
bull ライトフィールドという概念を導入
光の伝播行列の計算 ( 17 )
ライトフィールドは任意の点群を通過する
光を体系的に記録するためのデータ構造
境界面に注目
CEDEC 2012
光の伝播行列の計算 ( 27 )
bull 光の伝播行列 P を三要素に分割1 光の出射行列 Pout2 光の通過行列 Pthrough3 光の入射行列 Pin
右の小領域 中央の小領域 左の小領域P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 37 )
bull 光の出射行列 Poutndash 小領域 rArr ライトフィールド
119819120783 出射ライトフィールドのサンプル数119821 伝播元の小領域の頂点数
iquest119819120783行iquest
⋮⋮
⋮4 5 9
6
8
CEDEC 2012
光の伝播行列の計算 ( 47 )
bull 光の通過行列 Pthroughndash ライトフィールド rArr ライトフィールド
119819120784 出射ライトフィールドのサンプル数119819120783入射ライトフィールドのサンプル数
iquest119819120784行iquest
⋮⋮
⋮5 8
2
5 ⋯
CEDEC 2012
光の伝播行列の計算 ( 57 )
bull 光の入射行列 Pinndash ライトフィールド rArr 小領域
119820伝播先の小領域の頂点数119819120784 入射ライトフィールドのサンプル数
iquest119820行iquest
⋮
2 5 6
1
5⋮
Pin 計算時にヘミキューブ法などを用いて立体角を考慮
CEDEC 2012
光の伝播行列の計算 ( 67 )
bull 全ての小領域間の光の伝播は三種類の行列の組み合わせで計算可能
P = Pin times Pout上記例ではは再利用不可能だがは共通
P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 77 )
bull 光の伝播の計算のまとめ
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
多重反射への拡張
bull 間接光計算を反復実行
⋮
間接光計算
間接光計算
間接光計算
直接光
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
モジュールの導入 ( 13 )
bull モジュール( = 再利用可能な汎用小領域)の導入
bull 上記のようなシーンは「回転」も考慮すれば5種の立方体モジュールの組合わせで構成可能
3 方向壁 2 方向壁 2 方向壁 1 方向壁 0 方向壁
CEDEC 2012
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
モジュールの導入 ( 23 )
通過行列は(直進 右折 左折)の三種類
ライトフィールドデータを一つの行列に格納
特異値分解
データ量の削減及び計算の高速化
詳しくは論文 51 節参照
CEDEC 2012
モジュールの導入 ( 33 )
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
メリットは多いがシーンの自由度とのトレードオフ
モジュールの使い所は要検討
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
デモ
CEDEC 2012
考察
bull ライトフィールドは本当に必要か
bull 小領域間の位置関係が固定ならば(恐らく)不要
rArr レイトレーシング法で伝播行列 P を直接計算 した方が効率的bull 小領域を動的に入れ替える場合は必要
P = Pin times Pthrough times Pout
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ 3 まとめ
CEDEC 2012
発表内容のまとめ
bull Modular Radiance Transfer 法を解説ndash 長所
bull とにかく高速bull 多重反射を含んだ間接光が扱えるbull 技術のコア部分は汎用的で応用の余地が高い
ndash 短所bull 前計算を含め使い方に癖がある ( 実験を通してノウハウを蓄積すれば余り問題にならない )
ゲームへの応用は十分可能
CEDEC 2012
本スライド内で引用した論文の図の著作権は全て論文著者に帰属します
その他の図スライド本体挿絵等の著作権は
シリコンスタジオ株式会社に帰属します
著作権について
CEDEC 2012
最後に
御清聴ありがとうございました
httpwwwsiliconstudiocojppresentationsindexhtml
スライドデモは弊社 HP で近日公開
制作協力 河野 駿介 辻 俊晶 古家 亙 後藤 晋也 京田 文人 三谷 健一郎
問い合わせ先 田村 nk-tamurasiliconstudiocojp 安田 re-yasudasiliconstudiocojp
シリコンスタジオは常に人材を求めています
ご興味ある方は弊社 HP をご覧ください
CEDEC 2012
Appendix A 実装について
bull 実装自体は様々なアプローチが可能bull ここではデモの実装でのアプローチを紹介
CEDEC 2012
Appendix A 前計算について
bull F の計算ndash メッシュの全頂点からキューブマップにレンダリングndash ピクセルには頂点 ID とウェイトを出力
bull 直接光サンプルの計算ndash 頂点カラーを Stream Out でバッファに出力ndash 頂点シャドウあり
bull Light Probe の計算ndash 各 Probe の中心からキューブマップにレンダリングndash の対応する基底ベクトル同士を足し合わせた
ベクトル ( 直接光 + 間接光 ) を頂点カラーとして使用
CEDEC 2012
Appendix A ランタイム
bull 直接光の結果を Stream Out でバッファに出力ndash 頂点シャドウありndash カラーバッファへの書き込み OFFndash 複数オブジェクトの場合は単一バッファにオフ
セットを変えて出力
119897119889
CEDEC 2012
Appendix A ランタイム 係数
bull Compute Shader で を計算ndash は極めて横長の行列 ( 行 ~100程度 列 頂点数 )ndash は GPU が少々苦手な処理ではあるものの
タイリングベースの実装で高速に処理可能
iquest
119897119889119960 lowast119861119889minus1
CEDEC 2012
Appendix A ランタイム
bull Compute Shader で を計算ndash は極めて縦長 ( の転置と同サイズ ) なので素直に実装可能
iquest
119861119894119899119889 119960119897119894119899 119889 lowast
CEDEC 2012
Appendix A ランタイム 最終パス
bull を頂点カラーとして入力としてピクセル単位の直接光のシェーディングと合成して最終結果を得る
iquest +
CEDEC 2012
Appendix A ランタイム Light Probe(1)
bull Compute Shader でを計算ndash は縦長 ( 行 頂点数 timesSH係数の数 列 ~100程度 )
iquest
119880119907119900119897 119960119897119907119900119897 lowast
CEDEC 2012
Appendix A ランタイム Light Probe(2)
bull Probe を用いて Dynamic Objects をライティングndash 各 Light Probe が SH を 9係数で保持するため
3D Texture ではなく Structured-Buffer で保持ndash Vertex Shader 内で自力 Tri-Linear 補間
iquest +
CEDEC 2012
Appendix B 後半の補足
bull 大規模なシーンでの光の伝播bull 小領域間の光の伝播は個別に総当たりで計算
rArr小領域間の光の伝播は距離によって大きく減衰
実際は大規模シーンでも概ね二つ隣の小領域まで考慮すれば十分
CEDEC 2012
Appendix B 後半の補足
bull 小領域の境界
bull 小領域の境界部分が不連続になる rArr 小領域の境界部分は補間の必要がある
CEDEC 2012
bull スライドと論文で表記が違う記号があります
Appendix C 記号の表記
スライドでの表記 論文での表記
b
- Slide 1
- 発表の流れ
- 発表の流れ (2)
- 発表の概要
- 解説技術の特徴
- 注意点
- 発表の流れ (3)
- 発表の流れ (4)
- 間接光の概要
- 間接光の概要 (2)
- 解説手法の計算概要
- 間接光計算の解説手順
- 間接光計算の解説手順 (2)
- 間接光計算の解説手順 (3)
- 間接光計算の解説手順 (4)
- 間接光計算の解説手順 (5)
- 間接光計算の解説手順 (6)
- 間接光計算の考え方
- 間接光計算の考え方 (2)
- 間接光計算の考え方 (3)
- 間接光計算の考え方 (4)
- 間接光計算の考え方 (5)
- 間接光計算の解説手順 (7)
- 問題提起
- 間接光計算の解説手順 (8)
- キーアイディア
- キーアイディア (2)
- キーアイディア (3)
- キーアイディア (4)
- キーアイディア (5)
- キーアイディア (6)
- 間接光計算の解説手順 (9)
- 間接光計算の解説手順 (10)
- を求める
- を求める (2)
- を求める (3)
- 最適な基底
- サンプリングベースの基底
- サンプルの選び方について
- サンプリング行列
- サンプリング行列 (2)
- サンプリング行列 (3)
- サンプリング行列 (4)
- サンプリング行列 (5)
- サンプリング行列 (6)
- サンプリング行列 (7)
- 特異値分解(Singular Value Decomposition)
- 特異値分解(Singular Value Decomposition) (2)
- 特異値分解(Singular Value Decomposition) (3)
- 特異値分解(Singular Value Decomposition) (4)
- 特異値分解(Singular Value Decomposition) (5)
- 基底による直接光の近似
- アプローチの比較
- ハイブリッド手法の計算手順
- 係数の数の比較
- ランタイムの計算処理
- 係数の計算方法
- ランタイムの計算処理 (2)
- 間接光計算の解説手順 (11)
- ショートデモ
- 間接光計算の解説手順 (12)
- 間接光計算の解説手順 (13)
- Light Probe
- Light Probe (2)
- Light Probeによるライティング
- Light Probeによるライティング (2)
- 間接光計算の解説手順 (14)
- Light Probeの計算
- 動的なLight Probe
- 動的なLight Probe (2)
- 間接光計算の解説手順 (15)
- デモ
- デモ詳細
- パフォーマンス
- まとめ
- 発表の流れ (5)
- シーン分割による高速化の解説手順
- シーン分割による高速化の解説手順 (2)
- 問題提起 (14)
- 問題提起 (24)
- 問題提起 (34)
- 問題提起 (44)
- シーン分割による高速化の解説手順 (3)
- シーン分割による高速化の解説手順 (4)
- キーアイディア (16)
- キーアイディア (26)
- キーアイディア (36)
- キーアイディア (46)
- キーアイディア (56)
- キーアイディア (66)
- シーン分割による高速化の解説手順 (5)
- 光の伝播行列の計算 (17)
- 光の伝播行列の計算 (27)
- 光の伝播行列の計算 (37)
- 光の伝播行列の計算 (47)
- 光の伝播行列の計算 (57)
- 光の伝播行列の計算 (67)
- 光の伝播行列の計算 (77)
- シーン分割による高速化の解説手順 (6)
- シーン分割による高速化の解説手順 (7)
- 多重反射への拡張
- シーン分割による高速化の解説手順 (8)
- モジュールの導入 (13)
- モジュールの導入 (23)
- モジュールの導入 (33)
- シーン分割による高速化の解説手順 (9)
- デモ (2)
- 考察
- 発表の流れ (6)
- 発表内容のまとめ
- 著作権について
- 最後に
- Appendix A 実装について
- Appendix A 前計算について
- Appendix A ランタイム
- Appendix A ランタイム 係数
- Appendix A ランタイム
- Appendix A ランタイム 最終パス
- Appendix A ランタイム Light Probe(1)
- Appendix A ランタイム Light Probe(2)
- Appendix B 後半の補足
- Appendix B 後半の補足 (2)
- Appendix C 記号の表記
-
CEDEC 2012
係数の計算方法
bull ランタイムで必要な計算は
ここで
bull が必要だがハイブリッド手法の場合
119897119894119899119889=119861119894119899119889119960 119960120783 +119960120784 +119960120785≑
119960=119861119889minus1 119897119889
CEDEC 2012
ランタイムの計算処理
bull ここで k は使用する係数の数ndash 自分たちのデモではndash 頂点数に比べ非常に少ないrarr高速
119861119889minus1119861119894119899 119889 119897119889119897119894119899 119889iquest lowast lowast
iquest
119948
119948
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
ショートデモ
CEDEC 2012
Step1 静的オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 - 手法概要の説明 - データ更新時における高速化の解説 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 静的オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 - 手法概要の説明 - データ更新時における高速化の解説 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Light Probe
bull 背景以外のオブジェクトには Light Probe を用いる
CEDEC 2012
Light Probe
bull Light Probe とはndash 全方位の入射光を保持する仮想的な球ndash 今回は球面調和関数 (SH) を使用
CEDEC 2012
Light Probe によるライティング
bull Light Probe を離散的に配置ndash シェーダで近傍の Light Probe の値を補間して
間接光の表現が可能
CEDEC 2012
Light Probe によるライティング
bull 時間の都合上詳細は割愛詳しくは下記書籍をご参照下さいndash Chapter8 「 KILLZONE2」 Light Probe自体の解説ndash Chapter9 「バイオハザード 5」 Light Probe によるラ
イティング
西川善司著「 3D ゲームファンのための
グラフィックス講座」
ここまではあくまで既存の手法の話
CEDEC 2012
Step1 静的オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 - 手法概要の説明 - データ更新時における高速化の解説 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Light Probe の計算
bull 通常 Light Probe は前計算した後更新しないndash Light Probe の計算は負荷が高い
今回は動的に Light Probe を更新する必要がある
CEDEC 2012
動的な Light Probe
bull 今回シーンのライティング結果は既知の状態の組み合わせに分解される
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
times120778 times120778 times120778times120778
CEDEC 2012
動的な Light Probe
bull 間接光と同様にそれぞれに対応した Light Probe を計算しておけば足し合わせで高速に計算可能
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
CEDEC 2012
Step1 背景オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
デモ
CEDEC 2012
デモ詳細
bull 背景オブジェクトndash 頂点数 10800 ( 頂点 )ndash基底の係数 22 (係数 )
bull Light Probendash Probe総数 500 (個 )ndash基底の係数 12 (係数 )ndash球面調和関数の係数 9 (係数 )
CEDEC 2012
パフォーマンス
bull 解像度は 1400800 で測定bull 実装には Compute Shader を使用bull 前計算約 45 分
ndash 2520 光源サンプルndash 20回反射まで考慮ndash 最適化で 10倍以上の高速化の余地あり
影あり 影なし 影なし GIなし
Geforce GTX 680 500 fps 800 fps 1500 fps
Geforce GTX 560 360 fps 440 fps 750 fps
Radeon 6630 M 80 fps 120 fps 280 fps
実装の Tips は Appendix に記載
CEDEC 2012
まとめ
bull 良い点ndash 非常に高速計算負荷が一定ndash 反射回数が無制限(行列 F に含められる )ndash 高速な Light Probe 計算ndash 様々な拡張
bull 悪い点ndash Light の位置方向を含めた前計算ndash 動的すぎるシーンは不可 (rarrDelta Radiance
Transfer)ndash 頂点カラーを念頭に置いたメッシュ分割頂点配置
ndash 複雑すぎない形状
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ
ndash 間接光計算手法の解説 (論文 4 節)ndash シーン分割による高速化の解説 (論文 5 節)
3 まとめ
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
問題提起 ( 14 )
bull 対象とする問題 シーンが複雑になった場合の計算負荷の増大
シンプルなシーン
より複雑なシーン
CEDEC 2012
問題提起 ( 24 )
bull 複雑なシーンでは1 メッシュ頂点数が増加2 必要な係数の数の増大 rArr 計算量の増大}
CEDEC 2012
問題提起 ( 34 )
bull 解決策シーンを複数の小領域に分割
rArr 適切に小領域を設定すればシーンの複雑さを 抑える事が可能bull 小領域の分割方法はユーザーが決定
CEDEC 2012
問題提起 ( 44 )
bull 各小領域内の間接光は前述の方法で計算可能bull 小領域間の光の伝播を別途考慮する必要がある
小領域間の光の伝播の高速な計算方法を解説
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
キーアイディア ( 16 )
bull 小領域間の光の伝播を個別に計算
CEDEC 2012
キーアイディア ( 26 )
bull 例として右rArr(中央)rArr左へ伝播する光を考える
キーアイディアでは多重反射を考慮しない光の伝播を考える
CEDEC 2012
キーアイディア ( 36 )
bull 小領域間の光の伝播は頂点間の影響に帰着
CEDEC 2012
キーアイディア ( 46 )
bull 小領域間の光の伝播行列 P を前計算119820 伝播先の小領域の頂点数119821 伝播元の小領域の頂点数
光の伝播行列P
119820行119821列[iquest ]P
CEDEC 2012
キーアイディア ( 56 )
bull 光の伝播行列 P を利用して光の伝播を高速に計算
[ 119956120783⋮119956119925]
119852 伝播元の小領域の頂点の色119941 伝播先の小領域の頂点の色
119820行119821列[iquest ][ 119941120783
⋮119941119924
] timesiquest P119820 伝播先の小領域の頂点数119821 伝播元の小領域の頂点数
CEDEC 2012
キーアイディア ( 66 )
bull 光の伝播を係数からの変換に修正
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
bull ライトフィールドという概念を導入
光の伝播行列の計算 ( 17 )
ライトフィールドは任意の点群を通過する
光を体系的に記録するためのデータ構造
境界面に注目
CEDEC 2012
光の伝播行列の計算 ( 27 )
bull 光の伝播行列 P を三要素に分割1 光の出射行列 Pout2 光の通過行列 Pthrough3 光の入射行列 Pin
右の小領域 中央の小領域 左の小領域P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 37 )
bull 光の出射行列 Poutndash 小領域 rArr ライトフィールド
119819120783 出射ライトフィールドのサンプル数119821 伝播元の小領域の頂点数
iquest119819120783行iquest
⋮⋮
⋮4 5 9
6
8
CEDEC 2012
光の伝播行列の計算 ( 47 )
bull 光の通過行列 Pthroughndash ライトフィールド rArr ライトフィールド
119819120784 出射ライトフィールドのサンプル数119819120783入射ライトフィールドのサンプル数
iquest119819120784行iquest
⋮⋮
⋮5 8
2
5 ⋯
CEDEC 2012
光の伝播行列の計算 ( 57 )
bull 光の入射行列 Pinndash ライトフィールド rArr 小領域
119820伝播先の小領域の頂点数119819120784 入射ライトフィールドのサンプル数
iquest119820行iquest
⋮
2 5 6
1
5⋮
Pin 計算時にヘミキューブ法などを用いて立体角を考慮
CEDEC 2012
光の伝播行列の計算 ( 67 )
bull 全ての小領域間の光の伝播は三種類の行列の組み合わせで計算可能
P = Pin times Pout上記例ではは再利用不可能だがは共通
P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 77 )
bull 光の伝播の計算のまとめ
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
多重反射への拡張
bull 間接光計算を反復実行
⋮
間接光計算
間接光計算
間接光計算
直接光
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
モジュールの導入 ( 13 )
bull モジュール( = 再利用可能な汎用小領域)の導入
bull 上記のようなシーンは「回転」も考慮すれば5種の立方体モジュールの組合わせで構成可能
3 方向壁 2 方向壁 2 方向壁 1 方向壁 0 方向壁
CEDEC 2012
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
モジュールの導入 ( 23 )
通過行列は(直進 右折 左折)の三種類
ライトフィールドデータを一つの行列に格納
特異値分解
データ量の削減及び計算の高速化
詳しくは論文 51 節参照
CEDEC 2012
モジュールの導入 ( 33 )
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
メリットは多いがシーンの自由度とのトレードオフ
モジュールの使い所は要検討
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
デモ
CEDEC 2012
考察
bull ライトフィールドは本当に必要か
bull 小領域間の位置関係が固定ならば(恐らく)不要
rArr レイトレーシング法で伝播行列 P を直接計算 した方が効率的bull 小領域を動的に入れ替える場合は必要
P = Pin times Pthrough times Pout
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ 3 まとめ
CEDEC 2012
発表内容のまとめ
bull Modular Radiance Transfer 法を解説ndash 長所
bull とにかく高速bull 多重反射を含んだ間接光が扱えるbull 技術のコア部分は汎用的で応用の余地が高い
ndash 短所bull 前計算を含め使い方に癖がある ( 実験を通してノウハウを蓄積すれば余り問題にならない )
ゲームへの応用は十分可能
CEDEC 2012
本スライド内で引用した論文の図の著作権は全て論文著者に帰属します
その他の図スライド本体挿絵等の著作権は
シリコンスタジオ株式会社に帰属します
著作権について
CEDEC 2012
最後に
御清聴ありがとうございました
httpwwwsiliconstudiocojppresentationsindexhtml
スライドデモは弊社 HP で近日公開
制作協力 河野 駿介 辻 俊晶 古家 亙 後藤 晋也 京田 文人 三谷 健一郎
問い合わせ先 田村 nk-tamurasiliconstudiocojp 安田 re-yasudasiliconstudiocojp
シリコンスタジオは常に人材を求めています
ご興味ある方は弊社 HP をご覧ください
CEDEC 2012
Appendix A 実装について
bull 実装自体は様々なアプローチが可能bull ここではデモの実装でのアプローチを紹介
CEDEC 2012
Appendix A 前計算について
bull F の計算ndash メッシュの全頂点からキューブマップにレンダリングndash ピクセルには頂点 ID とウェイトを出力
bull 直接光サンプルの計算ndash 頂点カラーを Stream Out でバッファに出力ndash 頂点シャドウあり
bull Light Probe の計算ndash 各 Probe の中心からキューブマップにレンダリングndash の対応する基底ベクトル同士を足し合わせた
ベクトル ( 直接光 + 間接光 ) を頂点カラーとして使用
CEDEC 2012
Appendix A ランタイム
bull 直接光の結果を Stream Out でバッファに出力ndash 頂点シャドウありndash カラーバッファへの書き込み OFFndash 複数オブジェクトの場合は単一バッファにオフ
セットを変えて出力
119897119889
CEDEC 2012
Appendix A ランタイム 係数
bull Compute Shader で を計算ndash は極めて横長の行列 ( 行 ~100程度 列 頂点数 )ndash は GPU が少々苦手な処理ではあるものの
タイリングベースの実装で高速に処理可能
iquest
119897119889119960 lowast119861119889minus1
CEDEC 2012
Appendix A ランタイム
bull Compute Shader で を計算ndash は極めて縦長 ( の転置と同サイズ ) なので素直に実装可能
iquest
119861119894119899119889 119960119897119894119899 119889 lowast
CEDEC 2012
Appendix A ランタイム 最終パス
bull を頂点カラーとして入力としてピクセル単位の直接光のシェーディングと合成して最終結果を得る
iquest +
CEDEC 2012
Appendix A ランタイム Light Probe(1)
bull Compute Shader でを計算ndash は縦長 ( 行 頂点数 timesSH係数の数 列 ~100程度 )
iquest
119880119907119900119897 119960119897119907119900119897 lowast
CEDEC 2012
Appendix A ランタイム Light Probe(2)
bull Probe を用いて Dynamic Objects をライティングndash 各 Light Probe が SH を 9係数で保持するため
3D Texture ではなく Structured-Buffer で保持ndash Vertex Shader 内で自力 Tri-Linear 補間
iquest +
CEDEC 2012
Appendix B 後半の補足
bull 大規模なシーンでの光の伝播bull 小領域間の光の伝播は個別に総当たりで計算
rArr小領域間の光の伝播は距離によって大きく減衰
実際は大規模シーンでも概ね二つ隣の小領域まで考慮すれば十分
CEDEC 2012
Appendix B 後半の補足
bull 小領域の境界
bull 小領域の境界部分が不連続になる rArr 小領域の境界部分は補間の必要がある
CEDEC 2012
bull スライドと論文で表記が違う記号があります
Appendix C 記号の表記
スライドでの表記 論文での表記
b
- Slide 1
- 発表の流れ
- 発表の流れ (2)
- 発表の概要
- 解説技術の特徴
- 注意点
- 発表の流れ (3)
- 発表の流れ (4)
- 間接光の概要
- 間接光の概要 (2)
- 解説手法の計算概要
- 間接光計算の解説手順
- 間接光計算の解説手順 (2)
- 間接光計算の解説手順 (3)
- 間接光計算の解説手順 (4)
- 間接光計算の解説手順 (5)
- 間接光計算の解説手順 (6)
- 間接光計算の考え方
- 間接光計算の考え方 (2)
- 間接光計算の考え方 (3)
- 間接光計算の考え方 (4)
- 間接光計算の考え方 (5)
- 間接光計算の解説手順 (7)
- 問題提起
- 間接光計算の解説手順 (8)
- キーアイディア
- キーアイディア (2)
- キーアイディア (3)
- キーアイディア (4)
- キーアイディア (5)
- キーアイディア (6)
- 間接光計算の解説手順 (9)
- 間接光計算の解説手順 (10)
- を求める
- を求める (2)
- を求める (3)
- 最適な基底
- サンプリングベースの基底
- サンプルの選び方について
- サンプリング行列
- サンプリング行列 (2)
- サンプリング行列 (3)
- サンプリング行列 (4)
- サンプリング行列 (5)
- サンプリング行列 (6)
- サンプリング行列 (7)
- 特異値分解(Singular Value Decomposition)
- 特異値分解(Singular Value Decomposition) (2)
- 特異値分解(Singular Value Decomposition) (3)
- 特異値分解(Singular Value Decomposition) (4)
- 特異値分解(Singular Value Decomposition) (5)
- 基底による直接光の近似
- アプローチの比較
- ハイブリッド手法の計算手順
- 係数の数の比較
- ランタイムの計算処理
- 係数の計算方法
- ランタイムの計算処理 (2)
- 間接光計算の解説手順 (11)
- ショートデモ
- 間接光計算の解説手順 (12)
- 間接光計算の解説手順 (13)
- Light Probe
- Light Probe (2)
- Light Probeによるライティング
- Light Probeによるライティング (2)
- 間接光計算の解説手順 (14)
- Light Probeの計算
- 動的なLight Probe
- 動的なLight Probe (2)
- 間接光計算の解説手順 (15)
- デモ
- デモ詳細
- パフォーマンス
- まとめ
- 発表の流れ (5)
- シーン分割による高速化の解説手順
- シーン分割による高速化の解説手順 (2)
- 問題提起 (14)
- 問題提起 (24)
- 問題提起 (34)
- 問題提起 (44)
- シーン分割による高速化の解説手順 (3)
- シーン分割による高速化の解説手順 (4)
- キーアイディア (16)
- キーアイディア (26)
- キーアイディア (36)
- キーアイディア (46)
- キーアイディア (56)
- キーアイディア (66)
- シーン分割による高速化の解説手順 (5)
- 光の伝播行列の計算 (17)
- 光の伝播行列の計算 (27)
- 光の伝播行列の計算 (37)
- 光の伝播行列の計算 (47)
- 光の伝播行列の計算 (57)
- 光の伝播行列の計算 (67)
- 光の伝播行列の計算 (77)
- シーン分割による高速化の解説手順 (6)
- シーン分割による高速化の解説手順 (7)
- 多重反射への拡張
- シーン分割による高速化の解説手順 (8)
- モジュールの導入 (13)
- モジュールの導入 (23)
- モジュールの導入 (33)
- シーン分割による高速化の解説手順 (9)
- デモ (2)
- 考察
- 発表の流れ (6)
- 発表内容のまとめ
- 著作権について
- 最後に
- Appendix A 実装について
- Appendix A 前計算について
- Appendix A ランタイム
- Appendix A ランタイム 係数
- Appendix A ランタイム
- Appendix A ランタイム 最終パス
- Appendix A ランタイム Light Probe(1)
- Appendix A ランタイム Light Probe(2)
- Appendix B 後半の補足
- Appendix B 後半の補足 (2)
- Appendix C 記号の表記
-
CEDEC 2012
ランタイムの計算処理
bull ここで k は使用する係数の数ndash 自分たちのデモではndash 頂点数に比べ非常に少ないrarr高速
119861119889minus1119861119894119899 119889 119897119889119897119894119899 119889iquest lowast lowast
iquest
119948
119948
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
ショートデモ
CEDEC 2012
Step1 静的オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 - 手法概要の説明 - データ更新時における高速化の解説 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 静的オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 - 手法概要の説明 - データ更新時における高速化の解説 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Light Probe
bull 背景以外のオブジェクトには Light Probe を用いる
CEDEC 2012
Light Probe
bull Light Probe とはndash 全方位の入射光を保持する仮想的な球ndash 今回は球面調和関数 (SH) を使用
CEDEC 2012
Light Probe によるライティング
bull Light Probe を離散的に配置ndash シェーダで近傍の Light Probe の値を補間して
間接光の表現が可能
CEDEC 2012
Light Probe によるライティング
bull 時間の都合上詳細は割愛詳しくは下記書籍をご参照下さいndash Chapter8 「 KILLZONE2」 Light Probe自体の解説ndash Chapter9 「バイオハザード 5」 Light Probe によるラ
イティング
西川善司著「 3D ゲームファンのための
グラフィックス講座」
ここまではあくまで既存の手法の話
CEDEC 2012
Step1 静的オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 - 手法概要の説明 - データ更新時における高速化の解説 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Light Probe の計算
bull 通常 Light Probe は前計算した後更新しないndash Light Probe の計算は負荷が高い
今回は動的に Light Probe を更新する必要がある
CEDEC 2012
動的な Light Probe
bull 今回シーンのライティング結果は既知の状態の組み合わせに分解される
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
times120778 times120778 times120778times120778
CEDEC 2012
動的な Light Probe
bull 間接光と同様にそれぞれに対応した Light Probe を計算しておけば足し合わせで高速に計算可能
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
CEDEC 2012
Step1 背景オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
デモ
CEDEC 2012
デモ詳細
bull 背景オブジェクトndash 頂点数 10800 ( 頂点 )ndash基底の係数 22 (係数 )
bull Light Probendash Probe総数 500 (個 )ndash基底の係数 12 (係数 )ndash球面調和関数の係数 9 (係数 )
CEDEC 2012
パフォーマンス
bull 解像度は 1400800 で測定bull 実装には Compute Shader を使用bull 前計算約 45 分
ndash 2520 光源サンプルndash 20回反射まで考慮ndash 最適化で 10倍以上の高速化の余地あり
影あり 影なし 影なし GIなし
Geforce GTX 680 500 fps 800 fps 1500 fps
Geforce GTX 560 360 fps 440 fps 750 fps
Radeon 6630 M 80 fps 120 fps 280 fps
実装の Tips は Appendix に記載
CEDEC 2012
まとめ
bull 良い点ndash 非常に高速計算負荷が一定ndash 反射回数が無制限(行列 F に含められる )ndash 高速な Light Probe 計算ndash 様々な拡張
bull 悪い点ndash Light の位置方向を含めた前計算ndash 動的すぎるシーンは不可 (rarrDelta Radiance
Transfer)ndash 頂点カラーを念頭に置いたメッシュ分割頂点配置
ndash 複雑すぎない形状
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ
ndash 間接光計算手法の解説 (論文 4 節)ndash シーン分割による高速化の解説 (論文 5 節)
3 まとめ
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
問題提起 ( 14 )
bull 対象とする問題 シーンが複雑になった場合の計算負荷の増大
シンプルなシーン
より複雑なシーン
CEDEC 2012
問題提起 ( 24 )
bull 複雑なシーンでは1 メッシュ頂点数が増加2 必要な係数の数の増大 rArr 計算量の増大}
CEDEC 2012
問題提起 ( 34 )
bull 解決策シーンを複数の小領域に分割
rArr 適切に小領域を設定すればシーンの複雑さを 抑える事が可能bull 小領域の分割方法はユーザーが決定
CEDEC 2012
問題提起 ( 44 )
bull 各小領域内の間接光は前述の方法で計算可能bull 小領域間の光の伝播を別途考慮する必要がある
小領域間の光の伝播の高速な計算方法を解説
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
キーアイディア ( 16 )
bull 小領域間の光の伝播を個別に計算
CEDEC 2012
キーアイディア ( 26 )
bull 例として右rArr(中央)rArr左へ伝播する光を考える
キーアイディアでは多重反射を考慮しない光の伝播を考える
CEDEC 2012
キーアイディア ( 36 )
bull 小領域間の光の伝播は頂点間の影響に帰着
CEDEC 2012
キーアイディア ( 46 )
bull 小領域間の光の伝播行列 P を前計算119820 伝播先の小領域の頂点数119821 伝播元の小領域の頂点数
光の伝播行列P
119820行119821列[iquest ]P
CEDEC 2012
キーアイディア ( 56 )
bull 光の伝播行列 P を利用して光の伝播を高速に計算
[ 119956120783⋮119956119925]
119852 伝播元の小領域の頂点の色119941 伝播先の小領域の頂点の色
119820行119821列[iquest ][ 119941120783
⋮119941119924
] timesiquest P119820 伝播先の小領域の頂点数119821 伝播元の小領域の頂点数
CEDEC 2012
キーアイディア ( 66 )
bull 光の伝播を係数からの変換に修正
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
bull ライトフィールドという概念を導入
光の伝播行列の計算 ( 17 )
ライトフィールドは任意の点群を通過する
光を体系的に記録するためのデータ構造
境界面に注目
CEDEC 2012
光の伝播行列の計算 ( 27 )
bull 光の伝播行列 P を三要素に分割1 光の出射行列 Pout2 光の通過行列 Pthrough3 光の入射行列 Pin
右の小領域 中央の小領域 左の小領域P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 37 )
bull 光の出射行列 Poutndash 小領域 rArr ライトフィールド
119819120783 出射ライトフィールドのサンプル数119821 伝播元の小領域の頂点数
iquest119819120783行iquest
⋮⋮
⋮4 5 9
6
8
CEDEC 2012
光の伝播行列の計算 ( 47 )
bull 光の通過行列 Pthroughndash ライトフィールド rArr ライトフィールド
119819120784 出射ライトフィールドのサンプル数119819120783入射ライトフィールドのサンプル数
iquest119819120784行iquest
⋮⋮
⋮5 8
2
5 ⋯
CEDEC 2012
光の伝播行列の計算 ( 57 )
bull 光の入射行列 Pinndash ライトフィールド rArr 小領域
119820伝播先の小領域の頂点数119819120784 入射ライトフィールドのサンプル数
iquest119820行iquest
⋮
2 5 6
1
5⋮
Pin 計算時にヘミキューブ法などを用いて立体角を考慮
CEDEC 2012
光の伝播行列の計算 ( 67 )
bull 全ての小領域間の光の伝播は三種類の行列の組み合わせで計算可能
P = Pin times Pout上記例ではは再利用不可能だがは共通
P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 77 )
bull 光の伝播の計算のまとめ
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
多重反射への拡張
bull 間接光計算を反復実行
⋮
間接光計算
間接光計算
間接光計算
直接光
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
モジュールの導入 ( 13 )
bull モジュール( = 再利用可能な汎用小領域)の導入
bull 上記のようなシーンは「回転」も考慮すれば5種の立方体モジュールの組合わせで構成可能
3 方向壁 2 方向壁 2 方向壁 1 方向壁 0 方向壁
CEDEC 2012
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
モジュールの導入 ( 23 )
通過行列は(直進 右折 左折)の三種類
ライトフィールドデータを一つの行列に格納
特異値分解
データ量の削減及び計算の高速化
詳しくは論文 51 節参照
CEDEC 2012
モジュールの導入 ( 33 )
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
メリットは多いがシーンの自由度とのトレードオフ
モジュールの使い所は要検討
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
デモ
CEDEC 2012
考察
bull ライトフィールドは本当に必要か
bull 小領域間の位置関係が固定ならば(恐らく)不要
rArr レイトレーシング法で伝播行列 P を直接計算 した方が効率的bull 小領域を動的に入れ替える場合は必要
P = Pin times Pthrough times Pout
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ 3 まとめ
CEDEC 2012
発表内容のまとめ
bull Modular Radiance Transfer 法を解説ndash 長所
bull とにかく高速bull 多重反射を含んだ間接光が扱えるbull 技術のコア部分は汎用的で応用の余地が高い
ndash 短所bull 前計算を含め使い方に癖がある ( 実験を通してノウハウを蓄積すれば余り問題にならない )
ゲームへの応用は十分可能
CEDEC 2012
本スライド内で引用した論文の図の著作権は全て論文著者に帰属します
その他の図スライド本体挿絵等の著作権は
シリコンスタジオ株式会社に帰属します
著作権について
CEDEC 2012
最後に
御清聴ありがとうございました
httpwwwsiliconstudiocojppresentationsindexhtml
スライドデモは弊社 HP で近日公開
制作協力 河野 駿介 辻 俊晶 古家 亙 後藤 晋也 京田 文人 三谷 健一郎
問い合わせ先 田村 nk-tamurasiliconstudiocojp 安田 re-yasudasiliconstudiocojp
シリコンスタジオは常に人材を求めています
ご興味ある方は弊社 HP をご覧ください
CEDEC 2012
Appendix A 実装について
bull 実装自体は様々なアプローチが可能bull ここではデモの実装でのアプローチを紹介
CEDEC 2012
Appendix A 前計算について
bull F の計算ndash メッシュの全頂点からキューブマップにレンダリングndash ピクセルには頂点 ID とウェイトを出力
bull 直接光サンプルの計算ndash 頂点カラーを Stream Out でバッファに出力ndash 頂点シャドウあり
bull Light Probe の計算ndash 各 Probe の中心からキューブマップにレンダリングndash の対応する基底ベクトル同士を足し合わせた
ベクトル ( 直接光 + 間接光 ) を頂点カラーとして使用
CEDEC 2012
Appendix A ランタイム
bull 直接光の結果を Stream Out でバッファに出力ndash 頂点シャドウありndash カラーバッファへの書き込み OFFndash 複数オブジェクトの場合は単一バッファにオフ
セットを変えて出力
119897119889
CEDEC 2012
Appendix A ランタイム 係数
bull Compute Shader で を計算ndash は極めて横長の行列 ( 行 ~100程度 列 頂点数 )ndash は GPU が少々苦手な処理ではあるものの
タイリングベースの実装で高速に処理可能
iquest
119897119889119960 lowast119861119889minus1
CEDEC 2012
Appendix A ランタイム
bull Compute Shader で を計算ndash は極めて縦長 ( の転置と同サイズ ) なので素直に実装可能
iquest
119861119894119899119889 119960119897119894119899 119889 lowast
CEDEC 2012
Appendix A ランタイム 最終パス
bull を頂点カラーとして入力としてピクセル単位の直接光のシェーディングと合成して最終結果を得る
iquest +
CEDEC 2012
Appendix A ランタイム Light Probe(1)
bull Compute Shader でを計算ndash は縦長 ( 行 頂点数 timesSH係数の数 列 ~100程度 )
iquest
119880119907119900119897 119960119897119907119900119897 lowast
CEDEC 2012
Appendix A ランタイム Light Probe(2)
bull Probe を用いて Dynamic Objects をライティングndash 各 Light Probe が SH を 9係数で保持するため
3D Texture ではなく Structured-Buffer で保持ndash Vertex Shader 内で自力 Tri-Linear 補間
iquest +
CEDEC 2012
Appendix B 後半の補足
bull 大規模なシーンでの光の伝播bull 小領域間の光の伝播は個別に総当たりで計算
rArr小領域間の光の伝播は距離によって大きく減衰
実際は大規模シーンでも概ね二つ隣の小領域まで考慮すれば十分
CEDEC 2012
Appendix B 後半の補足
bull 小領域の境界
bull 小領域の境界部分が不連続になる rArr 小領域の境界部分は補間の必要がある
CEDEC 2012
bull スライドと論文で表記が違う記号があります
Appendix C 記号の表記
スライドでの表記 論文での表記
b
- Slide 1
- 発表の流れ
- 発表の流れ (2)
- 発表の概要
- 解説技術の特徴
- 注意点
- 発表の流れ (3)
- 発表の流れ (4)
- 間接光の概要
- 間接光の概要 (2)
- 解説手法の計算概要
- 間接光計算の解説手順
- 間接光計算の解説手順 (2)
- 間接光計算の解説手順 (3)
- 間接光計算の解説手順 (4)
- 間接光計算の解説手順 (5)
- 間接光計算の解説手順 (6)
- 間接光計算の考え方
- 間接光計算の考え方 (2)
- 間接光計算の考え方 (3)
- 間接光計算の考え方 (4)
- 間接光計算の考え方 (5)
- 間接光計算の解説手順 (7)
- 問題提起
- 間接光計算の解説手順 (8)
- キーアイディア
- キーアイディア (2)
- キーアイディア (3)
- キーアイディア (4)
- キーアイディア (5)
- キーアイディア (6)
- 間接光計算の解説手順 (9)
- 間接光計算の解説手順 (10)
- を求める
- を求める (2)
- を求める (3)
- 最適な基底
- サンプリングベースの基底
- サンプルの選び方について
- サンプリング行列
- サンプリング行列 (2)
- サンプリング行列 (3)
- サンプリング行列 (4)
- サンプリング行列 (5)
- サンプリング行列 (6)
- サンプリング行列 (7)
- 特異値分解(Singular Value Decomposition)
- 特異値分解(Singular Value Decomposition) (2)
- 特異値分解(Singular Value Decomposition) (3)
- 特異値分解(Singular Value Decomposition) (4)
- 特異値分解(Singular Value Decomposition) (5)
- 基底による直接光の近似
- アプローチの比較
- ハイブリッド手法の計算手順
- 係数の数の比較
- ランタイムの計算処理
- 係数の計算方法
- ランタイムの計算処理 (2)
- 間接光計算の解説手順 (11)
- ショートデモ
- 間接光計算の解説手順 (12)
- 間接光計算の解説手順 (13)
- Light Probe
- Light Probe (2)
- Light Probeによるライティング
- Light Probeによるライティング (2)
- 間接光計算の解説手順 (14)
- Light Probeの計算
- 動的なLight Probe
- 動的なLight Probe (2)
- 間接光計算の解説手順 (15)
- デモ
- デモ詳細
- パフォーマンス
- まとめ
- 発表の流れ (5)
- シーン分割による高速化の解説手順
- シーン分割による高速化の解説手順 (2)
- 問題提起 (14)
- 問題提起 (24)
- 問題提起 (34)
- 問題提起 (44)
- シーン分割による高速化の解説手順 (3)
- シーン分割による高速化の解説手順 (4)
- キーアイディア (16)
- キーアイディア (26)
- キーアイディア (36)
- キーアイディア (46)
- キーアイディア (56)
- キーアイディア (66)
- シーン分割による高速化の解説手順 (5)
- 光の伝播行列の計算 (17)
- 光の伝播行列の計算 (27)
- 光の伝播行列の計算 (37)
- 光の伝播行列の計算 (47)
- 光の伝播行列の計算 (57)
- 光の伝播行列の計算 (67)
- 光の伝播行列の計算 (77)
- シーン分割による高速化の解説手順 (6)
- シーン分割による高速化の解説手順 (7)
- 多重反射への拡張
- シーン分割による高速化の解説手順 (8)
- モジュールの導入 (13)
- モジュールの導入 (23)
- モジュールの導入 (33)
- シーン分割による高速化の解説手順 (9)
- デモ (2)
- 考察
- 発表の流れ (6)
- 発表内容のまとめ
- 著作権について
- 最後に
- Appendix A 実装について
- Appendix A 前計算について
- Appendix A ランタイム
- Appendix A ランタイム 係数
- Appendix A ランタイム
- Appendix A ランタイム 最終パス
- Appendix A ランタイム Light Probe(1)
- Appendix A ランタイム Light Probe(2)
- Appendix B 後半の補足
- Appendix B 後半の補足 (2)
- Appendix C 記号の表記
-
CEDEC 2012
Step1 背景オブジェクトの間接光計算 - 導入 - 手法の詳細解説 - ショートデモ Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
ショートデモ
CEDEC 2012
Step1 静的オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 - 手法概要の説明 - データ更新時における高速化の解説 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 静的オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 - 手法概要の説明 - データ更新時における高速化の解説 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Light Probe
bull 背景以外のオブジェクトには Light Probe を用いる
CEDEC 2012
Light Probe
bull Light Probe とはndash 全方位の入射光を保持する仮想的な球ndash 今回は球面調和関数 (SH) を使用
CEDEC 2012
Light Probe によるライティング
bull Light Probe を離散的に配置ndash シェーダで近傍の Light Probe の値を補間して
間接光の表現が可能
CEDEC 2012
Light Probe によるライティング
bull 時間の都合上詳細は割愛詳しくは下記書籍をご参照下さいndash Chapter8 「 KILLZONE2」 Light Probe自体の解説ndash Chapter9 「バイオハザード 5」 Light Probe によるラ
イティング
西川善司著「 3D ゲームファンのための
グラフィックス講座」
ここまではあくまで既存の手法の話
CEDEC 2012
Step1 静的オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 - 手法概要の説明 - データ更新時における高速化の解説 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Light Probe の計算
bull 通常 Light Probe は前計算した後更新しないndash Light Probe の計算は負荷が高い
今回は動的に Light Probe を更新する必要がある
CEDEC 2012
動的な Light Probe
bull 今回シーンのライティング結果は既知の状態の組み合わせに分解される
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
times120778 times120778 times120778times120778
CEDEC 2012
動的な Light Probe
bull 間接光と同様にそれぞれに対応した Light Probe を計算しておけば足し合わせで高速に計算可能
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
CEDEC 2012
Step1 背景オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
デモ
CEDEC 2012
デモ詳細
bull 背景オブジェクトndash 頂点数 10800 ( 頂点 )ndash基底の係数 22 (係数 )
bull Light Probendash Probe総数 500 (個 )ndash基底の係数 12 (係数 )ndash球面調和関数の係数 9 (係数 )
CEDEC 2012
パフォーマンス
bull 解像度は 1400800 で測定bull 実装には Compute Shader を使用bull 前計算約 45 分
ndash 2520 光源サンプルndash 20回反射まで考慮ndash 最適化で 10倍以上の高速化の余地あり
影あり 影なし 影なし GIなし
Geforce GTX 680 500 fps 800 fps 1500 fps
Geforce GTX 560 360 fps 440 fps 750 fps
Radeon 6630 M 80 fps 120 fps 280 fps
実装の Tips は Appendix に記載
CEDEC 2012
まとめ
bull 良い点ndash 非常に高速計算負荷が一定ndash 反射回数が無制限(行列 F に含められる )ndash 高速な Light Probe 計算ndash 様々な拡張
bull 悪い点ndash Light の位置方向を含めた前計算ndash 動的すぎるシーンは不可 (rarrDelta Radiance
Transfer)ndash 頂点カラーを念頭に置いたメッシュ分割頂点配置
ndash 複雑すぎない形状
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ
ndash 間接光計算手法の解説 (論文 4 節)ndash シーン分割による高速化の解説 (論文 5 節)
3 まとめ
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
問題提起 ( 14 )
bull 対象とする問題 シーンが複雑になった場合の計算負荷の増大
シンプルなシーン
より複雑なシーン
CEDEC 2012
問題提起 ( 24 )
bull 複雑なシーンでは1 メッシュ頂点数が増加2 必要な係数の数の増大 rArr 計算量の増大}
CEDEC 2012
問題提起 ( 34 )
bull 解決策シーンを複数の小領域に分割
rArr 適切に小領域を設定すればシーンの複雑さを 抑える事が可能bull 小領域の分割方法はユーザーが決定
CEDEC 2012
問題提起 ( 44 )
bull 各小領域内の間接光は前述の方法で計算可能bull 小領域間の光の伝播を別途考慮する必要がある
小領域間の光の伝播の高速な計算方法を解説
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
キーアイディア ( 16 )
bull 小領域間の光の伝播を個別に計算
CEDEC 2012
キーアイディア ( 26 )
bull 例として右rArr(中央)rArr左へ伝播する光を考える
キーアイディアでは多重反射を考慮しない光の伝播を考える
CEDEC 2012
キーアイディア ( 36 )
bull 小領域間の光の伝播は頂点間の影響に帰着
CEDEC 2012
キーアイディア ( 46 )
bull 小領域間の光の伝播行列 P を前計算119820 伝播先の小領域の頂点数119821 伝播元の小領域の頂点数
光の伝播行列P
119820行119821列[iquest ]P
CEDEC 2012
キーアイディア ( 56 )
bull 光の伝播行列 P を利用して光の伝播を高速に計算
[ 119956120783⋮119956119925]
119852 伝播元の小領域の頂点の色119941 伝播先の小領域の頂点の色
119820行119821列[iquest ][ 119941120783
⋮119941119924
] timesiquest P119820 伝播先の小領域の頂点数119821 伝播元の小領域の頂点数
CEDEC 2012
キーアイディア ( 66 )
bull 光の伝播を係数からの変換に修正
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
bull ライトフィールドという概念を導入
光の伝播行列の計算 ( 17 )
ライトフィールドは任意の点群を通過する
光を体系的に記録するためのデータ構造
境界面に注目
CEDEC 2012
光の伝播行列の計算 ( 27 )
bull 光の伝播行列 P を三要素に分割1 光の出射行列 Pout2 光の通過行列 Pthrough3 光の入射行列 Pin
右の小領域 中央の小領域 左の小領域P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 37 )
bull 光の出射行列 Poutndash 小領域 rArr ライトフィールド
119819120783 出射ライトフィールドのサンプル数119821 伝播元の小領域の頂点数
iquest119819120783行iquest
⋮⋮
⋮4 5 9
6
8
CEDEC 2012
光の伝播行列の計算 ( 47 )
bull 光の通過行列 Pthroughndash ライトフィールド rArr ライトフィールド
119819120784 出射ライトフィールドのサンプル数119819120783入射ライトフィールドのサンプル数
iquest119819120784行iquest
⋮⋮
⋮5 8
2
5 ⋯
CEDEC 2012
光の伝播行列の計算 ( 57 )
bull 光の入射行列 Pinndash ライトフィールド rArr 小領域
119820伝播先の小領域の頂点数119819120784 入射ライトフィールドのサンプル数
iquest119820行iquest
⋮
2 5 6
1
5⋮
Pin 計算時にヘミキューブ法などを用いて立体角を考慮
CEDEC 2012
光の伝播行列の計算 ( 67 )
bull 全ての小領域間の光の伝播は三種類の行列の組み合わせで計算可能
P = Pin times Pout上記例ではは再利用不可能だがは共通
P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 77 )
bull 光の伝播の計算のまとめ
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
多重反射への拡張
bull 間接光計算を反復実行
⋮
間接光計算
間接光計算
間接光計算
直接光
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
モジュールの導入 ( 13 )
bull モジュール( = 再利用可能な汎用小領域)の導入
bull 上記のようなシーンは「回転」も考慮すれば5種の立方体モジュールの組合わせで構成可能
3 方向壁 2 方向壁 2 方向壁 1 方向壁 0 方向壁
CEDEC 2012
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
モジュールの導入 ( 23 )
通過行列は(直進 右折 左折)の三種類
ライトフィールドデータを一つの行列に格納
特異値分解
データ量の削減及び計算の高速化
詳しくは論文 51 節参照
CEDEC 2012
モジュールの導入 ( 33 )
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
メリットは多いがシーンの自由度とのトレードオフ
モジュールの使い所は要検討
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
デモ
CEDEC 2012
考察
bull ライトフィールドは本当に必要か
bull 小領域間の位置関係が固定ならば(恐らく)不要
rArr レイトレーシング法で伝播行列 P を直接計算 した方が効率的bull 小領域を動的に入れ替える場合は必要
P = Pin times Pthrough times Pout
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ 3 まとめ
CEDEC 2012
発表内容のまとめ
bull Modular Radiance Transfer 法を解説ndash 長所
bull とにかく高速bull 多重反射を含んだ間接光が扱えるbull 技術のコア部分は汎用的で応用の余地が高い
ndash 短所bull 前計算を含め使い方に癖がある ( 実験を通してノウハウを蓄積すれば余り問題にならない )
ゲームへの応用は十分可能
CEDEC 2012
本スライド内で引用した論文の図の著作権は全て論文著者に帰属します
その他の図スライド本体挿絵等の著作権は
シリコンスタジオ株式会社に帰属します
著作権について
CEDEC 2012
最後に
御清聴ありがとうございました
httpwwwsiliconstudiocojppresentationsindexhtml
スライドデモは弊社 HP で近日公開
制作協力 河野 駿介 辻 俊晶 古家 亙 後藤 晋也 京田 文人 三谷 健一郎
問い合わせ先 田村 nk-tamurasiliconstudiocojp 安田 re-yasudasiliconstudiocojp
シリコンスタジオは常に人材を求めています
ご興味ある方は弊社 HP をご覧ください
CEDEC 2012
Appendix A 実装について
bull 実装自体は様々なアプローチが可能bull ここではデモの実装でのアプローチを紹介
CEDEC 2012
Appendix A 前計算について
bull F の計算ndash メッシュの全頂点からキューブマップにレンダリングndash ピクセルには頂点 ID とウェイトを出力
bull 直接光サンプルの計算ndash 頂点カラーを Stream Out でバッファに出力ndash 頂点シャドウあり
bull Light Probe の計算ndash 各 Probe の中心からキューブマップにレンダリングndash の対応する基底ベクトル同士を足し合わせた
ベクトル ( 直接光 + 間接光 ) を頂点カラーとして使用
CEDEC 2012
Appendix A ランタイム
bull 直接光の結果を Stream Out でバッファに出力ndash 頂点シャドウありndash カラーバッファへの書き込み OFFndash 複数オブジェクトの場合は単一バッファにオフ
セットを変えて出力
119897119889
CEDEC 2012
Appendix A ランタイム 係数
bull Compute Shader で を計算ndash は極めて横長の行列 ( 行 ~100程度 列 頂点数 )ndash は GPU が少々苦手な処理ではあるものの
タイリングベースの実装で高速に処理可能
iquest
119897119889119960 lowast119861119889minus1
CEDEC 2012
Appendix A ランタイム
bull Compute Shader で を計算ndash は極めて縦長 ( の転置と同サイズ ) なので素直に実装可能
iquest
119861119894119899119889 119960119897119894119899 119889 lowast
CEDEC 2012
Appendix A ランタイム 最終パス
bull を頂点カラーとして入力としてピクセル単位の直接光のシェーディングと合成して最終結果を得る
iquest +
CEDEC 2012
Appendix A ランタイム Light Probe(1)
bull Compute Shader でを計算ndash は縦長 ( 行 頂点数 timesSH係数の数 列 ~100程度 )
iquest
119880119907119900119897 119960119897119907119900119897 lowast
CEDEC 2012
Appendix A ランタイム Light Probe(2)
bull Probe を用いて Dynamic Objects をライティングndash 各 Light Probe が SH を 9係数で保持するため
3D Texture ではなく Structured-Buffer で保持ndash Vertex Shader 内で自力 Tri-Linear 補間
iquest +
CEDEC 2012
Appendix B 後半の補足
bull 大規模なシーンでの光の伝播bull 小領域間の光の伝播は個別に総当たりで計算
rArr小領域間の光の伝播は距離によって大きく減衰
実際は大規模シーンでも概ね二つ隣の小領域まで考慮すれば十分
CEDEC 2012
Appendix B 後半の補足
bull 小領域の境界
bull 小領域の境界部分が不連続になる rArr 小領域の境界部分は補間の必要がある
CEDEC 2012
bull スライドと論文で表記が違う記号があります
Appendix C 記号の表記
スライドでの表記 論文での表記
b
- Slide 1
- 発表の流れ
- 発表の流れ (2)
- 発表の概要
- 解説技術の特徴
- 注意点
- 発表の流れ (3)
- 発表の流れ (4)
- 間接光の概要
- 間接光の概要 (2)
- 解説手法の計算概要
- 間接光計算の解説手順
- 間接光計算の解説手順 (2)
- 間接光計算の解説手順 (3)
- 間接光計算の解説手順 (4)
- 間接光計算の解説手順 (5)
- 間接光計算の解説手順 (6)
- 間接光計算の考え方
- 間接光計算の考え方 (2)
- 間接光計算の考え方 (3)
- 間接光計算の考え方 (4)
- 間接光計算の考え方 (5)
- 間接光計算の解説手順 (7)
- 問題提起
- 間接光計算の解説手順 (8)
- キーアイディア
- キーアイディア (2)
- キーアイディア (3)
- キーアイディア (4)
- キーアイディア (5)
- キーアイディア (6)
- 間接光計算の解説手順 (9)
- 間接光計算の解説手順 (10)
- を求める
- を求める (2)
- を求める (3)
- 最適な基底
- サンプリングベースの基底
- サンプルの選び方について
- サンプリング行列
- サンプリング行列 (2)
- サンプリング行列 (3)
- サンプリング行列 (4)
- サンプリング行列 (5)
- サンプリング行列 (6)
- サンプリング行列 (7)
- 特異値分解(Singular Value Decomposition)
- 特異値分解(Singular Value Decomposition) (2)
- 特異値分解(Singular Value Decomposition) (3)
- 特異値分解(Singular Value Decomposition) (4)
- 特異値分解(Singular Value Decomposition) (5)
- 基底による直接光の近似
- アプローチの比較
- ハイブリッド手法の計算手順
- 係数の数の比較
- ランタイムの計算処理
- 係数の計算方法
- ランタイムの計算処理 (2)
- 間接光計算の解説手順 (11)
- ショートデモ
- 間接光計算の解説手順 (12)
- 間接光計算の解説手順 (13)
- Light Probe
- Light Probe (2)
- Light Probeによるライティング
- Light Probeによるライティング (2)
- 間接光計算の解説手順 (14)
- Light Probeの計算
- 動的なLight Probe
- 動的なLight Probe (2)
- 間接光計算の解説手順 (15)
- デモ
- デモ詳細
- パフォーマンス
- まとめ
- 発表の流れ (5)
- シーン分割による高速化の解説手順
- シーン分割による高速化の解説手順 (2)
- 問題提起 (14)
- 問題提起 (24)
- 問題提起 (34)
- 問題提起 (44)
- シーン分割による高速化の解説手順 (3)
- シーン分割による高速化の解説手順 (4)
- キーアイディア (16)
- キーアイディア (26)
- キーアイディア (36)
- キーアイディア (46)
- キーアイディア (56)
- キーアイディア (66)
- シーン分割による高速化の解説手順 (5)
- 光の伝播行列の計算 (17)
- 光の伝播行列の計算 (27)
- 光の伝播行列の計算 (37)
- 光の伝播行列の計算 (47)
- 光の伝播行列の計算 (57)
- 光の伝播行列の計算 (67)
- 光の伝播行列の計算 (77)
- シーン分割による高速化の解説手順 (6)
- シーン分割による高速化の解説手順 (7)
- 多重反射への拡張
- シーン分割による高速化の解説手順 (8)
- モジュールの導入 (13)
- モジュールの導入 (23)
- モジュールの導入 (33)
- シーン分割による高速化の解説手順 (9)
- デモ (2)
- 考察
- 発表の流れ (6)
- 発表内容のまとめ
- 著作権について
- 最後に
- Appendix A 実装について
- Appendix A 前計算について
- Appendix A ランタイム
- Appendix A ランタイム 係数
- Appendix A ランタイム
- Appendix A ランタイム 最終パス
- Appendix A ランタイム Light Probe(1)
- Appendix A ランタイム Light Probe(2)
- Appendix B 後半の補足
- Appendix B 後半の補足 (2)
- Appendix C 記号の表記
-
CEDEC 2012
ショートデモ
CEDEC 2012
Step1 静的オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 - 手法概要の説明 - データ更新時における高速化の解説 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 静的オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 - 手法概要の説明 - データ更新時における高速化の解説 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Light Probe
bull 背景以外のオブジェクトには Light Probe を用いる
CEDEC 2012
Light Probe
bull Light Probe とはndash 全方位の入射光を保持する仮想的な球ndash 今回は球面調和関数 (SH) を使用
CEDEC 2012
Light Probe によるライティング
bull Light Probe を離散的に配置ndash シェーダで近傍の Light Probe の値を補間して
間接光の表現が可能
CEDEC 2012
Light Probe によるライティング
bull 時間の都合上詳細は割愛詳しくは下記書籍をご参照下さいndash Chapter8 「 KILLZONE2」 Light Probe自体の解説ndash Chapter9 「バイオハザード 5」 Light Probe によるラ
イティング
西川善司著「 3D ゲームファンのための
グラフィックス講座」
ここまではあくまで既存の手法の話
CEDEC 2012
Step1 静的オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 - 手法概要の説明 - データ更新時における高速化の解説 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Light Probe の計算
bull 通常 Light Probe は前計算した後更新しないndash Light Probe の計算は負荷が高い
今回は動的に Light Probe を更新する必要がある
CEDEC 2012
動的な Light Probe
bull 今回シーンのライティング結果は既知の状態の組み合わせに分解される
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
times120778 times120778 times120778times120778
CEDEC 2012
動的な Light Probe
bull 間接光と同様にそれぞれに対応した Light Probe を計算しておけば足し合わせで高速に計算可能
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
CEDEC 2012
Step1 背景オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
デモ
CEDEC 2012
デモ詳細
bull 背景オブジェクトndash 頂点数 10800 ( 頂点 )ndash基底の係数 22 (係数 )
bull Light Probendash Probe総数 500 (個 )ndash基底の係数 12 (係数 )ndash球面調和関数の係数 9 (係数 )
CEDEC 2012
パフォーマンス
bull 解像度は 1400800 で測定bull 実装には Compute Shader を使用bull 前計算約 45 分
ndash 2520 光源サンプルndash 20回反射まで考慮ndash 最適化で 10倍以上の高速化の余地あり
影あり 影なし 影なし GIなし
Geforce GTX 680 500 fps 800 fps 1500 fps
Geforce GTX 560 360 fps 440 fps 750 fps
Radeon 6630 M 80 fps 120 fps 280 fps
実装の Tips は Appendix に記載
CEDEC 2012
まとめ
bull 良い点ndash 非常に高速計算負荷が一定ndash 反射回数が無制限(行列 F に含められる )ndash 高速な Light Probe 計算ndash 様々な拡張
bull 悪い点ndash Light の位置方向を含めた前計算ndash 動的すぎるシーンは不可 (rarrDelta Radiance
Transfer)ndash 頂点カラーを念頭に置いたメッシュ分割頂点配置
ndash 複雑すぎない形状
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ
ndash 間接光計算手法の解説 (論文 4 節)ndash シーン分割による高速化の解説 (論文 5 節)
3 まとめ
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
問題提起 ( 14 )
bull 対象とする問題 シーンが複雑になった場合の計算負荷の増大
シンプルなシーン
より複雑なシーン
CEDEC 2012
問題提起 ( 24 )
bull 複雑なシーンでは1 メッシュ頂点数が増加2 必要な係数の数の増大 rArr 計算量の増大}
CEDEC 2012
問題提起 ( 34 )
bull 解決策シーンを複数の小領域に分割
rArr 適切に小領域を設定すればシーンの複雑さを 抑える事が可能bull 小領域の分割方法はユーザーが決定
CEDEC 2012
問題提起 ( 44 )
bull 各小領域内の間接光は前述の方法で計算可能bull 小領域間の光の伝播を別途考慮する必要がある
小領域間の光の伝播の高速な計算方法を解説
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
キーアイディア ( 16 )
bull 小領域間の光の伝播を個別に計算
CEDEC 2012
キーアイディア ( 26 )
bull 例として右rArr(中央)rArr左へ伝播する光を考える
キーアイディアでは多重反射を考慮しない光の伝播を考える
CEDEC 2012
キーアイディア ( 36 )
bull 小領域間の光の伝播は頂点間の影響に帰着
CEDEC 2012
キーアイディア ( 46 )
bull 小領域間の光の伝播行列 P を前計算119820 伝播先の小領域の頂点数119821 伝播元の小領域の頂点数
光の伝播行列P
119820行119821列[iquest ]P
CEDEC 2012
キーアイディア ( 56 )
bull 光の伝播行列 P を利用して光の伝播を高速に計算
[ 119956120783⋮119956119925]
119852 伝播元の小領域の頂点の色119941 伝播先の小領域の頂点の色
119820行119821列[iquest ][ 119941120783
⋮119941119924
] timesiquest P119820 伝播先の小領域の頂点数119821 伝播元の小領域の頂点数
CEDEC 2012
キーアイディア ( 66 )
bull 光の伝播を係数からの変換に修正
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
bull ライトフィールドという概念を導入
光の伝播行列の計算 ( 17 )
ライトフィールドは任意の点群を通過する
光を体系的に記録するためのデータ構造
境界面に注目
CEDEC 2012
光の伝播行列の計算 ( 27 )
bull 光の伝播行列 P を三要素に分割1 光の出射行列 Pout2 光の通過行列 Pthrough3 光の入射行列 Pin
右の小領域 中央の小領域 左の小領域P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 37 )
bull 光の出射行列 Poutndash 小領域 rArr ライトフィールド
119819120783 出射ライトフィールドのサンプル数119821 伝播元の小領域の頂点数
iquest119819120783行iquest
⋮⋮
⋮4 5 9
6
8
CEDEC 2012
光の伝播行列の計算 ( 47 )
bull 光の通過行列 Pthroughndash ライトフィールド rArr ライトフィールド
119819120784 出射ライトフィールドのサンプル数119819120783入射ライトフィールドのサンプル数
iquest119819120784行iquest
⋮⋮
⋮5 8
2
5 ⋯
CEDEC 2012
光の伝播行列の計算 ( 57 )
bull 光の入射行列 Pinndash ライトフィールド rArr 小領域
119820伝播先の小領域の頂点数119819120784 入射ライトフィールドのサンプル数
iquest119820行iquest
⋮
2 5 6
1
5⋮
Pin 計算時にヘミキューブ法などを用いて立体角を考慮
CEDEC 2012
光の伝播行列の計算 ( 67 )
bull 全ての小領域間の光の伝播は三種類の行列の組み合わせで計算可能
P = Pin times Pout上記例ではは再利用不可能だがは共通
P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 77 )
bull 光の伝播の計算のまとめ
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
多重反射への拡張
bull 間接光計算を反復実行
⋮
間接光計算
間接光計算
間接光計算
直接光
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
モジュールの導入 ( 13 )
bull モジュール( = 再利用可能な汎用小領域)の導入
bull 上記のようなシーンは「回転」も考慮すれば5種の立方体モジュールの組合わせで構成可能
3 方向壁 2 方向壁 2 方向壁 1 方向壁 0 方向壁
CEDEC 2012
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
モジュールの導入 ( 23 )
通過行列は(直進 右折 左折)の三種類
ライトフィールドデータを一つの行列に格納
特異値分解
データ量の削減及び計算の高速化
詳しくは論文 51 節参照
CEDEC 2012
モジュールの導入 ( 33 )
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
メリットは多いがシーンの自由度とのトレードオフ
モジュールの使い所は要検討
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
デモ
CEDEC 2012
考察
bull ライトフィールドは本当に必要か
bull 小領域間の位置関係が固定ならば(恐らく)不要
rArr レイトレーシング法で伝播行列 P を直接計算 した方が効率的bull 小領域を動的に入れ替える場合は必要
P = Pin times Pthrough times Pout
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ 3 まとめ
CEDEC 2012
発表内容のまとめ
bull Modular Radiance Transfer 法を解説ndash 長所
bull とにかく高速bull 多重反射を含んだ間接光が扱えるbull 技術のコア部分は汎用的で応用の余地が高い
ndash 短所bull 前計算を含め使い方に癖がある ( 実験を通してノウハウを蓄積すれば余り問題にならない )
ゲームへの応用は十分可能
CEDEC 2012
本スライド内で引用した論文の図の著作権は全て論文著者に帰属します
その他の図スライド本体挿絵等の著作権は
シリコンスタジオ株式会社に帰属します
著作権について
CEDEC 2012
最後に
御清聴ありがとうございました
httpwwwsiliconstudiocojppresentationsindexhtml
スライドデモは弊社 HP で近日公開
制作協力 河野 駿介 辻 俊晶 古家 亙 後藤 晋也 京田 文人 三谷 健一郎
問い合わせ先 田村 nk-tamurasiliconstudiocojp 安田 re-yasudasiliconstudiocojp
シリコンスタジオは常に人材を求めています
ご興味ある方は弊社 HP をご覧ください
CEDEC 2012
Appendix A 実装について
bull 実装自体は様々なアプローチが可能bull ここではデモの実装でのアプローチを紹介
CEDEC 2012
Appendix A 前計算について
bull F の計算ndash メッシュの全頂点からキューブマップにレンダリングndash ピクセルには頂点 ID とウェイトを出力
bull 直接光サンプルの計算ndash 頂点カラーを Stream Out でバッファに出力ndash 頂点シャドウあり
bull Light Probe の計算ndash 各 Probe の中心からキューブマップにレンダリングndash の対応する基底ベクトル同士を足し合わせた
ベクトル ( 直接光 + 間接光 ) を頂点カラーとして使用
CEDEC 2012
Appendix A ランタイム
bull 直接光の結果を Stream Out でバッファに出力ndash 頂点シャドウありndash カラーバッファへの書き込み OFFndash 複数オブジェクトの場合は単一バッファにオフ
セットを変えて出力
119897119889
CEDEC 2012
Appendix A ランタイム 係数
bull Compute Shader で を計算ndash は極めて横長の行列 ( 行 ~100程度 列 頂点数 )ndash は GPU が少々苦手な処理ではあるものの
タイリングベースの実装で高速に処理可能
iquest
119897119889119960 lowast119861119889minus1
CEDEC 2012
Appendix A ランタイム
bull Compute Shader で を計算ndash は極めて縦長 ( の転置と同サイズ ) なので素直に実装可能
iquest
119861119894119899119889 119960119897119894119899 119889 lowast
CEDEC 2012
Appendix A ランタイム 最終パス
bull を頂点カラーとして入力としてピクセル単位の直接光のシェーディングと合成して最終結果を得る
iquest +
CEDEC 2012
Appendix A ランタイム Light Probe(1)
bull Compute Shader でを計算ndash は縦長 ( 行 頂点数 timesSH係数の数 列 ~100程度 )
iquest
119880119907119900119897 119960119897119907119900119897 lowast
CEDEC 2012
Appendix A ランタイム Light Probe(2)
bull Probe を用いて Dynamic Objects をライティングndash 各 Light Probe が SH を 9係数で保持するため
3D Texture ではなく Structured-Buffer で保持ndash Vertex Shader 内で自力 Tri-Linear 補間
iquest +
CEDEC 2012
Appendix B 後半の補足
bull 大規模なシーンでの光の伝播bull 小領域間の光の伝播は個別に総当たりで計算
rArr小領域間の光の伝播は距離によって大きく減衰
実際は大規模シーンでも概ね二つ隣の小領域まで考慮すれば十分
CEDEC 2012
Appendix B 後半の補足
bull 小領域の境界
bull 小領域の境界部分が不連続になる rArr 小領域の境界部分は補間の必要がある
CEDEC 2012
bull スライドと論文で表記が違う記号があります
Appendix C 記号の表記
スライドでの表記 論文での表記
b
- Slide 1
- 発表の流れ
- 発表の流れ (2)
- 発表の概要
- 解説技術の特徴
- 注意点
- 発表の流れ (3)
- 発表の流れ (4)
- 間接光の概要
- 間接光の概要 (2)
- 解説手法の計算概要
- 間接光計算の解説手順
- 間接光計算の解説手順 (2)
- 間接光計算の解説手順 (3)
- 間接光計算の解説手順 (4)
- 間接光計算の解説手順 (5)
- 間接光計算の解説手順 (6)
- 間接光計算の考え方
- 間接光計算の考え方 (2)
- 間接光計算の考え方 (3)
- 間接光計算の考え方 (4)
- 間接光計算の考え方 (5)
- 間接光計算の解説手順 (7)
- 問題提起
- 間接光計算の解説手順 (8)
- キーアイディア
- キーアイディア (2)
- キーアイディア (3)
- キーアイディア (4)
- キーアイディア (5)
- キーアイディア (6)
- 間接光計算の解説手順 (9)
- 間接光計算の解説手順 (10)
- を求める
- を求める (2)
- を求める (3)
- 最適な基底
- サンプリングベースの基底
- サンプルの選び方について
- サンプリング行列
- サンプリング行列 (2)
- サンプリング行列 (3)
- サンプリング行列 (4)
- サンプリング行列 (5)
- サンプリング行列 (6)
- サンプリング行列 (7)
- 特異値分解(Singular Value Decomposition)
- 特異値分解(Singular Value Decomposition) (2)
- 特異値分解(Singular Value Decomposition) (3)
- 特異値分解(Singular Value Decomposition) (4)
- 特異値分解(Singular Value Decomposition) (5)
- 基底による直接光の近似
- アプローチの比較
- ハイブリッド手法の計算手順
- 係数の数の比較
- ランタイムの計算処理
- 係数の計算方法
- ランタイムの計算処理 (2)
- 間接光計算の解説手順 (11)
- ショートデモ
- 間接光計算の解説手順 (12)
- 間接光計算の解説手順 (13)
- Light Probe
- Light Probe (2)
- Light Probeによるライティング
- Light Probeによるライティング (2)
- 間接光計算の解説手順 (14)
- Light Probeの計算
- 動的なLight Probe
- 動的なLight Probe (2)
- 間接光計算の解説手順 (15)
- デモ
- デモ詳細
- パフォーマンス
- まとめ
- 発表の流れ (5)
- シーン分割による高速化の解説手順
- シーン分割による高速化の解説手順 (2)
- 問題提起 (14)
- 問題提起 (24)
- 問題提起 (34)
- 問題提起 (44)
- シーン分割による高速化の解説手順 (3)
- シーン分割による高速化の解説手順 (4)
- キーアイディア (16)
- キーアイディア (26)
- キーアイディア (36)
- キーアイディア (46)
- キーアイディア (56)
- キーアイディア (66)
- シーン分割による高速化の解説手順 (5)
- 光の伝播行列の計算 (17)
- 光の伝播行列の計算 (27)
- 光の伝播行列の計算 (37)
- 光の伝播行列の計算 (47)
- 光の伝播行列の計算 (57)
- 光の伝播行列の計算 (67)
- 光の伝播行列の計算 (77)
- シーン分割による高速化の解説手順 (6)
- シーン分割による高速化の解説手順 (7)
- 多重反射への拡張
- シーン分割による高速化の解説手順 (8)
- モジュールの導入 (13)
- モジュールの導入 (23)
- モジュールの導入 (33)
- シーン分割による高速化の解説手順 (9)
- デモ (2)
- 考察
- 発表の流れ (6)
- 発表内容のまとめ
- 著作権について
- 最後に
- Appendix A 実装について
- Appendix A 前計算について
- Appendix A ランタイム
- Appendix A ランタイム 係数
- Appendix A ランタイム
- Appendix A ランタイム 最終パス
- Appendix A ランタイム Light Probe(1)
- Appendix A ランタイム Light Probe(2)
- Appendix B 後半の補足
- Appendix B 後半の補足 (2)
- Appendix C 記号の表記
-
CEDEC 2012
Step1 静的オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 - 手法概要の説明 - データ更新時における高速化の解説 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Step1 静的オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 - 手法概要の説明 - データ更新時における高速化の解説 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Light Probe
bull 背景以外のオブジェクトには Light Probe を用いる
CEDEC 2012
Light Probe
bull Light Probe とはndash 全方位の入射光を保持する仮想的な球ndash 今回は球面調和関数 (SH) を使用
CEDEC 2012
Light Probe によるライティング
bull Light Probe を離散的に配置ndash シェーダで近傍の Light Probe の値を補間して
間接光の表現が可能
CEDEC 2012
Light Probe によるライティング
bull 時間の都合上詳細は割愛詳しくは下記書籍をご参照下さいndash Chapter8 「 KILLZONE2」 Light Probe自体の解説ndash Chapter9 「バイオハザード 5」 Light Probe によるラ
イティング
西川善司著「 3D ゲームファンのための
グラフィックス講座」
ここまではあくまで既存の手法の話
CEDEC 2012
Step1 静的オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 - 手法概要の説明 - データ更新時における高速化の解説 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Light Probe の計算
bull 通常 Light Probe は前計算した後更新しないndash Light Probe の計算は負荷が高い
今回は動的に Light Probe を更新する必要がある
CEDEC 2012
動的な Light Probe
bull 今回シーンのライティング結果は既知の状態の組み合わせに分解される
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
times120778 times120778 times120778times120778
CEDEC 2012
動的な Light Probe
bull 間接光と同様にそれぞれに対応した Light Probe を計算しておけば足し合わせで高速に計算可能
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
CEDEC 2012
Step1 背景オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
デモ
CEDEC 2012
デモ詳細
bull 背景オブジェクトndash 頂点数 10800 ( 頂点 )ndash基底の係数 22 (係数 )
bull Light Probendash Probe総数 500 (個 )ndash基底の係数 12 (係数 )ndash球面調和関数の係数 9 (係数 )
CEDEC 2012
パフォーマンス
bull 解像度は 1400800 で測定bull 実装には Compute Shader を使用bull 前計算約 45 分
ndash 2520 光源サンプルndash 20回反射まで考慮ndash 最適化で 10倍以上の高速化の余地あり
影あり 影なし 影なし GIなし
Geforce GTX 680 500 fps 800 fps 1500 fps
Geforce GTX 560 360 fps 440 fps 750 fps
Radeon 6630 M 80 fps 120 fps 280 fps
実装の Tips は Appendix に記載
CEDEC 2012
まとめ
bull 良い点ndash 非常に高速計算負荷が一定ndash 反射回数が無制限(行列 F に含められる )ndash 高速な Light Probe 計算ndash 様々な拡張
bull 悪い点ndash Light の位置方向を含めた前計算ndash 動的すぎるシーンは不可 (rarrDelta Radiance
Transfer)ndash 頂点カラーを念頭に置いたメッシュ分割頂点配置
ndash 複雑すぎない形状
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ
ndash 間接光計算手法の解説 (論文 4 節)ndash シーン分割による高速化の解説 (論文 5 節)
3 まとめ
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
問題提起 ( 14 )
bull 対象とする問題 シーンが複雑になった場合の計算負荷の増大
シンプルなシーン
より複雑なシーン
CEDEC 2012
問題提起 ( 24 )
bull 複雑なシーンでは1 メッシュ頂点数が増加2 必要な係数の数の増大 rArr 計算量の増大}
CEDEC 2012
問題提起 ( 34 )
bull 解決策シーンを複数の小領域に分割
rArr 適切に小領域を設定すればシーンの複雑さを 抑える事が可能bull 小領域の分割方法はユーザーが決定
CEDEC 2012
問題提起 ( 44 )
bull 各小領域内の間接光は前述の方法で計算可能bull 小領域間の光の伝播を別途考慮する必要がある
小領域間の光の伝播の高速な計算方法を解説
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
キーアイディア ( 16 )
bull 小領域間の光の伝播を個別に計算
CEDEC 2012
キーアイディア ( 26 )
bull 例として右rArr(中央)rArr左へ伝播する光を考える
キーアイディアでは多重反射を考慮しない光の伝播を考える
CEDEC 2012
キーアイディア ( 36 )
bull 小領域間の光の伝播は頂点間の影響に帰着
CEDEC 2012
キーアイディア ( 46 )
bull 小領域間の光の伝播行列 P を前計算119820 伝播先の小領域の頂点数119821 伝播元の小領域の頂点数
光の伝播行列P
119820行119821列[iquest ]P
CEDEC 2012
キーアイディア ( 56 )
bull 光の伝播行列 P を利用して光の伝播を高速に計算
[ 119956120783⋮119956119925]
119852 伝播元の小領域の頂点の色119941 伝播先の小領域の頂点の色
119820行119821列[iquest ][ 119941120783
⋮119941119924
] timesiquest P119820 伝播先の小領域の頂点数119821 伝播元の小領域の頂点数
CEDEC 2012
キーアイディア ( 66 )
bull 光の伝播を係数からの変換に修正
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
bull ライトフィールドという概念を導入
光の伝播行列の計算 ( 17 )
ライトフィールドは任意の点群を通過する
光を体系的に記録するためのデータ構造
境界面に注目
CEDEC 2012
光の伝播行列の計算 ( 27 )
bull 光の伝播行列 P を三要素に分割1 光の出射行列 Pout2 光の通過行列 Pthrough3 光の入射行列 Pin
右の小領域 中央の小領域 左の小領域P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 37 )
bull 光の出射行列 Poutndash 小領域 rArr ライトフィールド
119819120783 出射ライトフィールドのサンプル数119821 伝播元の小領域の頂点数
iquest119819120783行iquest
⋮⋮
⋮4 5 9
6
8
CEDEC 2012
光の伝播行列の計算 ( 47 )
bull 光の通過行列 Pthroughndash ライトフィールド rArr ライトフィールド
119819120784 出射ライトフィールドのサンプル数119819120783入射ライトフィールドのサンプル数
iquest119819120784行iquest
⋮⋮
⋮5 8
2
5 ⋯
CEDEC 2012
光の伝播行列の計算 ( 57 )
bull 光の入射行列 Pinndash ライトフィールド rArr 小領域
119820伝播先の小領域の頂点数119819120784 入射ライトフィールドのサンプル数
iquest119820行iquest
⋮
2 5 6
1
5⋮
Pin 計算時にヘミキューブ法などを用いて立体角を考慮
CEDEC 2012
光の伝播行列の計算 ( 67 )
bull 全ての小領域間の光の伝播は三種類の行列の組み合わせで計算可能
P = Pin times Pout上記例ではは再利用不可能だがは共通
P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 77 )
bull 光の伝播の計算のまとめ
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
多重反射への拡張
bull 間接光計算を反復実行
⋮
間接光計算
間接光計算
間接光計算
直接光
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
モジュールの導入 ( 13 )
bull モジュール( = 再利用可能な汎用小領域)の導入
bull 上記のようなシーンは「回転」も考慮すれば5種の立方体モジュールの組合わせで構成可能
3 方向壁 2 方向壁 2 方向壁 1 方向壁 0 方向壁
CEDEC 2012
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
モジュールの導入 ( 23 )
通過行列は(直進 右折 左折)の三種類
ライトフィールドデータを一つの行列に格納
特異値分解
データ量の削減及び計算の高速化
詳しくは論文 51 節参照
CEDEC 2012
モジュールの導入 ( 33 )
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
メリットは多いがシーンの自由度とのトレードオフ
モジュールの使い所は要検討
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
デモ
CEDEC 2012
考察
bull ライトフィールドは本当に必要か
bull 小領域間の位置関係が固定ならば(恐らく)不要
rArr レイトレーシング法で伝播行列 P を直接計算 した方が効率的bull 小領域を動的に入れ替える場合は必要
P = Pin times Pthrough times Pout
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ 3 まとめ
CEDEC 2012
発表内容のまとめ
bull Modular Radiance Transfer 法を解説ndash 長所
bull とにかく高速bull 多重反射を含んだ間接光が扱えるbull 技術のコア部分は汎用的で応用の余地が高い
ndash 短所bull 前計算を含め使い方に癖がある ( 実験を通してノウハウを蓄積すれば余り問題にならない )
ゲームへの応用は十分可能
CEDEC 2012
本スライド内で引用した論文の図の著作権は全て論文著者に帰属します
その他の図スライド本体挿絵等の著作権は
シリコンスタジオ株式会社に帰属します
著作権について
CEDEC 2012
最後に
御清聴ありがとうございました
httpwwwsiliconstudiocojppresentationsindexhtml
スライドデモは弊社 HP で近日公開
制作協力 河野 駿介 辻 俊晶 古家 亙 後藤 晋也 京田 文人 三谷 健一郎
問い合わせ先 田村 nk-tamurasiliconstudiocojp 安田 re-yasudasiliconstudiocojp
シリコンスタジオは常に人材を求めています
ご興味ある方は弊社 HP をご覧ください
CEDEC 2012
Appendix A 実装について
bull 実装自体は様々なアプローチが可能bull ここではデモの実装でのアプローチを紹介
CEDEC 2012
Appendix A 前計算について
bull F の計算ndash メッシュの全頂点からキューブマップにレンダリングndash ピクセルには頂点 ID とウェイトを出力
bull 直接光サンプルの計算ndash 頂点カラーを Stream Out でバッファに出力ndash 頂点シャドウあり
bull Light Probe の計算ndash 各 Probe の中心からキューブマップにレンダリングndash の対応する基底ベクトル同士を足し合わせた
ベクトル ( 直接光 + 間接光 ) を頂点カラーとして使用
CEDEC 2012
Appendix A ランタイム
bull 直接光の結果を Stream Out でバッファに出力ndash 頂点シャドウありndash カラーバッファへの書き込み OFFndash 複数オブジェクトの場合は単一バッファにオフ
セットを変えて出力
119897119889
CEDEC 2012
Appendix A ランタイム 係数
bull Compute Shader で を計算ndash は極めて横長の行列 ( 行 ~100程度 列 頂点数 )ndash は GPU が少々苦手な処理ではあるものの
タイリングベースの実装で高速に処理可能
iquest
119897119889119960 lowast119861119889minus1
CEDEC 2012
Appendix A ランタイム
bull Compute Shader で を計算ndash は極めて縦長 ( の転置と同サイズ ) なので素直に実装可能
iquest
119861119894119899119889 119960119897119894119899 119889 lowast
CEDEC 2012
Appendix A ランタイム 最終パス
bull を頂点カラーとして入力としてピクセル単位の直接光のシェーディングと合成して最終結果を得る
iquest +
CEDEC 2012
Appendix A ランタイム Light Probe(1)
bull Compute Shader でを計算ndash は縦長 ( 行 頂点数 timesSH係数の数 列 ~100程度 )
iquest
119880119907119900119897 119960119897119907119900119897 lowast
CEDEC 2012
Appendix A ランタイム Light Probe(2)
bull Probe を用いて Dynamic Objects をライティングndash 各 Light Probe が SH を 9係数で保持するため
3D Texture ではなく Structured-Buffer で保持ndash Vertex Shader 内で自力 Tri-Linear 補間
iquest +
CEDEC 2012
Appendix B 後半の補足
bull 大規模なシーンでの光の伝播bull 小領域間の光の伝播は個別に総当たりで計算
rArr小領域間の光の伝播は距離によって大きく減衰
実際は大規模シーンでも概ね二つ隣の小領域まで考慮すれば十分
CEDEC 2012
Appendix B 後半の補足
bull 小領域の境界
bull 小領域の境界部分が不連続になる rArr 小領域の境界部分は補間の必要がある
CEDEC 2012
bull スライドと論文で表記が違う記号があります
Appendix C 記号の表記
スライドでの表記 論文での表記
b
- Slide 1
- 発表の流れ
- 発表の流れ (2)
- 発表の概要
- 解説技術の特徴
- 注意点
- 発表の流れ (3)
- 発表の流れ (4)
- 間接光の概要
- 間接光の概要 (2)
- 解説手法の計算概要
- 間接光計算の解説手順
- 間接光計算の解説手順 (2)
- 間接光計算の解説手順 (3)
- 間接光計算の解説手順 (4)
- 間接光計算の解説手順 (5)
- 間接光計算の解説手順 (6)
- 間接光計算の考え方
- 間接光計算の考え方 (2)
- 間接光計算の考え方 (3)
- 間接光計算の考え方 (4)
- 間接光計算の考え方 (5)
- 間接光計算の解説手順 (7)
- 問題提起
- 間接光計算の解説手順 (8)
- キーアイディア
- キーアイディア (2)
- キーアイディア (3)
- キーアイディア (4)
- キーアイディア (5)
- キーアイディア (6)
- 間接光計算の解説手順 (9)
- 間接光計算の解説手順 (10)
- を求める
- を求める (2)
- を求める (3)
- 最適な基底
- サンプリングベースの基底
- サンプルの選び方について
- サンプリング行列
- サンプリング行列 (2)
- サンプリング行列 (3)
- サンプリング行列 (4)
- サンプリング行列 (5)
- サンプリング行列 (6)
- サンプリング行列 (7)
- 特異値分解(Singular Value Decomposition)
- 特異値分解(Singular Value Decomposition) (2)
- 特異値分解(Singular Value Decomposition) (3)
- 特異値分解(Singular Value Decomposition) (4)
- 特異値分解(Singular Value Decomposition) (5)
- 基底による直接光の近似
- アプローチの比較
- ハイブリッド手法の計算手順
- 係数の数の比較
- ランタイムの計算処理
- 係数の計算方法
- ランタイムの計算処理 (2)
- 間接光計算の解説手順 (11)
- ショートデモ
- 間接光計算の解説手順 (12)
- 間接光計算の解説手順 (13)
- Light Probe
- Light Probe (2)
- Light Probeによるライティング
- Light Probeによるライティング (2)
- 間接光計算の解説手順 (14)
- Light Probeの計算
- 動的なLight Probe
- 動的なLight Probe (2)
- 間接光計算の解説手順 (15)
- デモ
- デモ詳細
- パフォーマンス
- まとめ
- 発表の流れ (5)
- シーン分割による高速化の解説手順
- シーン分割による高速化の解説手順 (2)
- 問題提起 (14)
- 問題提起 (24)
- 問題提起 (34)
- 問題提起 (44)
- シーン分割による高速化の解説手順 (3)
- シーン分割による高速化の解説手順 (4)
- キーアイディア (16)
- キーアイディア (26)
- キーアイディア (36)
- キーアイディア (46)
- キーアイディア (56)
- キーアイディア (66)
- シーン分割による高速化の解説手順 (5)
- 光の伝播行列の計算 (17)
- 光の伝播行列の計算 (27)
- 光の伝播行列の計算 (37)
- 光の伝播行列の計算 (47)
- 光の伝播行列の計算 (57)
- 光の伝播行列の計算 (67)
- 光の伝播行列の計算 (77)
- シーン分割による高速化の解説手順 (6)
- シーン分割による高速化の解説手順 (7)
- 多重反射への拡張
- シーン分割による高速化の解説手順 (8)
- モジュールの導入 (13)
- モジュールの導入 (23)
- モジュールの導入 (33)
- シーン分割による高速化の解説手順 (9)
- デモ (2)
- 考察
- 発表の流れ (6)
- 発表内容のまとめ
- 著作権について
- 最後に
- Appendix A 実装について
- Appendix A 前計算について
- Appendix A ランタイム
- Appendix A ランタイム 係数
- Appendix A ランタイム
- Appendix A ランタイム 最終パス
- Appendix A ランタイム Light Probe(1)
- Appendix A ランタイム Light Probe(2)
- Appendix B 後半の補足
- Appendix B 後半の補足 (2)
- Appendix C 記号の表記
-
CEDEC 2012
Step1 静的オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 - 手法概要の説明 - データ更新時における高速化の解説 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Light Probe
bull 背景以外のオブジェクトには Light Probe を用いる
CEDEC 2012
Light Probe
bull Light Probe とはndash 全方位の入射光を保持する仮想的な球ndash 今回は球面調和関数 (SH) を使用
CEDEC 2012
Light Probe によるライティング
bull Light Probe を離散的に配置ndash シェーダで近傍の Light Probe の値を補間して
間接光の表現が可能
CEDEC 2012
Light Probe によるライティング
bull 時間の都合上詳細は割愛詳しくは下記書籍をご参照下さいndash Chapter8 「 KILLZONE2」 Light Probe自体の解説ndash Chapter9 「バイオハザード 5」 Light Probe によるラ
イティング
西川善司著「 3D ゲームファンのための
グラフィックス講座」
ここまではあくまで既存の手法の話
CEDEC 2012
Step1 静的オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 - 手法概要の説明 - データ更新時における高速化の解説 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Light Probe の計算
bull 通常 Light Probe は前計算した後更新しないndash Light Probe の計算は負荷が高い
今回は動的に Light Probe を更新する必要がある
CEDEC 2012
動的な Light Probe
bull 今回シーンのライティング結果は既知の状態の組み合わせに分解される
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
times120778 times120778 times120778times120778
CEDEC 2012
動的な Light Probe
bull 間接光と同様にそれぞれに対応した Light Probe を計算しておけば足し合わせで高速に計算可能
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
CEDEC 2012
Step1 背景オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
デモ
CEDEC 2012
デモ詳細
bull 背景オブジェクトndash 頂点数 10800 ( 頂点 )ndash基底の係数 22 (係数 )
bull Light Probendash Probe総数 500 (個 )ndash基底の係数 12 (係数 )ndash球面調和関数の係数 9 (係数 )
CEDEC 2012
パフォーマンス
bull 解像度は 1400800 で測定bull 実装には Compute Shader を使用bull 前計算約 45 分
ndash 2520 光源サンプルndash 20回反射まで考慮ndash 最適化で 10倍以上の高速化の余地あり
影あり 影なし 影なし GIなし
Geforce GTX 680 500 fps 800 fps 1500 fps
Geforce GTX 560 360 fps 440 fps 750 fps
Radeon 6630 M 80 fps 120 fps 280 fps
実装の Tips は Appendix に記載
CEDEC 2012
まとめ
bull 良い点ndash 非常に高速計算負荷が一定ndash 反射回数が無制限(行列 F に含められる )ndash 高速な Light Probe 計算ndash 様々な拡張
bull 悪い点ndash Light の位置方向を含めた前計算ndash 動的すぎるシーンは不可 (rarrDelta Radiance
Transfer)ndash 頂点カラーを念頭に置いたメッシュ分割頂点配置
ndash 複雑すぎない形状
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ
ndash 間接光計算手法の解説 (論文 4 節)ndash シーン分割による高速化の解説 (論文 5 節)
3 まとめ
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
問題提起 ( 14 )
bull 対象とする問題 シーンが複雑になった場合の計算負荷の増大
シンプルなシーン
より複雑なシーン
CEDEC 2012
問題提起 ( 24 )
bull 複雑なシーンでは1 メッシュ頂点数が増加2 必要な係数の数の増大 rArr 計算量の増大}
CEDEC 2012
問題提起 ( 34 )
bull 解決策シーンを複数の小領域に分割
rArr 適切に小領域を設定すればシーンの複雑さを 抑える事が可能bull 小領域の分割方法はユーザーが決定
CEDEC 2012
問題提起 ( 44 )
bull 各小領域内の間接光は前述の方法で計算可能bull 小領域間の光の伝播を別途考慮する必要がある
小領域間の光の伝播の高速な計算方法を解説
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
キーアイディア ( 16 )
bull 小領域間の光の伝播を個別に計算
CEDEC 2012
キーアイディア ( 26 )
bull 例として右rArr(中央)rArr左へ伝播する光を考える
キーアイディアでは多重反射を考慮しない光の伝播を考える
CEDEC 2012
キーアイディア ( 36 )
bull 小領域間の光の伝播は頂点間の影響に帰着
CEDEC 2012
キーアイディア ( 46 )
bull 小領域間の光の伝播行列 P を前計算119820 伝播先の小領域の頂点数119821 伝播元の小領域の頂点数
光の伝播行列P
119820行119821列[iquest ]P
CEDEC 2012
キーアイディア ( 56 )
bull 光の伝播行列 P を利用して光の伝播を高速に計算
[ 119956120783⋮119956119925]
119852 伝播元の小領域の頂点の色119941 伝播先の小領域の頂点の色
119820行119821列[iquest ][ 119941120783
⋮119941119924
] timesiquest P119820 伝播先の小領域の頂点数119821 伝播元の小領域の頂点数
CEDEC 2012
キーアイディア ( 66 )
bull 光の伝播を係数からの変換に修正
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
bull ライトフィールドという概念を導入
光の伝播行列の計算 ( 17 )
ライトフィールドは任意の点群を通過する
光を体系的に記録するためのデータ構造
境界面に注目
CEDEC 2012
光の伝播行列の計算 ( 27 )
bull 光の伝播行列 P を三要素に分割1 光の出射行列 Pout2 光の通過行列 Pthrough3 光の入射行列 Pin
右の小領域 中央の小領域 左の小領域P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 37 )
bull 光の出射行列 Poutndash 小領域 rArr ライトフィールド
119819120783 出射ライトフィールドのサンプル数119821 伝播元の小領域の頂点数
iquest119819120783行iquest
⋮⋮
⋮4 5 9
6
8
CEDEC 2012
光の伝播行列の計算 ( 47 )
bull 光の通過行列 Pthroughndash ライトフィールド rArr ライトフィールド
119819120784 出射ライトフィールドのサンプル数119819120783入射ライトフィールドのサンプル数
iquest119819120784行iquest
⋮⋮
⋮5 8
2
5 ⋯
CEDEC 2012
光の伝播行列の計算 ( 57 )
bull 光の入射行列 Pinndash ライトフィールド rArr 小領域
119820伝播先の小領域の頂点数119819120784 入射ライトフィールドのサンプル数
iquest119820行iquest
⋮
2 5 6
1
5⋮
Pin 計算時にヘミキューブ法などを用いて立体角を考慮
CEDEC 2012
光の伝播行列の計算 ( 67 )
bull 全ての小領域間の光の伝播は三種類の行列の組み合わせで計算可能
P = Pin times Pout上記例ではは再利用不可能だがは共通
P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 77 )
bull 光の伝播の計算のまとめ
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
多重反射への拡張
bull 間接光計算を反復実行
⋮
間接光計算
間接光計算
間接光計算
直接光
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
モジュールの導入 ( 13 )
bull モジュール( = 再利用可能な汎用小領域)の導入
bull 上記のようなシーンは「回転」も考慮すれば5種の立方体モジュールの組合わせで構成可能
3 方向壁 2 方向壁 2 方向壁 1 方向壁 0 方向壁
CEDEC 2012
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
モジュールの導入 ( 23 )
通過行列は(直進 右折 左折)の三種類
ライトフィールドデータを一つの行列に格納
特異値分解
データ量の削減及び計算の高速化
詳しくは論文 51 節参照
CEDEC 2012
モジュールの導入 ( 33 )
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
メリットは多いがシーンの自由度とのトレードオフ
モジュールの使い所は要検討
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
デモ
CEDEC 2012
考察
bull ライトフィールドは本当に必要か
bull 小領域間の位置関係が固定ならば(恐らく)不要
rArr レイトレーシング法で伝播行列 P を直接計算 した方が効率的bull 小領域を動的に入れ替える場合は必要
P = Pin times Pthrough times Pout
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ 3 まとめ
CEDEC 2012
発表内容のまとめ
bull Modular Radiance Transfer 法を解説ndash 長所
bull とにかく高速bull 多重反射を含んだ間接光が扱えるbull 技術のコア部分は汎用的で応用の余地が高い
ndash 短所bull 前計算を含め使い方に癖がある ( 実験を通してノウハウを蓄積すれば余り問題にならない )
ゲームへの応用は十分可能
CEDEC 2012
本スライド内で引用した論文の図の著作権は全て論文著者に帰属します
その他の図スライド本体挿絵等の著作権は
シリコンスタジオ株式会社に帰属します
著作権について
CEDEC 2012
最後に
御清聴ありがとうございました
httpwwwsiliconstudiocojppresentationsindexhtml
スライドデモは弊社 HP で近日公開
制作協力 河野 駿介 辻 俊晶 古家 亙 後藤 晋也 京田 文人 三谷 健一郎
問い合わせ先 田村 nk-tamurasiliconstudiocojp 安田 re-yasudasiliconstudiocojp
シリコンスタジオは常に人材を求めています
ご興味ある方は弊社 HP をご覧ください
CEDEC 2012
Appendix A 実装について
bull 実装自体は様々なアプローチが可能bull ここではデモの実装でのアプローチを紹介
CEDEC 2012
Appendix A 前計算について
bull F の計算ndash メッシュの全頂点からキューブマップにレンダリングndash ピクセルには頂点 ID とウェイトを出力
bull 直接光サンプルの計算ndash 頂点カラーを Stream Out でバッファに出力ndash 頂点シャドウあり
bull Light Probe の計算ndash 各 Probe の中心からキューブマップにレンダリングndash の対応する基底ベクトル同士を足し合わせた
ベクトル ( 直接光 + 間接光 ) を頂点カラーとして使用
CEDEC 2012
Appendix A ランタイム
bull 直接光の結果を Stream Out でバッファに出力ndash 頂点シャドウありndash カラーバッファへの書き込み OFFndash 複数オブジェクトの場合は単一バッファにオフ
セットを変えて出力
119897119889
CEDEC 2012
Appendix A ランタイム 係数
bull Compute Shader で を計算ndash は極めて横長の行列 ( 行 ~100程度 列 頂点数 )ndash は GPU が少々苦手な処理ではあるものの
タイリングベースの実装で高速に処理可能
iquest
119897119889119960 lowast119861119889minus1
CEDEC 2012
Appendix A ランタイム
bull Compute Shader で を計算ndash は極めて縦長 ( の転置と同サイズ ) なので素直に実装可能
iquest
119861119894119899119889 119960119897119894119899 119889 lowast
CEDEC 2012
Appendix A ランタイム 最終パス
bull を頂点カラーとして入力としてピクセル単位の直接光のシェーディングと合成して最終結果を得る
iquest +
CEDEC 2012
Appendix A ランタイム Light Probe(1)
bull Compute Shader でを計算ndash は縦長 ( 行 頂点数 timesSH係数の数 列 ~100程度 )
iquest
119880119907119900119897 119960119897119907119900119897 lowast
CEDEC 2012
Appendix A ランタイム Light Probe(2)
bull Probe を用いて Dynamic Objects をライティングndash 各 Light Probe が SH を 9係数で保持するため
3D Texture ではなく Structured-Buffer で保持ndash Vertex Shader 内で自力 Tri-Linear 補間
iquest +
CEDEC 2012
Appendix B 後半の補足
bull 大規模なシーンでの光の伝播bull 小領域間の光の伝播は個別に総当たりで計算
rArr小領域間の光の伝播は距離によって大きく減衰
実際は大規模シーンでも概ね二つ隣の小領域まで考慮すれば十分
CEDEC 2012
Appendix B 後半の補足
bull 小領域の境界
bull 小領域の境界部分が不連続になる rArr 小領域の境界部分は補間の必要がある
CEDEC 2012
bull スライドと論文で表記が違う記号があります
Appendix C 記号の表記
スライドでの表記 論文での表記
b
- Slide 1
- 発表の流れ
- 発表の流れ (2)
- 発表の概要
- 解説技術の特徴
- 注意点
- 発表の流れ (3)
- 発表の流れ (4)
- 間接光の概要
- 間接光の概要 (2)
- 解説手法の計算概要
- 間接光計算の解説手順
- 間接光計算の解説手順 (2)
- 間接光計算の解説手順 (3)
- 間接光計算の解説手順 (4)
- 間接光計算の解説手順 (5)
- 間接光計算の解説手順 (6)
- 間接光計算の考え方
- 間接光計算の考え方 (2)
- 間接光計算の考え方 (3)
- 間接光計算の考え方 (4)
- 間接光計算の考え方 (5)
- 間接光計算の解説手順 (7)
- 問題提起
- 間接光計算の解説手順 (8)
- キーアイディア
- キーアイディア (2)
- キーアイディア (3)
- キーアイディア (4)
- キーアイディア (5)
- キーアイディア (6)
- 間接光計算の解説手順 (9)
- 間接光計算の解説手順 (10)
- を求める
- を求める (2)
- を求める (3)
- 最適な基底
- サンプリングベースの基底
- サンプルの選び方について
- サンプリング行列
- サンプリング行列 (2)
- サンプリング行列 (3)
- サンプリング行列 (4)
- サンプリング行列 (5)
- サンプリング行列 (6)
- サンプリング行列 (7)
- 特異値分解(Singular Value Decomposition)
- 特異値分解(Singular Value Decomposition) (2)
- 特異値分解(Singular Value Decomposition) (3)
- 特異値分解(Singular Value Decomposition) (4)
- 特異値分解(Singular Value Decomposition) (5)
- 基底による直接光の近似
- アプローチの比較
- ハイブリッド手法の計算手順
- 係数の数の比較
- ランタイムの計算処理
- 係数の計算方法
- ランタイムの計算処理 (2)
- 間接光計算の解説手順 (11)
- ショートデモ
- 間接光計算の解説手順 (12)
- 間接光計算の解説手順 (13)
- Light Probe
- Light Probe (2)
- Light Probeによるライティング
- Light Probeによるライティング (2)
- 間接光計算の解説手順 (14)
- Light Probeの計算
- 動的なLight Probe
- 動的なLight Probe (2)
- 間接光計算の解説手順 (15)
- デモ
- デモ詳細
- パフォーマンス
- まとめ
- 発表の流れ (5)
- シーン分割による高速化の解説手順
- シーン分割による高速化の解説手順 (2)
- 問題提起 (14)
- 問題提起 (24)
- 問題提起 (34)
- 問題提起 (44)
- シーン分割による高速化の解説手順 (3)
- シーン分割による高速化の解説手順 (4)
- キーアイディア (16)
- キーアイディア (26)
- キーアイディア (36)
- キーアイディア (46)
- キーアイディア (56)
- キーアイディア (66)
- シーン分割による高速化の解説手順 (5)
- 光の伝播行列の計算 (17)
- 光の伝播行列の計算 (27)
- 光の伝播行列の計算 (37)
- 光の伝播行列の計算 (47)
- 光の伝播行列の計算 (57)
- 光の伝播行列の計算 (67)
- 光の伝播行列の計算 (77)
- シーン分割による高速化の解説手順 (6)
- シーン分割による高速化の解説手順 (7)
- 多重反射への拡張
- シーン分割による高速化の解説手順 (8)
- モジュールの導入 (13)
- モジュールの導入 (23)
- モジュールの導入 (33)
- シーン分割による高速化の解説手順 (9)
- デモ (2)
- 考察
- 発表の流れ (6)
- 発表内容のまとめ
- 著作権について
- 最後に
- Appendix A 実装について
- Appendix A 前計算について
- Appendix A ランタイム
- Appendix A ランタイム 係数
- Appendix A ランタイム
- Appendix A ランタイム 最終パス
- Appendix A ランタイム Light Probe(1)
- Appendix A ランタイム Light Probe(2)
- Appendix B 後半の補足
- Appendix B 後半の補足 (2)
- Appendix C 記号の表記
-
CEDEC 2012
Light Probe
bull 背景以外のオブジェクトには Light Probe を用いる
CEDEC 2012
Light Probe
bull Light Probe とはndash 全方位の入射光を保持する仮想的な球ndash 今回は球面調和関数 (SH) を使用
CEDEC 2012
Light Probe によるライティング
bull Light Probe を離散的に配置ndash シェーダで近傍の Light Probe の値を補間して
間接光の表現が可能
CEDEC 2012
Light Probe によるライティング
bull 時間の都合上詳細は割愛詳しくは下記書籍をご参照下さいndash Chapter8 「 KILLZONE2」 Light Probe自体の解説ndash Chapter9 「バイオハザード 5」 Light Probe によるラ
イティング
西川善司著「 3D ゲームファンのための
グラフィックス講座」
ここまではあくまで既存の手法の話
CEDEC 2012
Step1 静的オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 - 手法概要の説明 - データ更新時における高速化の解説 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Light Probe の計算
bull 通常 Light Probe は前計算した後更新しないndash Light Probe の計算は負荷が高い
今回は動的に Light Probe を更新する必要がある
CEDEC 2012
動的な Light Probe
bull 今回シーンのライティング結果は既知の状態の組み合わせに分解される
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
times120778 times120778 times120778times120778
CEDEC 2012
動的な Light Probe
bull 間接光と同様にそれぞれに対応した Light Probe を計算しておけば足し合わせで高速に計算可能
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
CEDEC 2012
Step1 背景オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
デモ
CEDEC 2012
デモ詳細
bull 背景オブジェクトndash 頂点数 10800 ( 頂点 )ndash基底の係数 22 (係数 )
bull Light Probendash Probe総数 500 (個 )ndash基底の係数 12 (係数 )ndash球面調和関数の係数 9 (係数 )
CEDEC 2012
パフォーマンス
bull 解像度は 1400800 で測定bull 実装には Compute Shader を使用bull 前計算約 45 分
ndash 2520 光源サンプルndash 20回反射まで考慮ndash 最適化で 10倍以上の高速化の余地あり
影あり 影なし 影なし GIなし
Geforce GTX 680 500 fps 800 fps 1500 fps
Geforce GTX 560 360 fps 440 fps 750 fps
Radeon 6630 M 80 fps 120 fps 280 fps
実装の Tips は Appendix に記載
CEDEC 2012
まとめ
bull 良い点ndash 非常に高速計算負荷が一定ndash 反射回数が無制限(行列 F に含められる )ndash 高速な Light Probe 計算ndash 様々な拡張
bull 悪い点ndash Light の位置方向を含めた前計算ndash 動的すぎるシーンは不可 (rarrDelta Radiance
Transfer)ndash 頂点カラーを念頭に置いたメッシュ分割頂点配置
ndash 複雑すぎない形状
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ
ndash 間接光計算手法の解説 (論文 4 節)ndash シーン分割による高速化の解説 (論文 5 節)
3 まとめ
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
問題提起 ( 14 )
bull 対象とする問題 シーンが複雑になった場合の計算負荷の増大
シンプルなシーン
より複雑なシーン
CEDEC 2012
問題提起 ( 24 )
bull 複雑なシーンでは1 メッシュ頂点数が増加2 必要な係数の数の増大 rArr 計算量の増大}
CEDEC 2012
問題提起 ( 34 )
bull 解決策シーンを複数の小領域に分割
rArr 適切に小領域を設定すればシーンの複雑さを 抑える事が可能bull 小領域の分割方法はユーザーが決定
CEDEC 2012
問題提起 ( 44 )
bull 各小領域内の間接光は前述の方法で計算可能bull 小領域間の光の伝播を別途考慮する必要がある
小領域間の光の伝播の高速な計算方法を解説
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
キーアイディア ( 16 )
bull 小領域間の光の伝播を個別に計算
CEDEC 2012
キーアイディア ( 26 )
bull 例として右rArr(中央)rArr左へ伝播する光を考える
キーアイディアでは多重反射を考慮しない光の伝播を考える
CEDEC 2012
キーアイディア ( 36 )
bull 小領域間の光の伝播は頂点間の影響に帰着
CEDEC 2012
キーアイディア ( 46 )
bull 小領域間の光の伝播行列 P を前計算119820 伝播先の小領域の頂点数119821 伝播元の小領域の頂点数
光の伝播行列P
119820行119821列[iquest ]P
CEDEC 2012
キーアイディア ( 56 )
bull 光の伝播行列 P を利用して光の伝播を高速に計算
[ 119956120783⋮119956119925]
119852 伝播元の小領域の頂点の色119941 伝播先の小領域の頂点の色
119820行119821列[iquest ][ 119941120783
⋮119941119924
] timesiquest P119820 伝播先の小領域の頂点数119821 伝播元の小領域の頂点数
CEDEC 2012
キーアイディア ( 66 )
bull 光の伝播を係数からの変換に修正
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
bull ライトフィールドという概念を導入
光の伝播行列の計算 ( 17 )
ライトフィールドは任意の点群を通過する
光を体系的に記録するためのデータ構造
境界面に注目
CEDEC 2012
光の伝播行列の計算 ( 27 )
bull 光の伝播行列 P を三要素に分割1 光の出射行列 Pout2 光の通過行列 Pthrough3 光の入射行列 Pin
右の小領域 中央の小領域 左の小領域P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 37 )
bull 光の出射行列 Poutndash 小領域 rArr ライトフィールド
119819120783 出射ライトフィールドのサンプル数119821 伝播元の小領域の頂点数
iquest119819120783行iquest
⋮⋮
⋮4 5 9
6
8
CEDEC 2012
光の伝播行列の計算 ( 47 )
bull 光の通過行列 Pthroughndash ライトフィールド rArr ライトフィールド
119819120784 出射ライトフィールドのサンプル数119819120783入射ライトフィールドのサンプル数
iquest119819120784行iquest
⋮⋮
⋮5 8
2
5 ⋯
CEDEC 2012
光の伝播行列の計算 ( 57 )
bull 光の入射行列 Pinndash ライトフィールド rArr 小領域
119820伝播先の小領域の頂点数119819120784 入射ライトフィールドのサンプル数
iquest119820行iquest
⋮
2 5 6
1
5⋮
Pin 計算時にヘミキューブ法などを用いて立体角を考慮
CEDEC 2012
光の伝播行列の計算 ( 67 )
bull 全ての小領域間の光の伝播は三種類の行列の組み合わせで計算可能
P = Pin times Pout上記例ではは再利用不可能だがは共通
P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 77 )
bull 光の伝播の計算のまとめ
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
多重反射への拡張
bull 間接光計算を反復実行
⋮
間接光計算
間接光計算
間接光計算
直接光
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
モジュールの導入 ( 13 )
bull モジュール( = 再利用可能な汎用小領域)の導入
bull 上記のようなシーンは「回転」も考慮すれば5種の立方体モジュールの組合わせで構成可能
3 方向壁 2 方向壁 2 方向壁 1 方向壁 0 方向壁
CEDEC 2012
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
モジュールの導入 ( 23 )
通過行列は(直進 右折 左折)の三種類
ライトフィールドデータを一つの行列に格納
特異値分解
データ量の削減及び計算の高速化
詳しくは論文 51 節参照
CEDEC 2012
モジュールの導入 ( 33 )
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
メリットは多いがシーンの自由度とのトレードオフ
モジュールの使い所は要検討
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
デモ
CEDEC 2012
考察
bull ライトフィールドは本当に必要か
bull 小領域間の位置関係が固定ならば(恐らく)不要
rArr レイトレーシング法で伝播行列 P を直接計算 した方が効率的bull 小領域を動的に入れ替える場合は必要
P = Pin times Pthrough times Pout
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ 3 まとめ
CEDEC 2012
発表内容のまとめ
bull Modular Radiance Transfer 法を解説ndash 長所
bull とにかく高速bull 多重反射を含んだ間接光が扱えるbull 技術のコア部分は汎用的で応用の余地が高い
ndash 短所bull 前計算を含め使い方に癖がある ( 実験を通してノウハウを蓄積すれば余り問題にならない )
ゲームへの応用は十分可能
CEDEC 2012
本スライド内で引用した論文の図の著作権は全て論文著者に帰属します
その他の図スライド本体挿絵等の著作権は
シリコンスタジオ株式会社に帰属します
著作権について
CEDEC 2012
最後に
御清聴ありがとうございました
httpwwwsiliconstudiocojppresentationsindexhtml
スライドデモは弊社 HP で近日公開
制作協力 河野 駿介 辻 俊晶 古家 亙 後藤 晋也 京田 文人 三谷 健一郎
問い合わせ先 田村 nk-tamurasiliconstudiocojp 安田 re-yasudasiliconstudiocojp
シリコンスタジオは常に人材を求めています
ご興味ある方は弊社 HP をご覧ください
CEDEC 2012
Appendix A 実装について
bull 実装自体は様々なアプローチが可能bull ここではデモの実装でのアプローチを紹介
CEDEC 2012
Appendix A 前計算について
bull F の計算ndash メッシュの全頂点からキューブマップにレンダリングndash ピクセルには頂点 ID とウェイトを出力
bull 直接光サンプルの計算ndash 頂点カラーを Stream Out でバッファに出力ndash 頂点シャドウあり
bull Light Probe の計算ndash 各 Probe の中心からキューブマップにレンダリングndash の対応する基底ベクトル同士を足し合わせた
ベクトル ( 直接光 + 間接光 ) を頂点カラーとして使用
CEDEC 2012
Appendix A ランタイム
bull 直接光の結果を Stream Out でバッファに出力ndash 頂点シャドウありndash カラーバッファへの書き込み OFFndash 複数オブジェクトの場合は単一バッファにオフ
セットを変えて出力
119897119889
CEDEC 2012
Appendix A ランタイム 係数
bull Compute Shader で を計算ndash は極めて横長の行列 ( 行 ~100程度 列 頂点数 )ndash は GPU が少々苦手な処理ではあるものの
タイリングベースの実装で高速に処理可能
iquest
119897119889119960 lowast119861119889minus1
CEDEC 2012
Appendix A ランタイム
bull Compute Shader で を計算ndash は極めて縦長 ( の転置と同サイズ ) なので素直に実装可能
iquest
119861119894119899119889 119960119897119894119899 119889 lowast
CEDEC 2012
Appendix A ランタイム 最終パス
bull を頂点カラーとして入力としてピクセル単位の直接光のシェーディングと合成して最終結果を得る
iquest +
CEDEC 2012
Appendix A ランタイム Light Probe(1)
bull Compute Shader でを計算ndash は縦長 ( 行 頂点数 timesSH係数の数 列 ~100程度 )
iquest
119880119907119900119897 119960119897119907119900119897 lowast
CEDEC 2012
Appendix A ランタイム Light Probe(2)
bull Probe を用いて Dynamic Objects をライティングndash 各 Light Probe が SH を 9係数で保持するため
3D Texture ではなく Structured-Buffer で保持ndash Vertex Shader 内で自力 Tri-Linear 補間
iquest +
CEDEC 2012
Appendix B 後半の補足
bull 大規模なシーンでの光の伝播bull 小領域間の光の伝播は個別に総当たりで計算
rArr小領域間の光の伝播は距離によって大きく減衰
実際は大規模シーンでも概ね二つ隣の小領域まで考慮すれば十分
CEDEC 2012
Appendix B 後半の補足
bull 小領域の境界
bull 小領域の境界部分が不連続になる rArr 小領域の境界部分は補間の必要がある
CEDEC 2012
bull スライドと論文で表記が違う記号があります
Appendix C 記号の表記
スライドでの表記 論文での表記
b
- Slide 1
- 発表の流れ
- 発表の流れ (2)
- 発表の概要
- 解説技術の特徴
- 注意点
- 発表の流れ (3)
- 発表の流れ (4)
- 間接光の概要
- 間接光の概要 (2)
- 解説手法の計算概要
- 間接光計算の解説手順
- 間接光計算の解説手順 (2)
- 間接光計算の解説手順 (3)
- 間接光計算の解説手順 (4)
- 間接光計算の解説手順 (5)
- 間接光計算の解説手順 (6)
- 間接光計算の考え方
- 間接光計算の考え方 (2)
- 間接光計算の考え方 (3)
- 間接光計算の考え方 (4)
- 間接光計算の考え方 (5)
- 間接光計算の解説手順 (7)
- 問題提起
- 間接光計算の解説手順 (8)
- キーアイディア
- キーアイディア (2)
- キーアイディア (3)
- キーアイディア (4)
- キーアイディア (5)
- キーアイディア (6)
- 間接光計算の解説手順 (9)
- 間接光計算の解説手順 (10)
- を求める
- を求める (2)
- を求める (3)
- 最適な基底
- サンプリングベースの基底
- サンプルの選び方について
- サンプリング行列
- サンプリング行列 (2)
- サンプリング行列 (3)
- サンプリング行列 (4)
- サンプリング行列 (5)
- サンプリング行列 (6)
- サンプリング行列 (7)
- 特異値分解(Singular Value Decomposition)
- 特異値分解(Singular Value Decomposition) (2)
- 特異値分解(Singular Value Decomposition) (3)
- 特異値分解(Singular Value Decomposition) (4)
- 特異値分解(Singular Value Decomposition) (5)
- 基底による直接光の近似
- アプローチの比較
- ハイブリッド手法の計算手順
- 係数の数の比較
- ランタイムの計算処理
- 係数の計算方法
- ランタイムの計算処理 (2)
- 間接光計算の解説手順 (11)
- ショートデモ
- 間接光計算の解説手順 (12)
- 間接光計算の解説手順 (13)
- Light Probe
- Light Probe (2)
- Light Probeによるライティング
- Light Probeによるライティング (2)
- 間接光計算の解説手順 (14)
- Light Probeの計算
- 動的なLight Probe
- 動的なLight Probe (2)
- 間接光計算の解説手順 (15)
- デモ
- デモ詳細
- パフォーマンス
- まとめ
- 発表の流れ (5)
- シーン分割による高速化の解説手順
- シーン分割による高速化の解説手順 (2)
- 問題提起 (14)
- 問題提起 (24)
- 問題提起 (34)
- 問題提起 (44)
- シーン分割による高速化の解説手順 (3)
- シーン分割による高速化の解説手順 (4)
- キーアイディア (16)
- キーアイディア (26)
- キーアイディア (36)
- キーアイディア (46)
- キーアイディア (56)
- キーアイディア (66)
- シーン分割による高速化の解説手順 (5)
- 光の伝播行列の計算 (17)
- 光の伝播行列の計算 (27)
- 光の伝播行列の計算 (37)
- 光の伝播行列の計算 (47)
- 光の伝播行列の計算 (57)
- 光の伝播行列の計算 (67)
- 光の伝播行列の計算 (77)
- シーン分割による高速化の解説手順 (6)
- シーン分割による高速化の解説手順 (7)
- 多重反射への拡張
- シーン分割による高速化の解説手順 (8)
- モジュールの導入 (13)
- モジュールの導入 (23)
- モジュールの導入 (33)
- シーン分割による高速化の解説手順 (9)
- デモ (2)
- 考察
- 発表の流れ (6)
- 発表内容のまとめ
- 著作権について
- 最後に
- Appendix A 実装について
- Appendix A 前計算について
- Appendix A ランタイム
- Appendix A ランタイム 係数
- Appendix A ランタイム
- Appendix A ランタイム 最終パス
- Appendix A ランタイム Light Probe(1)
- Appendix A ランタイム Light Probe(2)
- Appendix B 後半の補足
- Appendix B 後半の補足 (2)
- Appendix C 記号の表記
-
CEDEC 2012
Light Probe
bull Light Probe とはndash 全方位の入射光を保持する仮想的な球ndash 今回は球面調和関数 (SH) を使用
CEDEC 2012
Light Probe によるライティング
bull Light Probe を離散的に配置ndash シェーダで近傍の Light Probe の値を補間して
間接光の表現が可能
CEDEC 2012
Light Probe によるライティング
bull 時間の都合上詳細は割愛詳しくは下記書籍をご参照下さいndash Chapter8 「 KILLZONE2」 Light Probe自体の解説ndash Chapter9 「バイオハザード 5」 Light Probe によるラ
イティング
西川善司著「 3D ゲームファンのための
グラフィックス講座」
ここまではあくまで既存の手法の話
CEDEC 2012
Step1 静的オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 - 手法概要の説明 - データ更新時における高速化の解説 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Light Probe の計算
bull 通常 Light Probe は前計算した後更新しないndash Light Probe の計算は負荷が高い
今回は動的に Light Probe を更新する必要がある
CEDEC 2012
動的な Light Probe
bull 今回シーンのライティング結果は既知の状態の組み合わせに分解される
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
times120778 times120778 times120778times120778
CEDEC 2012
動的な Light Probe
bull 間接光と同様にそれぞれに対応した Light Probe を計算しておけば足し合わせで高速に計算可能
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
CEDEC 2012
Step1 背景オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
デモ
CEDEC 2012
デモ詳細
bull 背景オブジェクトndash 頂点数 10800 ( 頂点 )ndash基底の係数 22 (係数 )
bull Light Probendash Probe総数 500 (個 )ndash基底の係数 12 (係数 )ndash球面調和関数の係数 9 (係数 )
CEDEC 2012
パフォーマンス
bull 解像度は 1400800 で測定bull 実装には Compute Shader を使用bull 前計算約 45 分
ndash 2520 光源サンプルndash 20回反射まで考慮ndash 最適化で 10倍以上の高速化の余地あり
影あり 影なし 影なし GIなし
Geforce GTX 680 500 fps 800 fps 1500 fps
Geforce GTX 560 360 fps 440 fps 750 fps
Radeon 6630 M 80 fps 120 fps 280 fps
実装の Tips は Appendix に記載
CEDEC 2012
まとめ
bull 良い点ndash 非常に高速計算負荷が一定ndash 反射回数が無制限(行列 F に含められる )ndash 高速な Light Probe 計算ndash 様々な拡張
bull 悪い点ndash Light の位置方向を含めた前計算ndash 動的すぎるシーンは不可 (rarrDelta Radiance
Transfer)ndash 頂点カラーを念頭に置いたメッシュ分割頂点配置
ndash 複雑すぎない形状
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ
ndash 間接光計算手法の解説 (論文 4 節)ndash シーン分割による高速化の解説 (論文 5 節)
3 まとめ
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
問題提起 ( 14 )
bull 対象とする問題 シーンが複雑になった場合の計算負荷の増大
シンプルなシーン
より複雑なシーン
CEDEC 2012
問題提起 ( 24 )
bull 複雑なシーンでは1 メッシュ頂点数が増加2 必要な係数の数の増大 rArr 計算量の増大}
CEDEC 2012
問題提起 ( 34 )
bull 解決策シーンを複数の小領域に分割
rArr 適切に小領域を設定すればシーンの複雑さを 抑える事が可能bull 小領域の分割方法はユーザーが決定
CEDEC 2012
問題提起 ( 44 )
bull 各小領域内の間接光は前述の方法で計算可能bull 小領域間の光の伝播を別途考慮する必要がある
小領域間の光の伝播の高速な計算方法を解説
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
キーアイディア ( 16 )
bull 小領域間の光の伝播を個別に計算
CEDEC 2012
キーアイディア ( 26 )
bull 例として右rArr(中央)rArr左へ伝播する光を考える
キーアイディアでは多重反射を考慮しない光の伝播を考える
CEDEC 2012
キーアイディア ( 36 )
bull 小領域間の光の伝播は頂点間の影響に帰着
CEDEC 2012
キーアイディア ( 46 )
bull 小領域間の光の伝播行列 P を前計算119820 伝播先の小領域の頂点数119821 伝播元の小領域の頂点数
光の伝播行列P
119820行119821列[iquest ]P
CEDEC 2012
キーアイディア ( 56 )
bull 光の伝播行列 P を利用して光の伝播を高速に計算
[ 119956120783⋮119956119925]
119852 伝播元の小領域の頂点の色119941 伝播先の小領域の頂点の色
119820行119821列[iquest ][ 119941120783
⋮119941119924
] timesiquest P119820 伝播先の小領域の頂点数119821 伝播元の小領域の頂点数
CEDEC 2012
キーアイディア ( 66 )
bull 光の伝播を係数からの変換に修正
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
bull ライトフィールドという概念を導入
光の伝播行列の計算 ( 17 )
ライトフィールドは任意の点群を通過する
光を体系的に記録するためのデータ構造
境界面に注目
CEDEC 2012
光の伝播行列の計算 ( 27 )
bull 光の伝播行列 P を三要素に分割1 光の出射行列 Pout2 光の通過行列 Pthrough3 光の入射行列 Pin
右の小領域 中央の小領域 左の小領域P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 37 )
bull 光の出射行列 Poutndash 小領域 rArr ライトフィールド
119819120783 出射ライトフィールドのサンプル数119821 伝播元の小領域の頂点数
iquest119819120783行iquest
⋮⋮
⋮4 5 9
6
8
CEDEC 2012
光の伝播行列の計算 ( 47 )
bull 光の通過行列 Pthroughndash ライトフィールド rArr ライトフィールド
119819120784 出射ライトフィールドのサンプル数119819120783入射ライトフィールドのサンプル数
iquest119819120784行iquest
⋮⋮
⋮5 8
2
5 ⋯
CEDEC 2012
光の伝播行列の計算 ( 57 )
bull 光の入射行列 Pinndash ライトフィールド rArr 小領域
119820伝播先の小領域の頂点数119819120784 入射ライトフィールドのサンプル数
iquest119820行iquest
⋮
2 5 6
1
5⋮
Pin 計算時にヘミキューブ法などを用いて立体角を考慮
CEDEC 2012
光の伝播行列の計算 ( 67 )
bull 全ての小領域間の光の伝播は三種類の行列の組み合わせで計算可能
P = Pin times Pout上記例ではは再利用不可能だがは共通
P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 77 )
bull 光の伝播の計算のまとめ
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
多重反射への拡張
bull 間接光計算を反復実行
⋮
間接光計算
間接光計算
間接光計算
直接光
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
モジュールの導入 ( 13 )
bull モジュール( = 再利用可能な汎用小領域)の導入
bull 上記のようなシーンは「回転」も考慮すれば5種の立方体モジュールの組合わせで構成可能
3 方向壁 2 方向壁 2 方向壁 1 方向壁 0 方向壁
CEDEC 2012
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
モジュールの導入 ( 23 )
通過行列は(直進 右折 左折)の三種類
ライトフィールドデータを一つの行列に格納
特異値分解
データ量の削減及び計算の高速化
詳しくは論文 51 節参照
CEDEC 2012
モジュールの導入 ( 33 )
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
メリットは多いがシーンの自由度とのトレードオフ
モジュールの使い所は要検討
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
デモ
CEDEC 2012
考察
bull ライトフィールドは本当に必要か
bull 小領域間の位置関係が固定ならば(恐らく)不要
rArr レイトレーシング法で伝播行列 P を直接計算 した方が効率的bull 小領域を動的に入れ替える場合は必要
P = Pin times Pthrough times Pout
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ 3 まとめ
CEDEC 2012
発表内容のまとめ
bull Modular Radiance Transfer 法を解説ndash 長所
bull とにかく高速bull 多重反射を含んだ間接光が扱えるbull 技術のコア部分は汎用的で応用の余地が高い
ndash 短所bull 前計算を含め使い方に癖がある ( 実験を通してノウハウを蓄積すれば余り問題にならない )
ゲームへの応用は十分可能
CEDEC 2012
本スライド内で引用した論文の図の著作権は全て論文著者に帰属します
その他の図スライド本体挿絵等の著作権は
シリコンスタジオ株式会社に帰属します
著作権について
CEDEC 2012
最後に
御清聴ありがとうございました
httpwwwsiliconstudiocojppresentationsindexhtml
スライドデモは弊社 HP で近日公開
制作協力 河野 駿介 辻 俊晶 古家 亙 後藤 晋也 京田 文人 三谷 健一郎
問い合わせ先 田村 nk-tamurasiliconstudiocojp 安田 re-yasudasiliconstudiocojp
シリコンスタジオは常に人材を求めています
ご興味ある方は弊社 HP をご覧ください
CEDEC 2012
Appendix A 実装について
bull 実装自体は様々なアプローチが可能bull ここではデモの実装でのアプローチを紹介
CEDEC 2012
Appendix A 前計算について
bull F の計算ndash メッシュの全頂点からキューブマップにレンダリングndash ピクセルには頂点 ID とウェイトを出力
bull 直接光サンプルの計算ndash 頂点カラーを Stream Out でバッファに出力ndash 頂点シャドウあり
bull Light Probe の計算ndash 各 Probe の中心からキューブマップにレンダリングndash の対応する基底ベクトル同士を足し合わせた
ベクトル ( 直接光 + 間接光 ) を頂点カラーとして使用
CEDEC 2012
Appendix A ランタイム
bull 直接光の結果を Stream Out でバッファに出力ndash 頂点シャドウありndash カラーバッファへの書き込み OFFndash 複数オブジェクトの場合は単一バッファにオフ
セットを変えて出力
119897119889
CEDEC 2012
Appendix A ランタイム 係数
bull Compute Shader で を計算ndash は極めて横長の行列 ( 行 ~100程度 列 頂点数 )ndash は GPU が少々苦手な処理ではあるものの
タイリングベースの実装で高速に処理可能
iquest
119897119889119960 lowast119861119889minus1
CEDEC 2012
Appendix A ランタイム
bull Compute Shader で を計算ndash は極めて縦長 ( の転置と同サイズ ) なので素直に実装可能
iquest
119861119894119899119889 119960119897119894119899 119889 lowast
CEDEC 2012
Appendix A ランタイム 最終パス
bull を頂点カラーとして入力としてピクセル単位の直接光のシェーディングと合成して最終結果を得る
iquest +
CEDEC 2012
Appendix A ランタイム Light Probe(1)
bull Compute Shader でを計算ndash は縦長 ( 行 頂点数 timesSH係数の数 列 ~100程度 )
iquest
119880119907119900119897 119960119897119907119900119897 lowast
CEDEC 2012
Appendix A ランタイム Light Probe(2)
bull Probe を用いて Dynamic Objects をライティングndash 各 Light Probe が SH を 9係数で保持するため
3D Texture ではなく Structured-Buffer で保持ndash Vertex Shader 内で自力 Tri-Linear 補間
iquest +
CEDEC 2012
Appendix B 後半の補足
bull 大規模なシーンでの光の伝播bull 小領域間の光の伝播は個別に総当たりで計算
rArr小領域間の光の伝播は距離によって大きく減衰
実際は大規模シーンでも概ね二つ隣の小領域まで考慮すれば十分
CEDEC 2012
Appendix B 後半の補足
bull 小領域の境界
bull 小領域の境界部分が不連続になる rArr 小領域の境界部分は補間の必要がある
CEDEC 2012
bull スライドと論文で表記が違う記号があります
Appendix C 記号の表記
スライドでの表記 論文での表記
b
- Slide 1
- 発表の流れ
- 発表の流れ (2)
- 発表の概要
- 解説技術の特徴
- 注意点
- 発表の流れ (3)
- 発表の流れ (4)
- 間接光の概要
- 間接光の概要 (2)
- 解説手法の計算概要
- 間接光計算の解説手順
- 間接光計算の解説手順 (2)
- 間接光計算の解説手順 (3)
- 間接光計算の解説手順 (4)
- 間接光計算の解説手順 (5)
- 間接光計算の解説手順 (6)
- 間接光計算の考え方
- 間接光計算の考え方 (2)
- 間接光計算の考え方 (3)
- 間接光計算の考え方 (4)
- 間接光計算の考え方 (5)
- 間接光計算の解説手順 (7)
- 問題提起
- 間接光計算の解説手順 (8)
- キーアイディア
- キーアイディア (2)
- キーアイディア (3)
- キーアイディア (4)
- キーアイディア (5)
- キーアイディア (6)
- 間接光計算の解説手順 (9)
- 間接光計算の解説手順 (10)
- を求める
- を求める (2)
- を求める (3)
- 最適な基底
- サンプリングベースの基底
- サンプルの選び方について
- サンプリング行列
- サンプリング行列 (2)
- サンプリング行列 (3)
- サンプリング行列 (4)
- サンプリング行列 (5)
- サンプリング行列 (6)
- サンプリング行列 (7)
- 特異値分解(Singular Value Decomposition)
- 特異値分解(Singular Value Decomposition) (2)
- 特異値分解(Singular Value Decomposition) (3)
- 特異値分解(Singular Value Decomposition) (4)
- 特異値分解(Singular Value Decomposition) (5)
- 基底による直接光の近似
- アプローチの比較
- ハイブリッド手法の計算手順
- 係数の数の比較
- ランタイムの計算処理
- 係数の計算方法
- ランタイムの計算処理 (2)
- 間接光計算の解説手順 (11)
- ショートデモ
- 間接光計算の解説手順 (12)
- 間接光計算の解説手順 (13)
- Light Probe
- Light Probe (2)
- Light Probeによるライティング
- Light Probeによるライティング (2)
- 間接光計算の解説手順 (14)
- Light Probeの計算
- 動的なLight Probe
- 動的なLight Probe (2)
- 間接光計算の解説手順 (15)
- デモ
- デモ詳細
- パフォーマンス
- まとめ
- 発表の流れ (5)
- シーン分割による高速化の解説手順
- シーン分割による高速化の解説手順 (2)
- 問題提起 (14)
- 問題提起 (24)
- 問題提起 (34)
- 問題提起 (44)
- シーン分割による高速化の解説手順 (3)
- シーン分割による高速化の解説手順 (4)
- キーアイディア (16)
- キーアイディア (26)
- キーアイディア (36)
- キーアイディア (46)
- キーアイディア (56)
- キーアイディア (66)
- シーン分割による高速化の解説手順 (5)
- 光の伝播行列の計算 (17)
- 光の伝播行列の計算 (27)
- 光の伝播行列の計算 (37)
- 光の伝播行列の計算 (47)
- 光の伝播行列の計算 (57)
- 光の伝播行列の計算 (67)
- 光の伝播行列の計算 (77)
- シーン分割による高速化の解説手順 (6)
- シーン分割による高速化の解説手順 (7)
- 多重反射への拡張
- シーン分割による高速化の解説手順 (8)
- モジュールの導入 (13)
- モジュールの導入 (23)
- モジュールの導入 (33)
- シーン分割による高速化の解説手順 (9)
- デモ (2)
- 考察
- 発表の流れ (6)
- 発表内容のまとめ
- 著作権について
- 最後に
- Appendix A 実装について
- Appendix A 前計算について
- Appendix A ランタイム
- Appendix A ランタイム 係数
- Appendix A ランタイム
- Appendix A ランタイム 最終パス
- Appendix A ランタイム Light Probe(1)
- Appendix A ランタイム Light Probe(2)
- Appendix B 後半の補足
- Appendix B 後半の補足 (2)
- Appendix C 記号の表記
-
CEDEC 2012
Light Probe によるライティング
bull Light Probe を離散的に配置ndash シェーダで近傍の Light Probe の値を補間して
間接光の表現が可能
CEDEC 2012
Light Probe によるライティング
bull 時間の都合上詳細は割愛詳しくは下記書籍をご参照下さいndash Chapter8 「 KILLZONE2」 Light Probe自体の解説ndash Chapter9 「バイオハザード 5」 Light Probe によるラ
イティング
西川善司著「 3D ゲームファンのための
グラフィックス講座」
ここまではあくまで既存の手法の話
CEDEC 2012
Step1 静的オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 - 手法概要の説明 - データ更新時における高速化の解説 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Light Probe の計算
bull 通常 Light Probe は前計算した後更新しないndash Light Probe の計算は負荷が高い
今回は動的に Light Probe を更新する必要がある
CEDEC 2012
動的な Light Probe
bull 今回シーンのライティング結果は既知の状態の組み合わせに分解される
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
times120778 times120778 times120778times120778
CEDEC 2012
動的な Light Probe
bull 間接光と同様にそれぞれに対応した Light Probe を計算しておけば足し合わせで高速に計算可能
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
CEDEC 2012
Step1 背景オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
デモ
CEDEC 2012
デモ詳細
bull 背景オブジェクトndash 頂点数 10800 ( 頂点 )ndash基底の係数 22 (係数 )
bull Light Probendash Probe総数 500 (個 )ndash基底の係数 12 (係数 )ndash球面調和関数の係数 9 (係数 )
CEDEC 2012
パフォーマンス
bull 解像度は 1400800 で測定bull 実装には Compute Shader を使用bull 前計算約 45 分
ndash 2520 光源サンプルndash 20回反射まで考慮ndash 最適化で 10倍以上の高速化の余地あり
影あり 影なし 影なし GIなし
Geforce GTX 680 500 fps 800 fps 1500 fps
Geforce GTX 560 360 fps 440 fps 750 fps
Radeon 6630 M 80 fps 120 fps 280 fps
実装の Tips は Appendix に記載
CEDEC 2012
まとめ
bull 良い点ndash 非常に高速計算負荷が一定ndash 反射回数が無制限(行列 F に含められる )ndash 高速な Light Probe 計算ndash 様々な拡張
bull 悪い点ndash Light の位置方向を含めた前計算ndash 動的すぎるシーンは不可 (rarrDelta Radiance
Transfer)ndash 頂点カラーを念頭に置いたメッシュ分割頂点配置
ndash 複雑すぎない形状
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ
ndash 間接光計算手法の解説 (論文 4 節)ndash シーン分割による高速化の解説 (論文 5 節)
3 まとめ
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
問題提起 ( 14 )
bull 対象とする問題 シーンが複雑になった場合の計算負荷の増大
シンプルなシーン
より複雑なシーン
CEDEC 2012
問題提起 ( 24 )
bull 複雑なシーンでは1 メッシュ頂点数が増加2 必要な係数の数の増大 rArr 計算量の増大}
CEDEC 2012
問題提起 ( 34 )
bull 解決策シーンを複数の小領域に分割
rArr 適切に小領域を設定すればシーンの複雑さを 抑える事が可能bull 小領域の分割方法はユーザーが決定
CEDEC 2012
問題提起 ( 44 )
bull 各小領域内の間接光は前述の方法で計算可能bull 小領域間の光の伝播を別途考慮する必要がある
小領域間の光の伝播の高速な計算方法を解説
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
キーアイディア ( 16 )
bull 小領域間の光の伝播を個別に計算
CEDEC 2012
キーアイディア ( 26 )
bull 例として右rArr(中央)rArr左へ伝播する光を考える
キーアイディアでは多重反射を考慮しない光の伝播を考える
CEDEC 2012
キーアイディア ( 36 )
bull 小領域間の光の伝播は頂点間の影響に帰着
CEDEC 2012
キーアイディア ( 46 )
bull 小領域間の光の伝播行列 P を前計算119820 伝播先の小領域の頂点数119821 伝播元の小領域の頂点数
光の伝播行列P
119820行119821列[iquest ]P
CEDEC 2012
キーアイディア ( 56 )
bull 光の伝播行列 P を利用して光の伝播を高速に計算
[ 119956120783⋮119956119925]
119852 伝播元の小領域の頂点の色119941 伝播先の小領域の頂点の色
119820行119821列[iquest ][ 119941120783
⋮119941119924
] timesiquest P119820 伝播先の小領域の頂点数119821 伝播元の小領域の頂点数
CEDEC 2012
キーアイディア ( 66 )
bull 光の伝播を係数からの変換に修正
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
bull ライトフィールドという概念を導入
光の伝播行列の計算 ( 17 )
ライトフィールドは任意の点群を通過する
光を体系的に記録するためのデータ構造
境界面に注目
CEDEC 2012
光の伝播行列の計算 ( 27 )
bull 光の伝播行列 P を三要素に分割1 光の出射行列 Pout2 光の通過行列 Pthrough3 光の入射行列 Pin
右の小領域 中央の小領域 左の小領域P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 37 )
bull 光の出射行列 Poutndash 小領域 rArr ライトフィールド
119819120783 出射ライトフィールドのサンプル数119821 伝播元の小領域の頂点数
iquest119819120783行iquest
⋮⋮
⋮4 5 9
6
8
CEDEC 2012
光の伝播行列の計算 ( 47 )
bull 光の通過行列 Pthroughndash ライトフィールド rArr ライトフィールド
119819120784 出射ライトフィールドのサンプル数119819120783入射ライトフィールドのサンプル数
iquest119819120784行iquest
⋮⋮
⋮5 8
2
5 ⋯
CEDEC 2012
光の伝播行列の計算 ( 57 )
bull 光の入射行列 Pinndash ライトフィールド rArr 小領域
119820伝播先の小領域の頂点数119819120784 入射ライトフィールドのサンプル数
iquest119820行iquest
⋮
2 5 6
1
5⋮
Pin 計算時にヘミキューブ法などを用いて立体角を考慮
CEDEC 2012
光の伝播行列の計算 ( 67 )
bull 全ての小領域間の光の伝播は三種類の行列の組み合わせで計算可能
P = Pin times Pout上記例ではは再利用不可能だがは共通
P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 77 )
bull 光の伝播の計算のまとめ
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
多重反射への拡張
bull 間接光計算を反復実行
⋮
間接光計算
間接光計算
間接光計算
直接光
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
モジュールの導入 ( 13 )
bull モジュール( = 再利用可能な汎用小領域)の導入
bull 上記のようなシーンは「回転」も考慮すれば5種の立方体モジュールの組合わせで構成可能
3 方向壁 2 方向壁 2 方向壁 1 方向壁 0 方向壁
CEDEC 2012
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
モジュールの導入 ( 23 )
通過行列は(直進 右折 左折)の三種類
ライトフィールドデータを一つの行列に格納
特異値分解
データ量の削減及び計算の高速化
詳しくは論文 51 節参照
CEDEC 2012
モジュールの導入 ( 33 )
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
メリットは多いがシーンの自由度とのトレードオフ
モジュールの使い所は要検討
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
デモ
CEDEC 2012
考察
bull ライトフィールドは本当に必要か
bull 小領域間の位置関係が固定ならば(恐らく)不要
rArr レイトレーシング法で伝播行列 P を直接計算 した方が効率的bull 小領域を動的に入れ替える場合は必要
P = Pin times Pthrough times Pout
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ 3 まとめ
CEDEC 2012
発表内容のまとめ
bull Modular Radiance Transfer 法を解説ndash 長所
bull とにかく高速bull 多重反射を含んだ間接光が扱えるbull 技術のコア部分は汎用的で応用の余地が高い
ndash 短所bull 前計算を含め使い方に癖がある ( 実験を通してノウハウを蓄積すれば余り問題にならない )
ゲームへの応用は十分可能
CEDEC 2012
本スライド内で引用した論文の図の著作権は全て論文著者に帰属します
その他の図スライド本体挿絵等の著作権は
シリコンスタジオ株式会社に帰属します
著作権について
CEDEC 2012
最後に
御清聴ありがとうございました
httpwwwsiliconstudiocojppresentationsindexhtml
スライドデモは弊社 HP で近日公開
制作協力 河野 駿介 辻 俊晶 古家 亙 後藤 晋也 京田 文人 三谷 健一郎
問い合わせ先 田村 nk-tamurasiliconstudiocojp 安田 re-yasudasiliconstudiocojp
シリコンスタジオは常に人材を求めています
ご興味ある方は弊社 HP をご覧ください
CEDEC 2012
Appendix A 実装について
bull 実装自体は様々なアプローチが可能bull ここではデモの実装でのアプローチを紹介
CEDEC 2012
Appendix A 前計算について
bull F の計算ndash メッシュの全頂点からキューブマップにレンダリングndash ピクセルには頂点 ID とウェイトを出力
bull 直接光サンプルの計算ndash 頂点カラーを Stream Out でバッファに出力ndash 頂点シャドウあり
bull Light Probe の計算ndash 各 Probe の中心からキューブマップにレンダリングndash の対応する基底ベクトル同士を足し合わせた
ベクトル ( 直接光 + 間接光 ) を頂点カラーとして使用
CEDEC 2012
Appendix A ランタイム
bull 直接光の結果を Stream Out でバッファに出力ndash 頂点シャドウありndash カラーバッファへの書き込み OFFndash 複数オブジェクトの場合は単一バッファにオフ
セットを変えて出力
119897119889
CEDEC 2012
Appendix A ランタイム 係数
bull Compute Shader で を計算ndash は極めて横長の行列 ( 行 ~100程度 列 頂点数 )ndash は GPU が少々苦手な処理ではあるものの
タイリングベースの実装で高速に処理可能
iquest
119897119889119960 lowast119861119889minus1
CEDEC 2012
Appendix A ランタイム
bull Compute Shader で を計算ndash は極めて縦長 ( の転置と同サイズ ) なので素直に実装可能
iquest
119861119894119899119889 119960119897119894119899 119889 lowast
CEDEC 2012
Appendix A ランタイム 最終パス
bull を頂点カラーとして入力としてピクセル単位の直接光のシェーディングと合成して最終結果を得る
iquest +
CEDEC 2012
Appendix A ランタイム Light Probe(1)
bull Compute Shader でを計算ndash は縦長 ( 行 頂点数 timesSH係数の数 列 ~100程度 )
iquest
119880119907119900119897 119960119897119907119900119897 lowast
CEDEC 2012
Appendix A ランタイム Light Probe(2)
bull Probe を用いて Dynamic Objects をライティングndash 各 Light Probe が SH を 9係数で保持するため
3D Texture ではなく Structured-Buffer で保持ndash Vertex Shader 内で自力 Tri-Linear 補間
iquest +
CEDEC 2012
Appendix B 後半の補足
bull 大規模なシーンでの光の伝播bull 小領域間の光の伝播は個別に総当たりで計算
rArr小領域間の光の伝播は距離によって大きく減衰
実際は大規模シーンでも概ね二つ隣の小領域まで考慮すれば十分
CEDEC 2012
Appendix B 後半の補足
bull 小領域の境界
bull 小領域の境界部分が不連続になる rArr 小領域の境界部分は補間の必要がある
CEDEC 2012
bull スライドと論文で表記が違う記号があります
Appendix C 記号の表記
スライドでの表記 論文での表記
b
- Slide 1
- 発表の流れ
- 発表の流れ (2)
- 発表の概要
- 解説技術の特徴
- 注意点
- 発表の流れ (3)
- 発表の流れ (4)
- 間接光の概要
- 間接光の概要 (2)
- 解説手法の計算概要
- 間接光計算の解説手順
- 間接光計算の解説手順 (2)
- 間接光計算の解説手順 (3)
- 間接光計算の解説手順 (4)
- 間接光計算の解説手順 (5)
- 間接光計算の解説手順 (6)
- 間接光計算の考え方
- 間接光計算の考え方 (2)
- 間接光計算の考え方 (3)
- 間接光計算の考え方 (4)
- 間接光計算の考え方 (5)
- 間接光計算の解説手順 (7)
- 問題提起
- 間接光計算の解説手順 (8)
- キーアイディア
- キーアイディア (2)
- キーアイディア (3)
- キーアイディア (4)
- キーアイディア (5)
- キーアイディア (6)
- 間接光計算の解説手順 (9)
- 間接光計算の解説手順 (10)
- を求める
- を求める (2)
- を求める (3)
- 最適な基底
- サンプリングベースの基底
- サンプルの選び方について
- サンプリング行列
- サンプリング行列 (2)
- サンプリング行列 (3)
- サンプリング行列 (4)
- サンプリング行列 (5)
- サンプリング行列 (6)
- サンプリング行列 (7)
- 特異値分解(Singular Value Decomposition)
- 特異値分解(Singular Value Decomposition) (2)
- 特異値分解(Singular Value Decomposition) (3)
- 特異値分解(Singular Value Decomposition) (4)
- 特異値分解(Singular Value Decomposition) (5)
- 基底による直接光の近似
- アプローチの比較
- ハイブリッド手法の計算手順
- 係数の数の比較
- ランタイムの計算処理
- 係数の計算方法
- ランタイムの計算処理 (2)
- 間接光計算の解説手順 (11)
- ショートデモ
- 間接光計算の解説手順 (12)
- 間接光計算の解説手順 (13)
- Light Probe
- Light Probe (2)
- Light Probeによるライティング
- Light Probeによるライティング (2)
- 間接光計算の解説手順 (14)
- Light Probeの計算
- 動的なLight Probe
- 動的なLight Probe (2)
- 間接光計算の解説手順 (15)
- デモ
- デモ詳細
- パフォーマンス
- まとめ
- 発表の流れ (5)
- シーン分割による高速化の解説手順
- シーン分割による高速化の解説手順 (2)
- 問題提起 (14)
- 問題提起 (24)
- 問題提起 (34)
- 問題提起 (44)
- シーン分割による高速化の解説手順 (3)
- シーン分割による高速化の解説手順 (4)
- キーアイディア (16)
- キーアイディア (26)
- キーアイディア (36)
- キーアイディア (46)
- キーアイディア (56)
- キーアイディア (66)
- シーン分割による高速化の解説手順 (5)
- 光の伝播行列の計算 (17)
- 光の伝播行列の計算 (27)
- 光の伝播行列の計算 (37)
- 光の伝播行列の計算 (47)
- 光の伝播行列の計算 (57)
- 光の伝播行列の計算 (67)
- 光の伝播行列の計算 (77)
- シーン分割による高速化の解説手順 (6)
- シーン分割による高速化の解説手順 (7)
- 多重反射への拡張
- シーン分割による高速化の解説手順 (8)
- モジュールの導入 (13)
- モジュールの導入 (23)
- モジュールの導入 (33)
- シーン分割による高速化の解説手順 (9)
- デモ (2)
- 考察
- 発表の流れ (6)
- 発表内容のまとめ
- 著作権について
- 最後に
- Appendix A 実装について
- Appendix A 前計算について
- Appendix A ランタイム
- Appendix A ランタイム 係数
- Appendix A ランタイム
- Appendix A ランタイム 最終パス
- Appendix A ランタイム Light Probe(1)
- Appendix A ランタイム Light Probe(2)
- Appendix B 後半の補足
- Appendix B 後半の補足 (2)
- Appendix C 記号の表記
-
CEDEC 2012
Light Probe によるライティング
bull 時間の都合上詳細は割愛詳しくは下記書籍をご参照下さいndash Chapter8 「 KILLZONE2」 Light Probe自体の解説ndash Chapter9 「バイオハザード 5」 Light Probe によるラ
イティング
西川善司著「 3D ゲームファンのための
グラフィックス講座」
ここまではあくまで既存の手法の話
CEDEC 2012
Step1 静的オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 - 手法概要の説明 - データ更新時における高速化の解説 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Light Probe の計算
bull 通常 Light Probe は前計算した後更新しないndash Light Probe の計算は負荷が高い
今回は動的に Light Probe を更新する必要がある
CEDEC 2012
動的な Light Probe
bull 今回シーンのライティング結果は既知の状態の組み合わせに分解される
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
times120778 times120778 times120778times120778
CEDEC 2012
動的な Light Probe
bull 間接光と同様にそれぞれに対応した Light Probe を計算しておけば足し合わせで高速に計算可能
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
CEDEC 2012
Step1 背景オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
デモ
CEDEC 2012
デモ詳細
bull 背景オブジェクトndash 頂点数 10800 ( 頂点 )ndash基底の係数 22 (係数 )
bull Light Probendash Probe総数 500 (個 )ndash基底の係数 12 (係数 )ndash球面調和関数の係数 9 (係数 )
CEDEC 2012
パフォーマンス
bull 解像度は 1400800 で測定bull 実装には Compute Shader を使用bull 前計算約 45 分
ndash 2520 光源サンプルndash 20回反射まで考慮ndash 最適化で 10倍以上の高速化の余地あり
影あり 影なし 影なし GIなし
Geforce GTX 680 500 fps 800 fps 1500 fps
Geforce GTX 560 360 fps 440 fps 750 fps
Radeon 6630 M 80 fps 120 fps 280 fps
実装の Tips は Appendix に記載
CEDEC 2012
まとめ
bull 良い点ndash 非常に高速計算負荷が一定ndash 反射回数が無制限(行列 F に含められる )ndash 高速な Light Probe 計算ndash 様々な拡張
bull 悪い点ndash Light の位置方向を含めた前計算ndash 動的すぎるシーンは不可 (rarrDelta Radiance
Transfer)ndash 頂点カラーを念頭に置いたメッシュ分割頂点配置
ndash 複雑すぎない形状
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ
ndash 間接光計算手法の解説 (論文 4 節)ndash シーン分割による高速化の解説 (論文 5 節)
3 まとめ
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
問題提起 ( 14 )
bull 対象とする問題 シーンが複雑になった場合の計算負荷の増大
シンプルなシーン
より複雑なシーン
CEDEC 2012
問題提起 ( 24 )
bull 複雑なシーンでは1 メッシュ頂点数が増加2 必要な係数の数の増大 rArr 計算量の増大}
CEDEC 2012
問題提起 ( 34 )
bull 解決策シーンを複数の小領域に分割
rArr 適切に小領域を設定すればシーンの複雑さを 抑える事が可能bull 小領域の分割方法はユーザーが決定
CEDEC 2012
問題提起 ( 44 )
bull 各小領域内の間接光は前述の方法で計算可能bull 小領域間の光の伝播を別途考慮する必要がある
小領域間の光の伝播の高速な計算方法を解説
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
キーアイディア ( 16 )
bull 小領域間の光の伝播を個別に計算
CEDEC 2012
キーアイディア ( 26 )
bull 例として右rArr(中央)rArr左へ伝播する光を考える
キーアイディアでは多重反射を考慮しない光の伝播を考える
CEDEC 2012
キーアイディア ( 36 )
bull 小領域間の光の伝播は頂点間の影響に帰着
CEDEC 2012
キーアイディア ( 46 )
bull 小領域間の光の伝播行列 P を前計算119820 伝播先の小領域の頂点数119821 伝播元の小領域の頂点数
光の伝播行列P
119820行119821列[iquest ]P
CEDEC 2012
キーアイディア ( 56 )
bull 光の伝播行列 P を利用して光の伝播を高速に計算
[ 119956120783⋮119956119925]
119852 伝播元の小領域の頂点の色119941 伝播先の小領域の頂点の色
119820行119821列[iquest ][ 119941120783
⋮119941119924
] timesiquest P119820 伝播先の小領域の頂点数119821 伝播元の小領域の頂点数
CEDEC 2012
キーアイディア ( 66 )
bull 光の伝播を係数からの変換に修正
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
bull ライトフィールドという概念を導入
光の伝播行列の計算 ( 17 )
ライトフィールドは任意の点群を通過する
光を体系的に記録するためのデータ構造
境界面に注目
CEDEC 2012
光の伝播行列の計算 ( 27 )
bull 光の伝播行列 P を三要素に分割1 光の出射行列 Pout2 光の通過行列 Pthrough3 光の入射行列 Pin
右の小領域 中央の小領域 左の小領域P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 37 )
bull 光の出射行列 Poutndash 小領域 rArr ライトフィールド
119819120783 出射ライトフィールドのサンプル数119821 伝播元の小領域の頂点数
iquest119819120783行iquest
⋮⋮
⋮4 5 9
6
8
CEDEC 2012
光の伝播行列の計算 ( 47 )
bull 光の通過行列 Pthroughndash ライトフィールド rArr ライトフィールド
119819120784 出射ライトフィールドのサンプル数119819120783入射ライトフィールドのサンプル数
iquest119819120784行iquest
⋮⋮
⋮5 8
2
5 ⋯
CEDEC 2012
光の伝播行列の計算 ( 57 )
bull 光の入射行列 Pinndash ライトフィールド rArr 小領域
119820伝播先の小領域の頂点数119819120784 入射ライトフィールドのサンプル数
iquest119820行iquest
⋮
2 5 6
1
5⋮
Pin 計算時にヘミキューブ法などを用いて立体角を考慮
CEDEC 2012
光の伝播行列の計算 ( 67 )
bull 全ての小領域間の光の伝播は三種類の行列の組み合わせで計算可能
P = Pin times Pout上記例ではは再利用不可能だがは共通
P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 77 )
bull 光の伝播の計算のまとめ
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
多重反射への拡張
bull 間接光計算を反復実行
⋮
間接光計算
間接光計算
間接光計算
直接光
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
モジュールの導入 ( 13 )
bull モジュール( = 再利用可能な汎用小領域)の導入
bull 上記のようなシーンは「回転」も考慮すれば5種の立方体モジュールの組合わせで構成可能
3 方向壁 2 方向壁 2 方向壁 1 方向壁 0 方向壁
CEDEC 2012
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
モジュールの導入 ( 23 )
通過行列は(直進 右折 左折)の三種類
ライトフィールドデータを一つの行列に格納
特異値分解
データ量の削減及び計算の高速化
詳しくは論文 51 節参照
CEDEC 2012
モジュールの導入 ( 33 )
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
メリットは多いがシーンの自由度とのトレードオフ
モジュールの使い所は要検討
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
デモ
CEDEC 2012
考察
bull ライトフィールドは本当に必要か
bull 小領域間の位置関係が固定ならば(恐らく)不要
rArr レイトレーシング法で伝播行列 P を直接計算 した方が効率的bull 小領域を動的に入れ替える場合は必要
P = Pin times Pthrough times Pout
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ 3 まとめ
CEDEC 2012
発表内容のまとめ
bull Modular Radiance Transfer 法を解説ndash 長所
bull とにかく高速bull 多重反射を含んだ間接光が扱えるbull 技術のコア部分は汎用的で応用の余地が高い
ndash 短所bull 前計算を含め使い方に癖がある ( 実験を通してノウハウを蓄積すれば余り問題にならない )
ゲームへの応用は十分可能
CEDEC 2012
本スライド内で引用した論文の図の著作権は全て論文著者に帰属します
その他の図スライド本体挿絵等の著作権は
シリコンスタジオ株式会社に帰属します
著作権について
CEDEC 2012
最後に
御清聴ありがとうございました
httpwwwsiliconstudiocojppresentationsindexhtml
スライドデモは弊社 HP で近日公開
制作協力 河野 駿介 辻 俊晶 古家 亙 後藤 晋也 京田 文人 三谷 健一郎
問い合わせ先 田村 nk-tamurasiliconstudiocojp 安田 re-yasudasiliconstudiocojp
シリコンスタジオは常に人材を求めています
ご興味ある方は弊社 HP をご覧ください
CEDEC 2012
Appendix A 実装について
bull 実装自体は様々なアプローチが可能bull ここではデモの実装でのアプローチを紹介
CEDEC 2012
Appendix A 前計算について
bull F の計算ndash メッシュの全頂点からキューブマップにレンダリングndash ピクセルには頂点 ID とウェイトを出力
bull 直接光サンプルの計算ndash 頂点カラーを Stream Out でバッファに出力ndash 頂点シャドウあり
bull Light Probe の計算ndash 各 Probe の中心からキューブマップにレンダリングndash の対応する基底ベクトル同士を足し合わせた
ベクトル ( 直接光 + 間接光 ) を頂点カラーとして使用
CEDEC 2012
Appendix A ランタイム
bull 直接光の結果を Stream Out でバッファに出力ndash 頂点シャドウありndash カラーバッファへの書き込み OFFndash 複数オブジェクトの場合は単一バッファにオフ
セットを変えて出力
119897119889
CEDEC 2012
Appendix A ランタイム 係数
bull Compute Shader で を計算ndash は極めて横長の行列 ( 行 ~100程度 列 頂点数 )ndash は GPU が少々苦手な処理ではあるものの
タイリングベースの実装で高速に処理可能
iquest
119897119889119960 lowast119861119889minus1
CEDEC 2012
Appendix A ランタイム
bull Compute Shader で を計算ndash は極めて縦長 ( の転置と同サイズ ) なので素直に実装可能
iquest
119861119894119899119889 119960119897119894119899 119889 lowast
CEDEC 2012
Appendix A ランタイム 最終パス
bull を頂点カラーとして入力としてピクセル単位の直接光のシェーディングと合成して最終結果を得る
iquest +
CEDEC 2012
Appendix A ランタイム Light Probe(1)
bull Compute Shader でを計算ndash は縦長 ( 行 頂点数 timesSH係数の数 列 ~100程度 )
iquest
119880119907119900119897 119960119897119907119900119897 lowast
CEDEC 2012
Appendix A ランタイム Light Probe(2)
bull Probe を用いて Dynamic Objects をライティングndash 各 Light Probe が SH を 9係数で保持するため
3D Texture ではなく Structured-Buffer で保持ndash Vertex Shader 内で自力 Tri-Linear 補間
iquest +
CEDEC 2012
Appendix B 後半の補足
bull 大規模なシーンでの光の伝播bull 小領域間の光の伝播は個別に総当たりで計算
rArr小領域間の光の伝播は距離によって大きく減衰
実際は大規模シーンでも概ね二つ隣の小領域まで考慮すれば十分
CEDEC 2012
Appendix B 後半の補足
bull 小領域の境界
bull 小領域の境界部分が不連続になる rArr 小領域の境界部分は補間の必要がある
CEDEC 2012
bull スライドと論文で表記が違う記号があります
Appendix C 記号の表記
スライドでの表記 論文での表記
b
- Slide 1
- 発表の流れ
- 発表の流れ (2)
- 発表の概要
- 解説技術の特徴
- 注意点
- 発表の流れ (3)
- 発表の流れ (4)
- 間接光の概要
- 間接光の概要 (2)
- 解説手法の計算概要
- 間接光計算の解説手順
- 間接光計算の解説手順 (2)
- 間接光計算の解説手順 (3)
- 間接光計算の解説手順 (4)
- 間接光計算の解説手順 (5)
- 間接光計算の解説手順 (6)
- 間接光計算の考え方
- 間接光計算の考え方 (2)
- 間接光計算の考え方 (3)
- 間接光計算の考え方 (4)
- 間接光計算の考え方 (5)
- 間接光計算の解説手順 (7)
- 問題提起
- 間接光計算の解説手順 (8)
- キーアイディア
- キーアイディア (2)
- キーアイディア (3)
- キーアイディア (4)
- キーアイディア (5)
- キーアイディア (6)
- 間接光計算の解説手順 (9)
- 間接光計算の解説手順 (10)
- を求める
- を求める (2)
- を求める (3)
- 最適な基底
- サンプリングベースの基底
- サンプルの選び方について
- サンプリング行列
- サンプリング行列 (2)
- サンプリング行列 (3)
- サンプリング行列 (4)
- サンプリング行列 (5)
- サンプリング行列 (6)
- サンプリング行列 (7)
- 特異値分解(Singular Value Decomposition)
- 特異値分解(Singular Value Decomposition) (2)
- 特異値分解(Singular Value Decomposition) (3)
- 特異値分解(Singular Value Decomposition) (4)
- 特異値分解(Singular Value Decomposition) (5)
- 基底による直接光の近似
- アプローチの比較
- ハイブリッド手法の計算手順
- 係数の数の比較
- ランタイムの計算処理
- 係数の計算方法
- ランタイムの計算処理 (2)
- 間接光計算の解説手順 (11)
- ショートデモ
- 間接光計算の解説手順 (12)
- 間接光計算の解説手順 (13)
- Light Probe
- Light Probe (2)
- Light Probeによるライティング
- Light Probeによるライティング (2)
- 間接光計算の解説手順 (14)
- Light Probeの計算
- 動的なLight Probe
- 動的なLight Probe (2)
- 間接光計算の解説手順 (15)
- デモ
- デモ詳細
- パフォーマンス
- まとめ
- 発表の流れ (5)
- シーン分割による高速化の解説手順
- シーン分割による高速化の解説手順 (2)
- 問題提起 (14)
- 問題提起 (24)
- 問題提起 (34)
- 問題提起 (44)
- シーン分割による高速化の解説手順 (3)
- シーン分割による高速化の解説手順 (4)
- キーアイディア (16)
- キーアイディア (26)
- キーアイディア (36)
- キーアイディア (46)
- キーアイディア (56)
- キーアイディア (66)
- シーン分割による高速化の解説手順 (5)
- 光の伝播行列の計算 (17)
- 光の伝播行列の計算 (27)
- 光の伝播行列の計算 (37)
- 光の伝播行列の計算 (47)
- 光の伝播行列の計算 (57)
- 光の伝播行列の計算 (67)
- 光の伝播行列の計算 (77)
- シーン分割による高速化の解説手順 (6)
- シーン分割による高速化の解説手順 (7)
- 多重反射への拡張
- シーン分割による高速化の解説手順 (8)
- モジュールの導入 (13)
- モジュールの導入 (23)
- モジュールの導入 (33)
- シーン分割による高速化の解説手順 (9)
- デモ (2)
- 考察
- 発表の流れ (6)
- 発表内容のまとめ
- 著作権について
- 最後に
- Appendix A 実装について
- Appendix A 前計算について
- Appendix A ランタイム
- Appendix A ランタイム 係数
- Appendix A ランタイム
- Appendix A ランタイム 最終パス
- Appendix A ランタイム Light Probe(1)
- Appendix A ランタイム Light Probe(2)
- Appendix B 後半の補足
- Appendix B 後半の補足 (2)
- Appendix C 記号の表記
-
CEDEC 2012
Step1 静的オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 - 手法概要の説明 - データ更新時における高速化の解説 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
Light Probe の計算
bull 通常 Light Probe は前計算した後更新しないndash Light Probe の計算は負荷が高い
今回は動的に Light Probe を更新する必要がある
CEDEC 2012
動的な Light Probe
bull 今回シーンのライティング結果は既知の状態の組み合わせに分解される
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
times120778 times120778 times120778times120778
CEDEC 2012
動的な Light Probe
bull 間接光と同様にそれぞれに対応した Light Probe を計算しておけば足し合わせで高速に計算可能
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
CEDEC 2012
Step1 背景オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
デモ
CEDEC 2012
デモ詳細
bull 背景オブジェクトndash 頂点数 10800 ( 頂点 )ndash基底の係数 22 (係数 )
bull Light Probendash Probe総数 500 (個 )ndash基底の係数 12 (係数 )ndash球面調和関数の係数 9 (係数 )
CEDEC 2012
パフォーマンス
bull 解像度は 1400800 で測定bull 実装には Compute Shader を使用bull 前計算約 45 分
ndash 2520 光源サンプルndash 20回反射まで考慮ndash 最適化で 10倍以上の高速化の余地あり
影あり 影なし 影なし GIなし
Geforce GTX 680 500 fps 800 fps 1500 fps
Geforce GTX 560 360 fps 440 fps 750 fps
Radeon 6630 M 80 fps 120 fps 280 fps
実装の Tips は Appendix に記載
CEDEC 2012
まとめ
bull 良い点ndash 非常に高速計算負荷が一定ndash 反射回数が無制限(行列 F に含められる )ndash 高速な Light Probe 計算ndash 様々な拡張
bull 悪い点ndash Light の位置方向を含めた前計算ndash 動的すぎるシーンは不可 (rarrDelta Radiance
Transfer)ndash 頂点カラーを念頭に置いたメッシュ分割頂点配置
ndash 複雑すぎない形状
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ
ndash 間接光計算手法の解説 (論文 4 節)ndash シーン分割による高速化の解説 (論文 5 節)
3 まとめ
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
問題提起 ( 14 )
bull 対象とする問題 シーンが複雑になった場合の計算負荷の増大
シンプルなシーン
より複雑なシーン
CEDEC 2012
問題提起 ( 24 )
bull 複雑なシーンでは1 メッシュ頂点数が増加2 必要な係数の数の増大 rArr 計算量の増大}
CEDEC 2012
問題提起 ( 34 )
bull 解決策シーンを複数の小領域に分割
rArr 適切に小領域を設定すればシーンの複雑さを 抑える事が可能bull 小領域の分割方法はユーザーが決定
CEDEC 2012
問題提起 ( 44 )
bull 各小領域内の間接光は前述の方法で計算可能bull 小領域間の光の伝播を別途考慮する必要がある
小領域間の光の伝播の高速な計算方法を解説
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
キーアイディア ( 16 )
bull 小領域間の光の伝播を個別に計算
CEDEC 2012
キーアイディア ( 26 )
bull 例として右rArr(中央)rArr左へ伝播する光を考える
キーアイディアでは多重反射を考慮しない光の伝播を考える
CEDEC 2012
キーアイディア ( 36 )
bull 小領域間の光の伝播は頂点間の影響に帰着
CEDEC 2012
キーアイディア ( 46 )
bull 小領域間の光の伝播行列 P を前計算119820 伝播先の小領域の頂点数119821 伝播元の小領域の頂点数
光の伝播行列P
119820行119821列[iquest ]P
CEDEC 2012
キーアイディア ( 56 )
bull 光の伝播行列 P を利用して光の伝播を高速に計算
[ 119956120783⋮119956119925]
119852 伝播元の小領域の頂点の色119941 伝播先の小領域の頂点の色
119820行119821列[iquest ][ 119941120783
⋮119941119924
] timesiquest P119820 伝播先の小領域の頂点数119821 伝播元の小領域の頂点数
CEDEC 2012
キーアイディア ( 66 )
bull 光の伝播を係数からの変換に修正
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
bull ライトフィールドという概念を導入
光の伝播行列の計算 ( 17 )
ライトフィールドは任意の点群を通過する
光を体系的に記録するためのデータ構造
境界面に注目
CEDEC 2012
光の伝播行列の計算 ( 27 )
bull 光の伝播行列 P を三要素に分割1 光の出射行列 Pout2 光の通過行列 Pthrough3 光の入射行列 Pin
右の小領域 中央の小領域 左の小領域P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 37 )
bull 光の出射行列 Poutndash 小領域 rArr ライトフィールド
119819120783 出射ライトフィールドのサンプル数119821 伝播元の小領域の頂点数
iquest119819120783行iquest
⋮⋮
⋮4 5 9
6
8
CEDEC 2012
光の伝播行列の計算 ( 47 )
bull 光の通過行列 Pthroughndash ライトフィールド rArr ライトフィールド
119819120784 出射ライトフィールドのサンプル数119819120783入射ライトフィールドのサンプル数
iquest119819120784行iquest
⋮⋮
⋮5 8
2
5 ⋯
CEDEC 2012
光の伝播行列の計算 ( 57 )
bull 光の入射行列 Pinndash ライトフィールド rArr 小領域
119820伝播先の小領域の頂点数119819120784 入射ライトフィールドのサンプル数
iquest119820行iquest
⋮
2 5 6
1
5⋮
Pin 計算時にヘミキューブ法などを用いて立体角を考慮
CEDEC 2012
光の伝播行列の計算 ( 67 )
bull 全ての小領域間の光の伝播は三種類の行列の組み合わせで計算可能
P = Pin times Pout上記例ではは再利用不可能だがは共通
P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 77 )
bull 光の伝播の計算のまとめ
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
多重反射への拡張
bull 間接光計算を反復実行
⋮
間接光計算
間接光計算
間接光計算
直接光
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
モジュールの導入 ( 13 )
bull モジュール( = 再利用可能な汎用小領域)の導入
bull 上記のようなシーンは「回転」も考慮すれば5種の立方体モジュールの組合わせで構成可能
3 方向壁 2 方向壁 2 方向壁 1 方向壁 0 方向壁
CEDEC 2012
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
モジュールの導入 ( 23 )
通過行列は(直進 右折 左折)の三種類
ライトフィールドデータを一つの行列に格納
特異値分解
データ量の削減及び計算の高速化
詳しくは論文 51 節参照
CEDEC 2012
モジュールの導入 ( 33 )
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
メリットは多いがシーンの自由度とのトレードオフ
モジュールの使い所は要検討
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
デモ
CEDEC 2012
考察
bull ライトフィールドは本当に必要か
bull 小領域間の位置関係が固定ならば(恐らく)不要
rArr レイトレーシング法で伝播行列 P を直接計算 した方が効率的bull 小領域を動的に入れ替える場合は必要
P = Pin times Pthrough times Pout
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ 3 まとめ
CEDEC 2012
発表内容のまとめ
bull Modular Radiance Transfer 法を解説ndash 長所
bull とにかく高速bull 多重反射を含んだ間接光が扱えるbull 技術のコア部分は汎用的で応用の余地が高い
ndash 短所bull 前計算を含め使い方に癖がある ( 実験を通してノウハウを蓄積すれば余り問題にならない )
ゲームへの応用は十分可能
CEDEC 2012
本スライド内で引用した論文の図の著作権は全て論文著者に帰属します
その他の図スライド本体挿絵等の著作権は
シリコンスタジオ株式会社に帰属します
著作権について
CEDEC 2012
最後に
御清聴ありがとうございました
httpwwwsiliconstudiocojppresentationsindexhtml
スライドデモは弊社 HP で近日公開
制作協力 河野 駿介 辻 俊晶 古家 亙 後藤 晋也 京田 文人 三谷 健一郎
問い合わせ先 田村 nk-tamurasiliconstudiocojp 安田 re-yasudasiliconstudiocojp
シリコンスタジオは常に人材を求めています
ご興味ある方は弊社 HP をご覧ください
CEDEC 2012
Appendix A 実装について
bull 実装自体は様々なアプローチが可能bull ここではデモの実装でのアプローチを紹介
CEDEC 2012
Appendix A 前計算について
bull F の計算ndash メッシュの全頂点からキューブマップにレンダリングndash ピクセルには頂点 ID とウェイトを出力
bull 直接光サンプルの計算ndash 頂点カラーを Stream Out でバッファに出力ndash 頂点シャドウあり
bull Light Probe の計算ndash 各 Probe の中心からキューブマップにレンダリングndash の対応する基底ベクトル同士を足し合わせた
ベクトル ( 直接光 + 間接光 ) を頂点カラーとして使用
CEDEC 2012
Appendix A ランタイム
bull 直接光の結果を Stream Out でバッファに出力ndash 頂点シャドウありndash カラーバッファへの書き込み OFFndash 複数オブジェクトの場合は単一バッファにオフ
セットを変えて出力
119897119889
CEDEC 2012
Appendix A ランタイム 係数
bull Compute Shader で を計算ndash は極めて横長の行列 ( 行 ~100程度 列 頂点数 )ndash は GPU が少々苦手な処理ではあるものの
タイリングベースの実装で高速に処理可能
iquest
119897119889119960 lowast119861119889minus1
CEDEC 2012
Appendix A ランタイム
bull Compute Shader で を計算ndash は極めて縦長 ( の転置と同サイズ ) なので素直に実装可能
iquest
119861119894119899119889 119960119897119894119899 119889 lowast
CEDEC 2012
Appendix A ランタイム 最終パス
bull を頂点カラーとして入力としてピクセル単位の直接光のシェーディングと合成して最終結果を得る
iquest +
CEDEC 2012
Appendix A ランタイム Light Probe(1)
bull Compute Shader でを計算ndash は縦長 ( 行 頂点数 timesSH係数の数 列 ~100程度 )
iquest
119880119907119900119897 119960119897119907119900119897 lowast
CEDEC 2012
Appendix A ランタイム Light Probe(2)
bull Probe を用いて Dynamic Objects をライティングndash 各 Light Probe が SH を 9係数で保持するため
3D Texture ではなく Structured-Buffer で保持ndash Vertex Shader 内で自力 Tri-Linear 補間
iquest +
CEDEC 2012
Appendix B 後半の補足
bull 大規模なシーンでの光の伝播bull 小領域間の光の伝播は個別に総当たりで計算
rArr小領域間の光の伝播は距離によって大きく減衰
実際は大規模シーンでも概ね二つ隣の小領域まで考慮すれば十分
CEDEC 2012
Appendix B 後半の補足
bull 小領域の境界
bull 小領域の境界部分が不連続になる rArr 小領域の境界部分は補間の必要がある
CEDEC 2012
bull スライドと論文で表記が違う記号があります
Appendix C 記号の表記
スライドでの表記 論文での表記
b
- Slide 1
- 発表の流れ
- 発表の流れ (2)
- 発表の概要
- 解説技術の特徴
- 注意点
- 発表の流れ (3)
- 発表の流れ (4)
- 間接光の概要
- 間接光の概要 (2)
- 解説手法の計算概要
- 間接光計算の解説手順
- 間接光計算の解説手順 (2)
- 間接光計算の解説手順 (3)
- 間接光計算の解説手順 (4)
- 間接光計算の解説手順 (5)
- 間接光計算の解説手順 (6)
- 間接光計算の考え方
- 間接光計算の考え方 (2)
- 間接光計算の考え方 (3)
- 間接光計算の考え方 (4)
- 間接光計算の考え方 (5)
- 間接光計算の解説手順 (7)
- 問題提起
- 間接光計算の解説手順 (8)
- キーアイディア
- キーアイディア (2)
- キーアイディア (3)
- キーアイディア (4)
- キーアイディア (5)
- キーアイディア (6)
- 間接光計算の解説手順 (9)
- 間接光計算の解説手順 (10)
- を求める
- を求める (2)
- を求める (3)
- 最適な基底
- サンプリングベースの基底
- サンプルの選び方について
- サンプリング行列
- サンプリング行列 (2)
- サンプリング行列 (3)
- サンプリング行列 (4)
- サンプリング行列 (5)
- サンプリング行列 (6)
- サンプリング行列 (7)
- 特異値分解(Singular Value Decomposition)
- 特異値分解(Singular Value Decomposition) (2)
- 特異値分解(Singular Value Decomposition) (3)
- 特異値分解(Singular Value Decomposition) (4)
- 特異値分解(Singular Value Decomposition) (5)
- 基底による直接光の近似
- アプローチの比較
- ハイブリッド手法の計算手順
- 係数の数の比較
- ランタイムの計算処理
- 係数の計算方法
- ランタイムの計算処理 (2)
- 間接光計算の解説手順 (11)
- ショートデモ
- 間接光計算の解説手順 (12)
- 間接光計算の解説手順 (13)
- Light Probe
- Light Probe (2)
- Light Probeによるライティング
- Light Probeによるライティング (2)
- 間接光計算の解説手順 (14)
- Light Probeの計算
- 動的なLight Probe
- 動的なLight Probe (2)
- 間接光計算の解説手順 (15)
- デモ
- デモ詳細
- パフォーマンス
- まとめ
- 発表の流れ (5)
- シーン分割による高速化の解説手順
- シーン分割による高速化の解説手順 (2)
- 問題提起 (14)
- 問題提起 (24)
- 問題提起 (34)
- 問題提起 (44)
- シーン分割による高速化の解説手順 (3)
- シーン分割による高速化の解説手順 (4)
- キーアイディア (16)
- キーアイディア (26)
- キーアイディア (36)
- キーアイディア (46)
- キーアイディア (56)
- キーアイディア (66)
- シーン分割による高速化の解説手順 (5)
- 光の伝播行列の計算 (17)
- 光の伝播行列の計算 (27)
- 光の伝播行列の計算 (37)
- 光の伝播行列の計算 (47)
- 光の伝播行列の計算 (57)
- 光の伝播行列の計算 (67)
- 光の伝播行列の計算 (77)
- シーン分割による高速化の解説手順 (6)
- シーン分割による高速化の解説手順 (7)
- 多重反射への拡張
- シーン分割による高速化の解説手順 (8)
- モジュールの導入 (13)
- モジュールの導入 (23)
- モジュールの導入 (33)
- シーン分割による高速化の解説手順 (9)
- デモ (2)
- 考察
- 発表の流れ (6)
- 発表内容のまとめ
- 著作権について
- 最後に
- Appendix A 実装について
- Appendix A 前計算について
- Appendix A ランタイム
- Appendix A ランタイム 係数
- Appendix A ランタイム
- Appendix A ランタイム 最終パス
- Appendix A ランタイム Light Probe(1)
- Appendix A ランタイム Light Probe(2)
- Appendix B 後半の補足
- Appendix B 後半の補足 (2)
- Appendix C 記号の表記
-
CEDEC 2012
Light Probe の計算
bull 通常 Light Probe は前計算した後更新しないndash Light Probe の計算は負荷が高い
今回は動的に Light Probe を更新する必要がある
CEDEC 2012
動的な Light Probe
bull 今回シーンのライティング結果は既知の状態の組み合わせに分解される
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
times120778 times120778 times120778times120778
CEDEC 2012
動的な Light Probe
bull 間接光と同様にそれぞれに対応した Light Probe を計算しておけば足し合わせで高速に計算可能
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
CEDEC 2012
Step1 背景オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
デモ
CEDEC 2012
デモ詳細
bull 背景オブジェクトndash 頂点数 10800 ( 頂点 )ndash基底の係数 22 (係数 )
bull Light Probendash Probe総数 500 (個 )ndash基底の係数 12 (係数 )ndash球面調和関数の係数 9 (係数 )
CEDEC 2012
パフォーマンス
bull 解像度は 1400800 で測定bull 実装には Compute Shader を使用bull 前計算約 45 分
ndash 2520 光源サンプルndash 20回反射まで考慮ndash 最適化で 10倍以上の高速化の余地あり
影あり 影なし 影なし GIなし
Geforce GTX 680 500 fps 800 fps 1500 fps
Geforce GTX 560 360 fps 440 fps 750 fps
Radeon 6630 M 80 fps 120 fps 280 fps
実装の Tips は Appendix に記載
CEDEC 2012
まとめ
bull 良い点ndash 非常に高速計算負荷が一定ndash 反射回数が無制限(行列 F に含められる )ndash 高速な Light Probe 計算ndash 様々な拡張
bull 悪い点ndash Light の位置方向を含めた前計算ndash 動的すぎるシーンは不可 (rarrDelta Radiance
Transfer)ndash 頂点カラーを念頭に置いたメッシュ分割頂点配置
ndash 複雑すぎない形状
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ
ndash 間接光計算手法の解説 (論文 4 節)ndash シーン分割による高速化の解説 (論文 5 節)
3 まとめ
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
問題提起 ( 14 )
bull 対象とする問題 シーンが複雑になった場合の計算負荷の増大
シンプルなシーン
より複雑なシーン
CEDEC 2012
問題提起 ( 24 )
bull 複雑なシーンでは1 メッシュ頂点数が増加2 必要な係数の数の増大 rArr 計算量の増大}
CEDEC 2012
問題提起 ( 34 )
bull 解決策シーンを複数の小領域に分割
rArr 適切に小領域を設定すればシーンの複雑さを 抑える事が可能bull 小領域の分割方法はユーザーが決定
CEDEC 2012
問題提起 ( 44 )
bull 各小領域内の間接光は前述の方法で計算可能bull 小領域間の光の伝播を別途考慮する必要がある
小領域間の光の伝播の高速な計算方法を解説
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
キーアイディア ( 16 )
bull 小領域間の光の伝播を個別に計算
CEDEC 2012
キーアイディア ( 26 )
bull 例として右rArr(中央)rArr左へ伝播する光を考える
キーアイディアでは多重反射を考慮しない光の伝播を考える
CEDEC 2012
キーアイディア ( 36 )
bull 小領域間の光の伝播は頂点間の影響に帰着
CEDEC 2012
キーアイディア ( 46 )
bull 小領域間の光の伝播行列 P を前計算119820 伝播先の小領域の頂点数119821 伝播元の小領域の頂点数
光の伝播行列P
119820行119821列[iquest ]P
CEDEC 2012
キーアイディア ( 56 )
bull 光の伝播行列 P を利用して光の伝播を高速に計算
[ 119956120783⋮119956119925]
119852 伝播元の小領域の頂点の色119941 伝播先の小領域の頂点の色
119820行119821列[iquest ][ 119941120783
⋮119941119924
] timesiquest P119820 伝播先の小領域の頂点数119821 伝播元の小領域の頂点数
CEDEC 2012
キーアイディア ( 66 )
bull 光の伝播を係数からの変換に修正
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
bull ライトフィールドという概念を導入
光の伝播行列の計算 ( 17 )
ライトフィールドは任意の点群を通過する
光を体系的に記録するためのデータ構造
境界面に注目
CEDEC 2012
光の伝播行列の計算 ( 27 )
bull 光の伝播行列 P を三要素に分割1 光の出射行列 Pout2 光の通過行列 Pthrough3 光の入射行列 Pin
右の小領域 中央の小領域 左の小領域P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 37 )
bull 光の出射行列 Poutndash 小領域 rArr ライトフィールド
119819120783 出射ライトフィールドのサンプル数119821 伝播元の小領域の頂点数
iquest119819120783行iquest
⋮⋮
⋮4 5 9
6
8
CEDEC 2012
光の伝播行列の計算 ( 47 )
bull 光の通過行列 Pthroughndash ライトフィールド rArr ライトフィールド
119819120784 出射ライトフィールドのサンプル数119819120783入射ライトフィールドのサンプル数
iquest119819120784行iquest
⋮⋮
⋮5 8
2
5 ⋯
CEDEC 2012
光の伝播行列の計算 ( 57 )
bull 光の入射行列 Pinndash ライトフィールド rArr 小領域
119820伝播先の小領域の頂点数119819120784 入射ライトフィールドのサンプル数
iquest119820行iquest
⋮
2 5 6
1
5⋮
Pin 計算時にヘミキューブ法などを用いて立体角を考慮
CEDEC 2012
光の伝播行列の計算 ( 67 )
bull 全ての小領域間の光の伝播は三種類の行列の組み合わせで計算可能
P = Pin times Pout上記例ではは再利用不可能だがは共通
P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 77 )
bull 光の伝播の計算のまとめ
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
多重反射への拡張
bull 間接光計算を反復実行
⋮
間接光計算
間接光計算
間接光計算
直接光
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
モジュールの導入 ( 13 )
bull モジュール( = 再利用可能な汎用小領域)の導入
bull 上記のようなシーンは「回転」も考慮すれば5種の立方体モジュールの組合わせで構成可能
3 方向壁 2 方向壁 2 方向壁 1 方向壁 0 方向壁
CEDEC 2012
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
モジュールの導入 ( 23 )
通過行列は(直進 右折 左折)の三種類
ライトフィールドデータを一つの行列に格納
特異値分解
データ量の削減及び計算の高速化
詳しくは論文 51 節参照
CEDEC 2012
モジュールの導入 ( 33 )
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
メリットは多いがシーンの自由度とのトレードオフ
モジュールの使い所は要検討
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
デモ
CEDEC 2012
考察
bull ライトフィールドは本当に必要か
bull 小領域間の位置関係が固定ならば(恐らく)不要
rArr レイトレーシング法で伝播行列 P を直接計算 した方が効率的bull 小領域を動的に入れ替える場合は必要
P = Pin times Pthrough times Pout
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ 3 まとめ
CEDEC 2012
発表内容のまとめ
bull Modular Radiance Transfer 法を解説ndash 長所
bull とにかく高速bull 多重反射を含んだ間接光が扱えるbull 技術のコア部分は汎用的で応用の余地が高い
ndash 短所bull 前計算を含め使い方に癖がある ( 実験を通してノウハウを蓄積すれば余り問題にならない )
ゲームへの応用は十分可能
CEDEC 2012
本スライド内で引用した論文の図の著作権は全て論文著者に帰属します
その他の図スライド本体挿絵等の著作権は
シリコンスタジオ株式会社に帰属します
著作権について
CEDEC 2012
最後に
御清聴ありがとうございました
httpwwwsiliconstudiocojppresentationsindexhtml
スライドデモは弊社 HP で近日公開
制作協力 河野 駿介 辻 俊晶 古家 亙 後藤 晋也 京田 文人 三谷 健一郎
問い合わせ先 田村 nk-tamurasiliconstudiocojp 安田 re-yasudasiliconstudiocojp
シリコンスタジオは常に人材を求めています
ご興味ある方は弊社 HP をご覧ください
CEDEC 2012
Appendix A 実装について
bull 実装自体は様々なアプローチが可能bull ここではデモの実装でのアプローチを紹介
CEDEC 2012
Appendix A 前計算について
bull F の計算ndash メッシュの全頂点からキューブマップにレンダリングndash ピクセルには頂点 ID とウェイトを出力
bull 直接光サンプルの計算ndash 頂点カラーを Stream Out でバッファに出力ndash 頂点シャドウあり
bull Light Probe の計算ndash 各 Probe の中心からキューブマップにレンダリングndash の対応する基底ベクトル同士を足し合わせた
ベクトル ( 直接光 + 間接光 ) を頂点カラーとして使用
CEDEC 2012
Appendix A ランタイム
bull 直接光の結果を Stream Out でバッファに出力ndash 頂点シャドウありndash カラーバッファへの書き込み OFFndash 複数オブジェクトの場合は単一バッファにオフ
セットを変えて出力
119897119889
CEDEC 2012
Appendix A ランタイム 係数
bull Compute Shader で を計算ndash は極めて横長の行列 ( 行 ~100程度 列 頂点数 )ndash は GPU が少々苦手な処理ではあるものの
タイリングベースの実装で高速に処理可能
iquest
119897119889119960 lowast119861119889minus1
CEDEC 2012
Appendix A ランタイム
bull Compute Shader で を計算ndash は極めて縦長 ( の転置と同サイズ ) なので素直に実装可能
iquest
119861119894119899119889 119960119897119894119899 119889 lowast
CEDEC 2012
Appendix A ランタイム 最終パス
bull を頂点カラーとして入力としてピクセル単位の直接光のシェーディングと合成して最終結果を得る
iquest +
CEDEC 2012
Appendix A ランタイム Light Probe(1)
bull Compute Shader でを計算ndash は縦長 ( 行 頂点数 timesSH係数の数 列 ~100程度 )
iquest
119880119907119900119897 119960119897119907119900119897 lowast
CEDEC 2012
Appendix A ランタイム Light Probe(2)
bull Probe を用いて Dynamic Objects をライティングndash 各 Light Probe が SH を 9係数で保持するため
3D Texture ではなく Structured-Buffer で保持ndash Vertex Shader 内で自力 Tri-Linear 補間
iquest +
CEDEC 2012
Appendix B 後半の補足
bull 大規模なシーンでの光の伝播bull 小領域間の光の伝播は個別に総当たりで計算
rArr小領域間の光の伝播は距離によって大きく減衰
実際は大規模シーンでも概ね二つ隣の小領域まで考慮すれば十分
CEDEC 2012
Appendix B 後半の補足
bull 小領域の境界
bull 小領域の境界部分が不連続になる rArr 小領域の境界部分は補間の必要がある
CEDEC 2012
bull スライドと論文で表記が違う記号があります
Appendix C 記号の表記
スライドでの表記 論文での表記
b
- Slide 1
- 発表の流れ
- 発表の流れ (2)
- 発表の概要
- 解説技術の特徴
- 注意点
- 発表の流れ (3)
- 発表の流れ (4)
- 間接光の概要
- 間接光の概要 (2)
- 解説手法の計算概要
- 間接光計算の解説手順
- 間接光計算の解説手順 (2)
- 間接光計算の解説手順 (3)
- 間接光計算の解説手順 (4)
- 間接光計算の解説手順 (5)
- 間接光計算の解説手順 (6)
- 間接光計算の考え方
- 間接光計算の考え方 (2)
- 間接光計算の考え方 (3)
- 間接光計算の考え方 (4)
- 間接光計算の考え方 (5)
- 間接光計算の解説手順 (7)
- 問題提起
- 間接光計算の解説手順 (8)
- キーアイディア
- キーアイディア (2)
- キーアイディア (3)
- キーアイディア (4)
- キーアイディア (5)
- キーアイディア (6)
- 間接光計算の解説手順 (9)
- 間接光計算の解説手順 (10)
- を求める
- を求める (2)
- を求める (3)
- 最適な基底
- サンプリングベースの基底
- サンプルの選び方について
- サンプリング行列
- サンプリング行列 (2)
- サンプリング行列 (3)
- サンプリング行列 (4)
- サンプリング行列 (5)
- サンプリング行列 (6)
- サンプリング行列 (7)
- 特異値分解(Singular Value Decomposition)
- 特異値分解(Singular Value Decomposition) (2)
- 特異値分解(Singular Value Decomposition) (3)
- 特異値分解(Singular Value Decomposition) (4)
- 特異値分解(Singular Value Decomposition) (5)
- 基底による直接光の近似
- アプローチの比較
- ハイブリッド手法の計算手順
- 係数の数の比較
- ランタイムの計算処理
- 係数の計算方法
- ランタイムの計算処理 (2)
- 間接光計算の解説手順 (11)
- ショートデモ
- 間接光計算の解説手順 (12)
- 間接光計算の解説手順 (13)
- Light Probe
- Light Probe (2)
- Light Probeによるライティング
- Light Probeによるライティング (2)
- 間接光計算の解説手順 (14)
- Light Probeの計算
- 動的なLight Probe
- 動的なLight Probe (2)
- 間接光計算の解説手順 (15)
- デモ
- デモ詳細
- パフォーマンス
- まとめ
- 発表の流れ (5)
- シーン分割による高速化の解説手順
- シーン分割による高速化の解説手順 (2)
- 問題提起 (14)
- 問題提起 (24)
- 問題提起 (34)
- 問題提起 (44)
- シーン分割による高速化の解説手順 (3)
- シーン分割による高速化の解説手順 (4)
- キーアイディア (16)
- キーアイディア (26)
- キーアイディア (36)
- キーアイディア (46)
- キーアイディア (56)
- キーアイディア (66)
- シーン分割による高速化の解説手順 (5)
- 光の伝播行列の計算 (17)
- 光の伝播行列の計算 (27)
- 光の伝播行列の計算 (37)
- 光の伝播行列の計算 (47)
- 光の伝播行列の計算 (57)
- 光の伝播行列の計算 (67)
- 光の伝播行列の計算 (77)
- シーン分割による高速化の解説手順 (6)
- シーン分割による高速化の解説手順 (7)
- 多重反射への拡張
- シーン分割による高速化の解説手順 (8)
- モジュールの導入 (13)
- モジュールの導入 (23)
- モジュールの導入 (33)
- シーン分割による高速化の解説手順 (9)
- デモ (2)
- 考察
- 発表の流れ (6)
- 発表内容のまとめ
- 著作権について
- 最後に
- Appendix A 実装について
- Appendix A 前計算について
- Appendix A ランタイム
- Appendix A ランタイム 係数
- Appendix A ランタイム
- Appendix A ランタイム 最終パス
- Appendix A ランタイム Light Probe(1)
- Appendix A ランタイム Light Probe(2)
- Appendix B 後半の補足
- Appendix B 後半の補足 (2)
- Appendix C 記号の表記
-
CEDEC 2012
動的な Light Probe
bull 今回シーンのライティング結果は既知の状態の組み合わせに分解される
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
times120778 times120778 times120778times120778
CEDEC 2012
動的な Light Probe
bull 間接光と同様にそれぞれに対応した Light Probe を計算しておけば足し合わせで高速に計算可能
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
CEDEC 2012
Step1 背景オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
デモ
CEDEC 2012
デモ詳細
bull 背景オブジェクトndash 頂点数 10800 ( 頂点 )ndash基底の係数 22 (係数 )
bull Light Probendash Probe総数 500 (個 )ndash基底の係数 12 (係数 )ndash球面調和関数の係数 9 (係数 )
CEDEC 2012
パフォーマンス
bull 解像度は 1400800 で測定bull 実装には Compute Shader を使用bull 前計算約 45 分
ndash 2520 光源サンプルndash 20回反射まで考慮ndash 最適化で 10倍以上の高速化の余地あり
影あり 影なし 影なし GIなし
Geforce GTX 680 500 fps 800 fps 1500 fps
Geforce GTX 560 360 fps 440 fps 750 fps
Radeon 6630 M 80 fps 120 fps 280 fps
実装の Tips は Appendix に記載
CEDEC 2012
まとめ
bull 良い点ndash 非常に高速計算負荷が一定ndash 反射回数が無制限(行列 F に含められる )ndash 高速な Light Probe 計算ndash 様々な拡張
bull 悪い点ndash Light の位置方向を含めた前計算ndash 動的すぎるシーンは不可 (rarrDelta Radiance
Transfer)ndash 頂点カラーを念頭に置いたメッシュ分割頂点配置
ndash 複雑すぎない形状
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ
ndash 間接光計算手法の解説 (論文 4 節)ndash シーン分割による高速化の解説 (論文 5 節)
3 まとめ
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
問題提起 ( 14 )
bull 対象とする問題 シーンが複雑になった場合の計算負荷の増大
シンプルなシーン
より複雑なシーン
CEDEC 2012
問題提起 ( 24 )
bull 複雑なシーンでは1 メッシュ頂点数が増加2 必要な係数の数の増大 rArr 計算量の増大}
CEDEC 2012
問題提起 ( 34 )
bull 解決策シーンを複数の小領域に分割
rArr 適切に小領域を設定すればシーンの複雑さを 抑える事が可能bull 小領域の分割方法はユーザーが決定
CEDEC 2012
問題提起 ( 44 )
bull 各小領域内の間接光は前述の方法で計算可能bull 小領域間の光の伝播を別途考慮する必要がある
小領域間の光の伝播の高速な計算方法を解説
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
キーアイディア ( 16 )
bull 小領域間の光の伝播を個別に計算
CEDEC 2012
キーアイディア ( 26 )
bull 例として右rArr(中央)rArr左へ伝播する光を考える
キーアイディアでは多重反射を考慮しない光の伝播を考える
CEDEC 2012
キーアイディア ( 36 )
bull 小領域間の光の伝播は頂点間の影響に帰着
CEDEC 2012
キーアイディア ( 46 )
bull 小領域間の光の伝播行列 P を前計算119820 伝播先の小領域の頂点数119821 伝播元の小領域の頂点数
光の伝播行列P
119820行119821列[iquest ]P
CEDEC 2012
キーアイディア ( 56 )
bull 光の伝播行列 P を利用して光の伝播を高速に計算
[ 119956120783⋮119956119925]
119852 伝播元の小領域の頂点の色119941 伝播先の小領域の頂点の色
119820行119821列[iquest ][ 119941120783
⋮119941119924
] timesiquest P119820 伝播先の小領域の頂点数119821 伝播元の小領域の頂点数
CEDEC 2012
キーアイディア ( 66 )
bull 光の伝播を係数からの変換に修正
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
bull ライトフィールドという概念を導入
光の伝播行列の計算 ( 17 )
ライトフィールドは任意の点群を通過する
光を体系的に記録するためのデータ構造
境界面に注目
CEDEC 2012
光の伝播行列の計算 ( 27 )
bull 光の伝播行列 P を三要素に分割1 光の出射行列 Pout2 光の通過行列 Pthrough3 光の入射行列 Pin
右の小領域 中央の小領域 左の小領域P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 37 )
bull 光の出射行列 Poutndash 小領域 rArr ライトフィールド
119819120783 出射ライトフィールドのサンプル数119821 伝播元の小領域の頂点数
iquest119819120783行iquest
⋮⋮
⋮4 5 9
6
8
CEDEC 2012
光の伝播行列の計算 ( 47 )
bull 光の通過行列 Pthroughndash ライトフィールド rArr ライトフィールド
119819120784 出射ライトフィールドのサンプル数119819120783入射ライトフィールドのサンプル数
iquest119819120784行iquest
⋮⋮
⋮5 8
2
5 ⋯
CEDEC 2012
光の伝播行列の計算 ( 57 )
bull 光の入射行列 Pinndash ライトフィールド rArr 小領域
119820伝播先の小領域の頂点数119819120784 入射ライトフィールドのサンプル数
iquest119820行iquest
⋮
2 5 6
1
5⋮
Pin 計算時にヘミキューブ法などを用いて立体角を考慮
CEDEC 2012
光の伝播行列の計算 ( 67 )
bull 全ての小領域間の光の伝播は三種類の行列の組み合わせで計算可能
P = Pin times Pout上記例ではは再利用不可能だがは共通
P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 77 )
bull 光の伝播の計算のまとめ
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
多重反射への拡張
bull 間接光計算を反復実行
⋮
間接光計算
間接光計算
間接光計算
直接光
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
モジュールの導入 ( 13 )
bull モジュール( = 再利用可能な汎用小領域)の導入
bull 上記のようなシーンは「回転」も考慮すれば5種の立方体モジュールの組合わせで構成可能
3 方向壁 2 方向壁 2 方向壁 1 方向壁 0 方向壁
CEDEC 2012
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
モジュールの導入 ( 23 )
通過行列は(直進 右折 左折)の三種類
ライトフィールドデータを一つの行列に格納
特異値分解
データ量の削減及び計算の高速化
詳しくは論文 51 節参照
CEDEC 2012
モジュールの導入 ( 33 )
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
メリットは多いがシーンの自由度とのトレードオフ
モジュールの使い所は要検討
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
デモ
CEDEC 2012
考察
bull ライトフィールドは本当に必要か
bull 小領域間の位置関係が固定ならば(恐らく)不要
rArr レイトレーシング法で伝播行列 P を直接計算 した方が効率的bull 小領域を動的に入れ替える場合は必要
P = Pin times Pthrough times Pout
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ 3 まとめ
CEDEC 2012
発表内容のまとめ
bull Modular Radiance Transfer 法を解説ndash 長所
bull とにかく高速bull 多重反射を含んだ間接光が扱えるbull 技術のコア部分は汎用的で応用の余地が高い
ndash 短所bull 前計算を含め使い方に癖がある ( 実験を通してノウハウを蓄積すれば余り問題にならない )
ゲームへの応用は十分可能
CEDEC 2012
本スライド内で引用した論文の図の著作権は全て論文著者に帰属します
その他の図スライド本体挿絵等の著作権は
シリコンスタジオ株式会社に帰属します
著作権について
CEDEC 2012
最後に
御清聴ありがとうございました
httpwwwsiliconstudiocojppresentationsindexhtml
スライドデモは弊社 HP で近日公開
制作協力 河野 駿介 辻 俊晶 古家 亙 後藤 晋也 京田 文人 三谷 健一郎
問い合わせ先 田村 nk-tamurasiliconstudiocojp 安田 re-yasudasiliconstudiocojp
シリコンスタジオは常に人材を求めています
ご興味ある方は弊社 HP をご覧ください
CEDEC 2012
Appendix A 実装について
bull 実装自体は様々なアプローチが可能bull ここではデモの実装でのアプローチを紹介
CEDEC 2012
Appendix A 前計算について
bull F の計算ndash メッシュの全頂点からキューブマップにレンダリングndash ピクセルには頂点 ID とウェイトを出力
bull 直接光サンプルの計算ndash 頂点カラーを Stream Out でバッファに出力ndash 頂点シャドウあり
bull Light Probe の計算ndash 各 Probe の中心からキューブマップにレンダリングndash の対応する基底ベクトル同士を足し合わせた
ベクトル ( 直接光 + 間接光 ) を頂点カラーとして使用
CEDEC 2012
Appendix A ランタイム
bull 直接光の結果を Stream Out でバッファに出力ndash 頂点シャドウありndash カラーバッファへの書き込み OFFndash 複数オブジェクトの場合は単一バッファにオフ
セットを変えて出力
119897119889
CEDEC 2012
Appendix A ランタイム 係数
bull Compute Shader で を計算ndash は極めて横長の行列 ( 行 ~100程度 列 頂点数 )ndash は GPU が少々苦手な処理ではあるものの
タイリングベースの実装で高速に処理可能
iquest
119897119889119960 lowast119861119889minus1
CEDEC 2012
Appendix A ランタイム
bull Compute Shader で を計算ndash は極めて縦長 ( の転置と同サイズ ) なので素直に実装可能
iquest
119861119894119899119889 119960119897119894119899 119889 lowast
CEDEC 2012
Appendix A ランタイム 最終パス
bull を頂点カラーとして入力としてピクセル単位の直接光のシェーディングと合成して最終結果を得る
iquest +
CEDEC 2012
Appendix A ランタイム Light Probe(1)
bull Compute Shader でを計算ndash は縦長 ( 行 頂点数 timesSH係数の数 列 ~100程度 )
iquest
119880119907119900119897 119960119897119907119900119897 lowast
CEDEC 2012
Appendix A ランタイム Light Probe(2)
bull Probe を用いて Dynamic Objects をライティングndash 各 Light Probe が SH を 9係数で保持するため
3D Texture ではなく Structured-Buffer で保持ndash Vertex Shader 内で自力 Tri-Linear 補間
iquest +
CEDEC 2012
Appendix B 後半の補足
bull 大規模なシーンでの光の伝播bull 小領域間の光の伝播は個別に総当たりで計算
rArr小領域間の光の伝播は距離によって大きく減衰
実際は大規模シーンでも概ね二つ隣の小領域まで考慮すれば十分
CEDEC 2012
Appendix B 後半の補足
bull 小領域の境界
bull 小領域の境界部分が不連続になる rArr 小領域の境界部分は補間の必要がある
CEDEC 2012
bull スライドと論文で表記が違う記号があります
Appendix C 記号の表記
スライドでの表記 論文での表記
b
- Slide 1
- 発表の流れ
- 発表の流れ (2)
- 発表の概要
- 解説技術の特徴
- 注意点
- 発表の流れ (3)
- 発表の流れ (4)
- 間接光の概要
- 間接光の概要 (2)
- 解説手法の計算概要
- 間接光計算の解説手順
- 間接光計算の解説手順 (2)
- 間接光計算の解説手順 (3)
- 間接光計算の解説手順 (4)
- 間接光計算の解説手順 (5)
- 間接光計算の解説手順 (6)
- 間接光計算の考え方
- 間接光計算の考え方 (2)
- 間接光計算の考え方 (3)
- 間接光計算の考え方 (4)
- 間接光計算の考え方 (5)
- 間接光計算の解説手順 (7)
- 問題提起
- 間接光計算の解説手順 (8)
- キーアイディア
- キーアイディア (2)
- キーアイディア (3)
- キーアイディア (4)
- キーアイディア (5)
- キーアイディア (6)
- 間接光計算の解説手順 (9)
- 間接光計算の解説手順 (10)
- を求める
- を求める (2)
- を求める (3)
- 最適な基底
- サンプリングベースの基底
- サンプルの選び方について
- サンプリング行列
- サンプリング行列 (2)
- サンプリング行列 (3)
- サンプリング行列 (4)
- サンプリング行列 (5)
- サンプリング行列 (6)
- サンプリング行列 (7)
- 特異値分解(Singular Value Decomposition)
- 特異値分解(Singular Value Decomposition) (2)
- 特異値分解(Singular Value Decomposition) (3)
- 特異値分解(Singular Value Decomposition) (4)
- 特異値分解(Singular Value Decomposition) (5)
- 基底による直接光の近似
- アプローチの比較
- ハイブリッド手法の計算手順
- 係数の数の比較
- ランタイムの計算処理
- 係数の計算方法
- ランタイムの計算処理 (2)
- 間接光計算の解説手順 (11)
- ショートデモ
- 間接光計算の解説手順 (12)
- 間接光計算の解説手順 (13)
- Light Probe
- Light Probe (2)
- Light Probeによるライティング
- Light Probeによるライティング (2)
- 間接光計算の解説手順 (14)
- Light Probeの計算
- 動的なLight Probe
- 動的なLight Probe (2)
- 間接光計算の解説手順 (15)
- デモ
- デモ詳細
- パフォーマンス
- まとめ
- 発表の流れ (5)
- シーン分割による高速化の解説手順
- シーン分割による高速化の解説手順 (2)
- 問題提起 (14)
- 問題提起 (24)
- 問題提起 (34)
- 問題提起 (44)
- シーン分割による高速化の解説手順 (3)
- シーン分割による高速化の解説手順 (4)
- キーアイディア (16)
- キーアイディア (26)
- キーアイディア (36)
- キーアイディア (46)
- キーアイディア (56)
- キーアイディア (66)
- シーン分割による高速化の解説手順 (5)
- 光の伝播行列の計算 (17)
- 光の伝播行列の計算 (27)
- 光の伝播行列の計算 (37)
- 光の伝播行列の計算 (47)
- 光の伝播行列の計算 (57)
- 光の伝播行列の計算 (67)
- 光の伝播行列の計算 (77)
- シーン分割による高速化の解説手順 (6)
- シーン分割による高速化の解説手順 (7)
- 多重反射への拡張
- シーン分割による高速化の解説手順 (8)
- モジュールの導入 (13)
- モジュールの導入 (23)
- モジュールの導入 (33)
- シーン分割による高速化の解説手順 (9)
- デモ (2)
- 考察
- 発表の流れ (6)
- 発表内容のまとめ
- 著作権について
- 最後に
- Appendix A 実装について
- Appendix A 前計算について
- Appendix A ランタイム
- Appendix A ランタイム 係数
- Appendix A ランタイム
- Appendix A ランタイム 最終パス
- Appendix A ランタイム Light Probe(1)
- Appendix A ランタイム Light Probe(2)
- Appendix B 後半の補足
- Appendix B 後半の補足 (2)
- Appendix C 記号の表記
-
CEDEC 2012
動的な Light Probe
bull 間接光と同様にそれぞれに対応した Light Probe を計算しておけば足し合わせで高速に計算可能
119960120783 +119960120784 +119960120785≑
119960120783 +119960120784 +119960120785≑
CEDEC 2012
Step1 背景オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
デモ
CEDEC 2012
デモ詳細
bull 背景オブジェクトndash 頂点数 10800 ( 頂点 )ndash基底の係数 22 (係数 )
bull Light Probendash Probe総数 500 (個 )ndash基底の係数 12 (係数 )ndash球面調和関数の係数 9 (係数 )
CEDEC 2012
パフォーマンス
bull 解像度は 1400800 で測定bull 実装には Compute Shader を使用bull 前計算約 45 分
ndash 2520 光源サンプルndash 20回反射まで考慮ndash 最適化で 10倍以上の高速化の余地あり
影あり 影なし 影なし GIなし
Geforce GTX 680 500 fps 800 fps 1500 fps
Geforce GTX 560 360 fps 440 fps 750 fps
Radeon 6630 M 80 fps 120 fps 280 fps
実装の Tips は Appendix に記載
CEDEC 2012
まとめ
bull 良い点ndash 非常に高速計算負荷が一定ndash 反射回数が無制限(行列 F に含められる )ndash 高速な Light Probe 計算ndash 様々な拡張
bull 悪い点ndash Light の位置方向を含めた前計算ndash 動的すぎるシーンは不可 (rarrDelta Radiance
Transfer)ndash 頂点カラーを念頭に置いたメッシュ分割頂点配置
ndash 複雑すぎない形状
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ
ndash 間接光計算手法の解説 (論文 4 節)ndash シーン分割による高速化の解説 (論文 5 節)
3 まとめ
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
問題提起 ( 14 )
bull 対象とする問題 シーンが複雑になった場合の計算負荷の増大
シンプルなシーン
より複雑なシーン
CEDEC 2012
問題提起 ( 24 )
bull 複雑なシーンでは1 メッシュ頂点数が増加2 必要な係数の数の増大 rArr 計算量の増大}
CEDEC 2012
問題提起 ( 34 )
bull 解決策シーンを複数の小領域に分割
rArr 適切に小領域を設定すればシーンの複雑さを 抑える事が可能bull 小領域の分割方法はユーザーが決定
CEDEC 2012
問題提起 ( 44 )
bull 各小領域内の間接光は前述の方法で計算可能bull 小領域間の光の伝播を別途考慮する必要がある
小領域間の光の伝播の高速な計算方法を解説
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
キーアイディア ( 16 )
bull 小領域間の光の伝播を個別に計算
CEDEC 2012
キーアイディア ( 26 )
bull 例として右rArr(中央)rArr左へ伝播する光を考える
キーアイディアでは多重反射を考慮しない光の伝播を考える
CEDEC 2012
キーアイディア ( 36 )
bull 小領域間の光の伝播は頂点間の影響に帰着
CEDEC 2012
キーアイディア ( 46 )
bull 小領域間の光の伝播行列 P を前計算119820 伝播先の小領域の頂点数119821 伝播元の小領域の頂点数
光の伝播行列P
119820行119821列[iquest ]P
CEDEC 2012
キーアイディア ( 56 )
bull 光の伝播行列 P を利用して光の伝播を高速に計算
[ 119956120783⋮119956119925]
119852 伝播元の小領域の頂点の色119941 伝播先の小領域の頂点の色
119820行119821列[iquest ][ 119941120783
⋮119941119924
] timesiquest P119820 伝播先の小領域の頂点数119821 伝播元の小領域の頂点数
CEDEC 2012
キーアイディア ( 66 )
bull 光の伝播を係数からの変換に修正
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
bull ライトフィールドという概念を導入
光の伝播行列の計算 ( 17 )
ライトフィールドは任意の点群を通過する
光を体系的に記録するためのデータ構造
境界面に注目
CEDEC 2012
光の伝播行列の計算 ( 27 )
bull 光の伝播行列 P を三要素に分割1 光の出射行列 Pout2 光の通過行列 Pthrough3 光の入射行列 Pin
右の小領域 中央の小領域 左の小領域P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 37 )
bull 光の出射行列 Poutndash 小領域 rArr ライトフィールド
119819120783 出射ライトフィールドのサンプル数119821 伝播元の小領域の頂点数
iquest119819120783行iquest
⋮⋮
⋮4 5 9
6
8
CEDEC 2012
光の伝播行列の計算 ( 47 )
bull 光の通過行列 Pthroughndash ライトフィールド rArr ライトフィールド
119819120784 出射ライトフィールドのサンプル数119819120783入射ライトフィールドのサンプル数
iquest119819120784行iquest
⋮⋮
⋮5 8
2
5 ⋯
CEDEC 2012
光の伝播行列の計算 ( 57 )
bull 光の入射行列 Pinndash ライトフィールド rArr 小領域
119820伝播先の小領域の頂点数119819120784 入射ライトフィールドのサンプル数
iquest119820行iquest
⋮
2 5 6
1
5⋮
Pin 計算時にヘミキューブ法などを用いて立体角を考慮
CEDEC 2012
光の伝播行列の計算 ( 67 )
bull 全ての小領域間の光の伝播は三種類の行列の組み合わせで計算可能
P = Pin times Pout上記例ではは再利用不可能だがは共通
P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 77 )
bull 光の伝播の計算のまとめ
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
多重反射への拡張
bull 間接光計算を反復実行
⋮
間接光計算
間接光計算
間接光計算
直接光
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
モジュールの導入 ( 13 )
bull モジュール( = 再利用可能な汎用小領域)の導入
bull 上記のようなシーンは「回転」も考慮すれば5種の立方体モジュールの組合わせで構成可能
3 方向壁 2 方向壁 2 方向壁 1 方向壁 0 方向壁
CEDEC 2012
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
モジュールの導入 ( 23 )
通過行列は(直進 右折 左折)の三種類
ライトフィールドデータを一つの行列に格納
特異値分解
データ量の削減及び計算の高速化
詳しくは論文 51 節参照
CEDEC 2012
モジュールの導入 ( 33 )
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
メリットは多いがシーンの自由度とのトレードオフ
モジュールの使い所は要検討
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
デモ
CEDEC 2012
考察
bull ライトフィールドは本当に必要か
bull 小領域間の位置関係が固定ならば(恐らく)不要
rArr レイトレーシング法で伝播行列 P を直接計算 した方が効率的bull 小領域を動的に入れ替える場合は必要
P = Pin times Pthrough times Pout
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ 3 まとめ
CEDEC 2012
発表内容のまとめ
bull Modular Radiance Transfer 法を解説ndash 長所
bull とにかく高速bull 多重反射を含んだ間接光が扱えるbull 技術のコア部分は汎用的で応用の余地が高い
ndash 短所bull 前計算を含め使い方に癖がある ( 実験を通してノウハウを蓄積すれば余り問題にならない )
ゲームへの応用は十分可能
CEDEC 2012
本スライド内で引用した論文の図の著作権は全て論文著者に帰属します
その他の図スライド本体挿絵等の著作権は
シリコンスタジオ株式会社に帰属します
著作権について
CEDEC 2012
最後に
御清聴ありがとうございました
httpwwwsiliconstudiocojppresentationsindexhtml
スライドデモは弊社 HP で近日公開
制作協力 河野 駿介 辻 俊晶 古家 亙 後藤 晋也 京田 文人 三谷 健一郎
問い合わせ先 田村 nk-tamurasiliconstudiocojp 安田 re-yasudasiliconstudiocojp
シリコンスタジオは常に人材を求めています
ご興味ある方は弊社 HP をご覧ください
CEDEC 2012
Appendix A 実装について
bull 実装自体は様々なアプローチが可能bull ここではデモの実装でのアプローチを紹介
CEDEC 2012
Appendix A 前計算について
bull F の計算ndash メッシュの全頂点からキューブマップにレンダリングndash ピクセルには頂点 ID とウェイトを出力
bull 直接光サンプルの計算ndash 頂点カラーを Stream Out でバッファに出力ndash 頂点シャドウあり
bull Light Probe の計算ndash 各 Probe の中心からキューブマップにレンダリングndash の対応する基底ベクトル同士を足し合わせた
ベクトル ( 直接光 + 間接光 ) を頂点カラーとして使用
CEDEC 2012
Appendix A ランタイム
bull 直接光の結果を Stream Out でバッファに出力ndash 頂点シャドウありndash カラーバッファへの書き込み OFFndash 複数オブジェクトの場合は単一バッファにオフ
セットを変えて出力
119897119889
CEDEC 2012
Appendix A ランタイム 係数
bull Compute Shader で を計算ndash は極めて横長の行列 ( 行 ~100程度 列 頂点数 )ndash は GPU が少々苦手な処理ではあるものの
タイリングベースの実装で高速に処理可能
iquest
119897119889119960 lowast119861119889minus1
CEDEC 2012
Appendix A ランタイム
bull Compute Shader で を計算ndash は極めて縦長 ( の転置と同サイズ ) なので素直に実装可能
iquest
119861119894119899119889 119960119897119894119899 119889 lowast
CEDEC 2012
Appendix A ランタイム 最終パス
bull を頂点カラーとして入力としてピクセル単位の直接光のシェーディングと合成して最終結果を得る
iquest +
CEDEC 2012
Appendix A ランタイム Light Probe(1)
bull Compute Shader でを計算ndash は縦長 ( 行 頂点数 timesSH係数の数 列 ~100程度 )
iquest
119880119907119900119897 119960119897119907119900119897 lowast
CEDEC 2012
Appendix A ランタイム Light Probe(2)
bull Probe を用いて Dynamic Objects をライティングndash 各 Light Probe が SH を 9係数で保持するため
3D Texture ではなく Structured-Buffer で保持ndash Vertex Shader 内で自力 Tri-Linear 補間
iquest +
CEDEC 2012
Appendix B 後半の補足
bull 大規模なシーンでの光の伝播bull 小領域間の光の伝播は個別に総当たりで計算
rArr小領域間の光の伝播は距離によって大きく減衰
実際は大規模シーンでも概ね二つ隣の小領域まで考慮すれば十分
CEDEC 2012
Appendix B 後半の補足
bull 小領域の境界
bull 小領域の境界部分が不連続になる rArr 小領域の境界部分は補間の必要がある
CEDEC 2012
bull スライドと論文で表記が違う記号があります
Appendix C 記号の表記
スライドでの表記 論文での表記
b
- Slide 1
- 発表の流れ
- 発表の流れ (2)
- 発表の概要
- 解説技術の特徴
- 注意点
- 発表の流れ (3)
- 発表の流れ (4)
- 間接光の概要
- 間接光の概要 (2)
- 解説手法の計算概要
- 間接光計算の解説手順
- 間接光計算の解説手順 (2)
- 間接光計算の解説手順 (3)
- 間接光計算の解説手順 (4)
- 間接光計算の解説手順 (5)
- 間接光計算の解説手順 (6)
- 間接光計算の考え方
- 間接光計算の考え方 (2)
- 間接光計算の考え方 (3)
- 間接光計算の考え方 (4)
- 間接光計算の考え方 (5)
- 間接光計算の解説手順 (7)
- 問題提起
- 間接光計算の解説手順 (8)
- キーアイディア
- キーアイディア (2)
- キーアイディア (3)
- キーアイディア (4)
- キーアイディア (5)
- キーアイディア (6)
- 間接光計算の解説手順 (9)
- 間接光計算の解説手順 (10)
- を求める
- を求める (2)
- を求める (3)
- 最適な基底
- サンプリングベースの基底
- サンプルの選び方について
- サンプリング行列
- サンプリング行列 (2)
- サンプリング行列 (3)
- サンプリング行列 (4)
- サンプリング行列 (5)
- サンプリング行列 (6)
- サンプリング行列 (7)
- 特異値分解(Singular Value Decomposition)
- 特異値分解(Singular Value Decomposition) (2)
- 特異値分解(Singular Value Decomposition) (3)
- 特異値分解(Singular Value Decomposition) (4)
- 特異値分解(Singular Value Decomposition) (5)
- 基底による直接光の近似
- アプローチの比較
- ハイブリッド手法の計算手順
- 係数の数の比較
- ランタイムの計算処理
- 係数の計算方法
- ランタイムの計算処理 (2)
- 間接光計算の解説手順 (11)
- ショートデモ
- 間接光計算の解説手順 (12)
- 間接光計算の解説手順 (13)
- Light Probe
- Light Probe (2)
- Light Probeによるライティング
- Light Probeによるライティング (2)
- 間接光計算の解説手順 (14)
- Light Probeの計算
- 動的なLight Probe
- 動的なLight Probe (2)
- 間接光計算の解説手順 (15)
- デモ
- デモ詳細
- パフォーマンス
- まとめ
- 発表の流れ (5)
- シーン分割による高速化の解説手順
- シーン分割による高速化の解説手順 (2)
- 問題提起 (14)
- 問題提起 (24)
- 問題提起 (34)
- 問題提起 (44)
- シーン分割による高速化の解説手順 (3)
- シーン分割による高速化の解説手順 (4)
- キーアイディア (16)
- キーアイディア (26)
- キーアイディア (36)
- キーアイディア (46)
- キーアイディア (56)
- キーアイディア (66)
- シーン分割による高速化の解説手順 (5)
- 光の伝播行列の計算 (17)
- 光の伝播行列の計算 (27)
- 光の伝播行列の計算 (37)
- 光の伝播行列の計算 (47)
- 光の伝播行列の計算 (57)
- 光の伝播行列の計算 (67)
- 光の伝播行列の計算 (77)
- シーン分割による高速化の解説手順 (6)
- シーン分割による高速化の解説手順 (7)
- 多重反射への拡張
- シーン分割による高速化の解説手順 (8)
- モジュールの導入 (13)
- モジュールの導入 (23)
- モジュールの導入 (33)
- シーン分割による高速化の解説手順 (9)
- デモ (2)
- 考察
- 発表の流れ (6)
- 発表内容のまとめ
- 著作権について
- 最後に
- Appendix A 実装について
- Appendix A 前計算について
- Appendix A ランタイム
- Appendix A ランタイム 係数
- Appendix A ランタイム
- Appendix A ランタイム 最終パス
- Appendix A ランタイム Light Probe(1)
- Appendix A ランタイム Light Probe(2)
- Appendix B 後半の補足
- Appendix B 後半の補足 (2)
- Appendix C 記号の表記
-
CEDEC 2012
Step1 背景オブジェクトの間接光計算 Step2 その他オブジェクトへの光の伝播 Step3 デモ及び考察
間接光計算の解説手順
CEDEC 2012
デモ
CEDEC 2012
デモ詳細
bull 背景オブジェクトndash 頂点数 10800 ( 頂点 )ndash基底の係数 22 (係数 )
bull Light Probendash Probe総数 500 (個 )ndash基底の係数 12 (係数 )ndash球面調和関数の係数 9 (係数 )
CEDEC 2012
パフォーマンス
bull 解像度は 1400800 で測定bull 実装には Compute Shader を使用bull 前計算約 45 分
ndash 2520 光源サンプルndash 20回反射まで考慮ndash 最適化で 10倍以上の高速化の余地あり
影あり 影なし 影なし GIなし
Geforce GTX 680 500 fps 800 fps 1500 fps
Geforce GTX 560 360 fps 440 fps 750 fps
Radeon 6630 M 80 fps 120 fps 280 fps
実装の Tips は Appendix に記載
CEDEC 2012
まとめ
bull 良い点ndash 非常に高速計算負荷が一定ndash 反射回数が無制限(行列 F に含められる )ndash 高速な Light Probe 計算ndash 様々な拡張
bull 悪い点ndash Light の位置方向を含めた前計算ndash 動的すぎるシーンは不可 (rarrDelta Radiance
Transfer)ndash 頂点カラーを念頭に置いたメッシュ分割頂点配置
ndash 複雑すぎない形状
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ
ndash 間接光計算手法の解説 (論文 4 節)ndash シーン分割による高速化の解説 (論文 5 節)
3 まとめ
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
問題提起 ( 14 )
bull 対象とする問題 シーンが複雑になった場合の計算負荷の増大
シンプルなシーン
より複雑なシーン
CEDEC 2012
問題提起 ( 24 )
bull 複雑なシーンでは1 メッシュ頂点数が増加2 必要な係数の数の増大 rArr 計算量の増大}
CEDEC 2012
問題提起 ( 34 )
bull 解決策シーンを複数の小領域に分割
rArr 適切に小領域を設定すればシーンの複雑さを 抑える事が可能bull 小領域の分割方法はユーザーが決定
CEDEC 2012
問題提起 ( 44 )
bull 各小領域内の間接光は前述の方法で計算可能bull 小領域間の光の伝播を別途考慮する必要がある
小領域間の光の伝播の高速な計算方法を解説
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
キーアイディア ( 16 )
bull 小領域間の光の伝播を個別に計算
CEDEC 2012
キーアイディア ( 26 )
bull 例として右rArr(中央)rArr左へ伝播する光を考える
キーアイディアでは多重反射を考慮しない光の伝播を考える
CEDEC 2012
キーアイディア ( 36 )
bull 小領域間の光の伝播は頂点間の影響に帰着
CEDEC 2012
キーアイディア ( 46 )
bull 小領域間の光の伝播行列 P を前計算119820 伝播先の小領域の頂点数119821 伝播元の小領域の頂点数
光の伝播行列P
119820行119821列[iquest ]P
CEDEC 2012
キーアイディア ( 56 )
bull 光の伝播行列 P を利用して光の伝播を高速に計算
[ 119956120783⋮119956119925]
119852 伝播元の小領域の頂点の色119941 伝播先の小領域の頂点の色
119820行119821列[iquest ][ 119941120783
⋮119941119924
] timesiquest P119820 伝播先の小領域の頂点数119821 伝播元の小領域の頂点数
CEDEC 2012
キーアイディア ( 66 )
bull 光の伝播を係数からの変換に修正
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
bull ライトフィールドという概念を導入
光の伝播行列の計算 ( 17 )
ライトフィールドは任意の点群を通過する
光を体系的に記録するためのデータ構造
境界面に注目
CEDEC 2012
光の伝播行列の計算 ( 27 )
bull 光の伝播行列 P を三要素に分割1 光の出射行列 Pout2 光の通過行列 Pthrough3 光の入射行列 Pin
右の小領域 中央の小領域 左の小領域P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 37 )
bull 光の出射行列 Poutndash 小領域 rArr ライトフィールド
119819120783 出射ライトフィールドのサンプル数119821 伝播元の小領域の頂点数
iquest119819120783行iquest
⋮⋮
⋮4 5 9
6
8
CEDEC 2012
光の伝播行列の計算 ( 47 )
bull 光の通過行列 Pthroughndash ライトフィールド rArr ライトフィールド
119819120784 出射ライトフィールドのサンプル数119819120783入射ライトフィールドのサンプル数
iquest119819120784行iquest
⋮⋮
⋮5 8
2
5 ⋯
CEDEC 2012
光の伝播行列の計算 ( 57 )
bull 光の入射行列 Pinndash ライトフィールド rArr 小領域
119820伝播先の小領域の頂点数119819120784 入射ライトフィールドのサンプル数
iquest119820行iquest
⋮
2 5 6
1
5⋮
Pin 計算時にヘミキューブ法などを用いて立体角を考慮
CEDEC 2012
光の伝播行列の計算 ( 67 )
bull 全ての小領域間の光の伝播は三種類の行列の組み合わせで計算可能
P = Pin times Pout上記例ではは再利用不可能だがは共通
P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 77 )
bull 光の伝播の計算のまとめ
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
多重反射への拡張
bull 間接光計算を反復実行
⋮
間接光計算
間接光計算
間接光計算
直接光
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
モジュールの導入 ( 13 )
bull モジュール( = 再利用可能な汎用小領域)の導入
bull 上記のようなシーンは「回転」も考慮すれば5種の立方体モジュールの組合わせで構成可能
3 方向壁 2 方向壁 2 方向壁 1 方向壁 0 方向壁
CEDEC 2012
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
モジュールの導入 ( 23 )
通過行列は(直進 右折 左折)の三種類
ライトフィールドデータを一つの行列に格納
特異値分解
データ量の削減及び計算の高速化
詳しくは論文 51 節参照
CEDEC 2012
モジュールの導入 ( 33 )
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
メリットは多いがシーンの自由度とのトレードオフ
モジュールの使い所は要検討
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
デモ
CEDEC 2012
考察
bull ライトフィールドは本当に必要か
bull 小領域間の位置関係が固定ならば(恐らく)不要
rArr レイトレーシング法で伝播行列 P を直接計算 した方が効率的bull 小領域を動的に入れ替える場合は必要
P = Pin times Pthrough times Pout
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ 3 まとめ
CEDEC 2012
発表内容のまとめ
bull Modular Radiance Transfer 法を解説ndash 長所
bull とにかく高速bull 多重反射を含んだ間接光が扱えるbull 技術のコア部分は汎用的で応用の余地が高い
ndash 短所bull 前計算を含め使い方に癖がある ( 実験を通してノウハウを蓄積すれば余り問題にならない )
ゲームへの応用は十分可能
CEDEC 2012
本スライド内で引用した論文の図の著作権は全て論文著者に帰属します
その他の図スライド本体挿絵等の著作権は
シリコンスタジオ株式会社に帰属します
著作権について
CEDEC 2012
最後に
御清聴ありがとうございました
httpwwwsiliconstudiocojppresentationsindexhtml
スライドデモは弊社 HP で近日公開
制作協力 河野 駿介 辻 俊晶 古家 亙 後藤 晋也 京田 文人 三谷 健一郎
問い合わせ先 田村 nk-tamurasiliconstudiocojp 安田 re-yasudasiliconstudiocojp
シリコンスタジオは常に人材を求めています
ご興味ある方は弊社 HP をご覧ください
CEDEC 2012
Appendix A 実装について
bull 実装自体は様々なアプローチが可能bull ここではデモの実装でのアプローチを紹介
CEDEC 2012
Appendix A 前計算について
bull F の計算ndash メッシュの全頂点からキューブマップにレンダリングndash ピクセルには頂点 ID とウェイトを出力
bull 直接光サンプルの計算ndash 頂点カラーを Stream Out でバッファに出力ndash 頂点シャドウあり
bull Light Probe の計算ndash 各 Probe の中心からキューブマップにレンダリングndash の対応する基底ベクトル同士を足し合わせた
ベクトル ( 直接光 + 間接光 ) を頂点カラーとして使用
CEDEC 2012
Appendix A ランタイム
bull 直接光の結果を Stream Out でバッファに出力ndash 頂点シャドウありndash カラーバッファへの書き込み OFFndash 複数オブジェクトの場合は単一バッファにオフ
セットを変えて出力
119897119889
CEDEC 2012
Appendix A ランタイム 係数
bull Compute Shader で を計算ndash は極めて横長の行列 ( 行 ~100程度 列 頂点数 )ndash は GPU が少々苦手な処理ではあるものの
タイリングベースの実装で高速に処理可能
iquest
119897119889119960 lowast119861119889minus1
CEDEC 2012
Appendix A ランタイム
bull Compute Shader で を計算ndash は極めて縦長 ( の転置と同サイズ ) なので素直に実装可能
iquest
119861119894119899119889 119960119897119894119899 119889 lowast
CEDEC 2012
Appendix A ランタイム 最終パス
bull を頂点カラーとして入力としてピクセル単位の直接光のシェーディングと合成して最終結果を得る
iquest +
CEDEC 2012
Appendix A ランタイム Light Probe(1)
bull Compute Shader でを計算ndash は縦長 ( 行 頂点数 timesSH係数の数 列 ~100程度 )
iquest
119880119907119900119897 119960119897119907119900119897 lowast
CEDEC 2012
Appendix A ランタイム Light Probe(2)
bull Probe を用いて Dynamic Objects をライティングndash 各 Light Probe が SH を 9係数で保持するため
3D Texture ではなく Structured-Buffer で保持ndash Vertex Shader 内で自力 Tri-Linear 補間
iquest +
CEDEC 2012
Appendix B 後半の補足
bull 大規模なシーンでの光の伝播bull 小領域間の光の伝播は個別に総当たりで計算
rArr小領域間の光の伝播は距離によって大きく減衰
実際は大規模シーンでも概ね二つ隣の小領域まで考慮すれば十分
CEDEC 2012
Appendix B 後半の補足
bull 小領域の境界
bull 小領域の境界部分が不連続になる rArr 小領域の境界部分は補間の必要がある
CEDEC 2012
bull スライドと論文で表記が違う記号があります
Appendix C 記号の表記
スライドでの表記 論文での表記
b
- Slide 1
- 発表の流れ
- 発表の流れ (2)
- 発表の概要
- 解説技術の特徴
- 注意点
- 発表の流れ (3)
- 発表の流れ (4)
- 間接光の概要
- 間接光の概要 (2)
- 解説手法の計算概要
- 間接光計算の解説手順
- 間接光計算の解説手順 (2)
- 間接光計算の解説手順 (3)
- 間接光計算の解説手順 (4)
- 間接光計算の解説手順 (5)
- 間接光計算の解説手順 (6)
- 間接光計算の考え方
- 間接光計算の考え方 (2)
- 間接光計算の考え方 (3)
- 間接光計算の考え方 (4)
- 間接光計算の考え方 (5)
- 間接光計算の解説手順 (7)
- 問題提起
- 間接光計算の解説手順 (8)
- キーアイディア
- キーアイディア (2)
- キーアイディア (3)
- キーアイディア (4)
- キーアイディア (5)
- キーアイディア (6)
- 間接光計算の解説手順 (9)
- 間接光計算の解説手順 (10)
- を求める
- を求める (2)
- を求める (3)
- 最適な基底
- サンプリングベースの基底
- サンプルの選び方について
- サンプリング行列
- サンプリング行列 (2)
- サンプリング行列 (3)
- サンプリング行列 (4)
- サンプリング行列 (5)
- サンプリング行列 (6)
- サンプリング行列 (7)
- 特異値分解(Singular Value Decomposition)
- 特異値分解(Singular Value Decomposition) (2)
- 特異値分解(Singular Value Decomposition) (3)
- 特異値分解(Singular Value Decomposition) (4)
- 特異値分解(Singular Value Decomposition) (5)
- 基底による直接光の近似
- アプローチの比較
- ハイブリッド手法の計算手順
- 係数の数の比較
- ランタイムの計算処理
- 係数の計算方法
- ランタイムの計算処理 (2)
- 間接光計算の解説手順 (11)
- ショートデモ
- 間接光計算の解説手順 (12)
- 間接光計算の解説手順 (13)
- Light Probe
- Light Probe (2)
- Light Probeによるライティング
- Light Probeによるライティング (2)
- 間接光計算の解説手順 (14)
- Light Probeの計算
- 動的なLight Probe
- 動的なLight Probe (2)
- 間接光計算の解説手順 (15)
- デモ
- デモ詳細
- パフォーマンス
- まとめ
- 発表の流れ (5)
- シーン分割による高速化の解説手順
- シーン分割による高速化の解説手順 (2)
- 問題提起 (14)
- 問題提起 (24)
- 問題提起 (34)
- 問題提起 (44)
- シーン分割による高速化の解説手順 (3)
- シーン分割による高速化の解説手順 (4)
- キーアイディア (16)
- キーアイディア (26)
- キーアイディア (36)
- キーアイディア (46)
- キーアイディア (56)
- キーアイディア (66)
- シーン分割による高速化の解説手順 (5)
- 光の伝播行列の計算 (17)
- 光の伝播行列の計算 (27)
- 光の伝播行列の計算 (37)
- 光の伝播行列の計算 (47)
- 光の伝播行列の計算 (57)
- 光の伝播行列の計算 (67)
- 光の伝播行列の計算 (77)
- シーン分割による高速化の解説手順 (6)
- シーン分割による高速化の解説手順 (7)
- 多重反射への拡張
- シーン分割による高速化の解説手順 (8)
- モジュールの導入 (13)
- モジュールの導入 (23)
- モジュールの導入 (33)
- シーン分割による高速化の解説手順 (9)
- デモ (2)
- 考察
- 発表の流れ (6)
- 発表内容のまとめ
- 著作権について
- 最後に
- Appendix A 実装について
- Appendix A 前計算について
- Appendix A ランタイム
- Appendix A ランタイム 係数
- Appendix A ランタイム
- Appendix A ランタイム 最終パス
- Appendix A ランタイム Light Probe(1)
- Appendix A ランタイム Light Probe(2)
- Appendix B 後半の補足
- Appendix B 後半の補足 (2)
- Appendix C 記号の表記
-
CEDEC 2012
デモ
CEDEC 2012
デモ詳細
bull 背景オブジェクトndash 頂点数 10800 ( 頂点 )ndash基底の係数 22 (係数 )
bull Light Probendash Probe総数 500 (個 )ndash基底の係数 12 (係数 )ndash球面調和関数の係数 9 (係数 )
CEDEC 2012
パフォーマンス
bull 解像度は 1400800 で測定bull 実装には Compute Shader を使用bull 前計算約 45 分
ndash 2520 光源サンプルndash 20回反射まで考慮ndash 最適化で 10倍以上の高速化の余地あり
影あり 影なし 影なし GIなし
Geforce GTX 680 500 fps 800 fps 1500 fps
Geforce GTX 560 360 fps 440 fps 750 fps
Radeon 6630 M 80 fps 120 fps 280 fps
実装の Tips は Appendix に記載
CEDEC 2012
まとめ
bull 良い点ndash 非常に高速計算負荷が一定ndash 反射回数が無制限(行列 F に含められる )ndash 高速な Light Probe 計算ndash 様々な拡張
bull 悪い点ndash Light の位置方向を含めた前計算ndash 動的すぎるシーンは不可 (rarrDelta Radiance
Transfer)ndash 頂点カラーを念頭に置いたメッシュ分割頂点配置
ndash 複雑すぎない形状
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ
ndash 間接光計算手法の解説 (論文 4 節)ndash シーン分割による高速化の解説 (論文 5 節)
3 まとめ
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
問題提起 ( 14 )
bull 対象とする問題 シーンが複雑になった場合の計算負荷の増大
シンプルなシーン
より複雑なシーン
CEDEC 2012
問題提起 ( 24 )
bull 複雑なシーンでは1 メッシュ頂点数が増加2 必要な係数の数の増大 rArr 計算量の増大}
CEDEC 2012
問題提起 ( 34 )
bull 解決策シーンを複数の小領域に分割
rArr 適切に小領域を設定すればシーンの複雑さを 抑える事が可能bull 小領域の分割方法はユーザーが決定
CEDEC 2012
問題提起 ( 44 )
bull 各小領域内の間接光は前述の方法で計算可能bull 小領域間の光の伝播を別途考慮する必要がある
小領域間の光の伝播の高速な計算方法を解説
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
キーアイディア ( 16 )
bull 小領域間の光の伝播を個別に計算
CEDEC 2012
キーアイディア ( 26 )
bull 例として右rArr(中央)rArr左へ伝播する光を考える
キーアイディアでは多重反射を考慮しない光の伝播を考える
CEDEC 2012
キーアイディア ( 36 )
bull 小領域間の光の伝播は頂点間の影響に帰着
CEDEC 2012
キーアイディア ( 46 )
bull 小領域間の光の伝播行列 P を前計算119820 伝播先の小領域の頂点数119821 伝播元の小領域の頂点数
光の伝播行列P
119820行119821列[iquest ]P
CEDEC 2012
キーアイディア ( 56 )
bull 光の伝播行列 P を利用して光の伝播を高速に計算
[ 119956120783⋮119956119925]
119852 伝播元の小領域の頂点の色119941 伝播先の小領域の頂点の色
119820行119821列[iquest ][ 119941120783
⋮119941119924
] timesiquest P119820 伝播先の小領域の頂点数119821 伝播元の小領域の頂点数
CEDEC 2012
キーアイディア ( 66 )
bull 光の伝播を係数からの変換に修正
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
bull ライトフィールドという概念を導入
光の伝播行列の計算 ( 17 )
ライトフィールドは任意の点群を通過する
光を体系的に記録するためのデータ構造
境界面に注目
CEDEC 2012
光の伝播行列の計算 ( 27 )
bull 光の伝播行列 P を三要素に分割1 光の出射行列 Pout2 光の通過行列 Pthrough3 光の入射行列 Pin
右の小領域 中央の小領域 左の小領域P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 37 )
bull 光の出射行列 Poutndash 小領域 rArr ライトフィールド
119819120783 出射ライトフィールドのサンプル数119821 伝播元の小領域の頂点数
iquest119819120783行iquest
⋮⋮
⋮4 5 9
6
8
CEDEC 2012
光の伝播行列の計算 ( 47 )
bull 光の通過行列 Pthroughndash ライトフィールド rArr ライトフィールド
119819120784 出射ライトフィールドのサンプル数119819120783入射ライトフィールドのサンプル数
iquest119819120784行iquest
⋮⋮
⋮5 8
2
5 ⋯
CEDEC 2012
光の伝播行列の計算 ( 57 )
bull 光の入射行列 Pinndash ライトフィールド rArr 小領域
119820伝播先の小領域の頂点数119819120784 入射ライトフィールドのサンプル数
iquest119820行iquest
⋮
2 5 6
1
5⋮
Pin 計算時にヘミキューブ法などを用いて立体角を考慮
CEDEC 2012
光の伝播行列の計算 ( 67 )
bull 全ての小領域間の光の伝播は三種類の行列の組み合わせで計算可能
P = Pin times Pout上記例ではは再利用不可能だがは共通
P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 77 )
bull 光の伝播の計算のまとめ
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
多重反射への拡張
bull 間接光計算を反復実行
⋮
間接光計算
間接光計算
間接光計算
直接光
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
モジュールの導入 ( 13 )
bull モジュール( = 再利用可能な汎用小領域)の導入
bull 上記のようなシーンは「回転」も考慮すれば5種の立方体モジュールの組合わせで構成可能
3 方向壁 2 方向壁 2 方向壁 1 方向壁 0 方向壁
CEDEC 2012
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
モジュールの導入 ( 23 )
通過行列は(直進 右折 左折)の三種類
ライトフィールドデータを一つの行列に格納
特異値分解
データ量の削減及び計算の高速化
詳しくは論文 51 節参照
CEDEC 2012
モジュールの導入 ( 33 )
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
メリットは多いがシーンの自由度とのトレードオフ
モジュールの使い所は要検討
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
デモ
CEDEC 2012
考察
bull ライトフィールドは本当に必要か
bull 小領域間の位置関係が固定ならば(恐らく)不要
rArr レイトレーシング法で伝播行列 P を直接計算 した方が効率的bull 小領域を動的に入れ替える場合は必要
P = Pin times Pthrough times Pout
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ 3 まとめ
CEDEC 2012
発表内容のまとめ
bull Modular Radiance Transfer 法を解説ndash 長所
bull とにかく高速bull 多重反射を含んだ間接光が扱えるbull 技術のコア部分は汎用的で応用の余地が高い
ndash 短所bull 前計算を含め使い方に癖がある ( 実験を通してノウハウを蓄積すれば余り問題にならない )
ゲームへの応用は十分可能
CEDEC 2012
本スライド内で引用した論文の図の著作権は全て論文著者に帰属します
その他の図スライド本体挿絵等の著作権は
シリコンスタジオ株式会社に帰属します
著作権について
CEDEC 2012
最後に
御清聴ありがとうございました
httpwwwsiliconstudiocojppresentationsindexhtml
スライドデモは弊社 HP で近日公開
制作協力 河野 駿介 辻 俊晶 古家 亙 後藤 晋也 京田 文人 三谷 健一郎
問い合わせ先 田村 nk-tamurasiliconstudiocojp 安田 re-yasudasiliconstudiocojp
シリコンスタジオは常に人材を求めています
ご興味ある方は弊社 HP をご覧ください
CEDEC 2012
Appendix A 実装について
bull 実装自体は様々なアプローチが可能bull ここではデモの実装でのアプローチを紹介
CEDEC 2012
Appendix A 前計算について
bull F の計算ndash メッシュの全頂点からキューブマップにレンダリングndash ピクセルには頂点 ID とウェイトを出力
bull 直接光サンプルの計算ndash 頂点カラーを Stream Out でバッファに出力ndash 頂点シャドウあり
bull Light Probe の計算ndash 各 Probe の中心からキューブマップにレンダリングndash の対応する基底ベクトル同士を足し合わせた
ベクトル ( 直接光 + 間接光 ) を頂点カラーとして使用
CEDEC 2012
Appendix A ランタイム
bull 直接光の結果を Stream Out でバッファに出力ndash 頂点シャドウありndash カラーバッファへの書き込み OFFndash 複数オブジェクトの場合は単一バッファにオフ
セットを変えて出力
119897119889
CEDEC 2012
Appendix A ランタイム 係数
bull Compute Shader で を計算ndash は極めて横長の行列 ( 行 ~100程度 列 頂点数 )ndash は GPU が少々苦手な処理ではあるものの
タイリングベースの実装で高速に処理可能
iquest
119897119889119960 lowast119861119889minus1
CEDEC 2012
Appendix A ランタイム
bull Compute Shader で を計算ndash は極めて縦長 ( の転置と同サイズ ) なので素直に実装可能
iquest
119861119894119899119889 119960119897119894119899 119889 lowast
CEDEC 2012
Appendix A ランタイム 最終パス
bull を頂点カラーとして入力としてピクセル単位の直接光のシェーディングと合成して最終結果を得る
iquest +
CEDEC 2012
Appendix A ランタイム Light Probe(1)
bull Compute Shader でを計算ndash は縦長 ( 行 頂点数 timesSH係数の数 列 ~100程度 )
iquest
119880119907119900119897 119960119897119907119900119897 lowast
CEDEC 2012
Appendix A ランタイム Light Probe(2)
bull Probe を用いて Dynamic Objects をライティングndash 各 Light Probe が SH を 9係数で保持するため
3D Texture ではなく Structured-Buffer で保持ndash Vertex Shader 内で自力 Tri-Linear 補間
iquest +
CEDEC 2012
Appendix B 後半の補足
bull 大規模なシーンでの光の伝播bull 小領域間の光の伝播は個別に総当たりで計算
rArr小領域間の光の伝播は距離によって大きく減衰
実際は大規模シーンでも概ね二つ隣の小領域まで考慮すれば十分
CEDEC 2012
Appendix B 後半の補足
bull 小領域の境界
bull 小領域の境界部分が不連続になる rArr 小領域の境界部分は補間の必要がある
CEDEC 2012
bull スライドと論文で表記が違う記号があります
Appendix C 記号の表記
スライドでの表記 論文での表記
b
- Slide 1
- 発表の流れ
- 発表の流れ (2)
- 発表の概要
- 解説技術の特徴
- 注意点
- 発表の流れ (3)
- 発表の流れ (4)
- 間接光の概要
- 間接光の概要 (2)
- 解説手法の計算概要
- 間接光計算の解説手順
- 間接光計算の解説手順 (2)
- 間接光計算の解説手順 (3)
- 間接光計算の解説手順 (4)
- 間接光計算の解説手順 (5)
- 間接光計算の解説手順 (6)
- 間接光計算の考え方
- 間接光計算の考え方 (2)
- 間接光計算の考え方 (3)
- 間接光計算の考え方 (4)
- 間接光計算の考え方 (5)
- 間接光計算の解説手順 (7)
- 問題提起
- 間接光計算の解説手順 (8)
- キーアイディア
- キーアイディア (2)
- キーアイディア (3)
- キーアイディア (4)
- キーアイディア (5)
- キーアイディア (6)
- 間接光計算の解説手順 (9)
- 間接光計算の解説手順 (10)
- を求める
- を求める (2)
- を求める (3)
- 最適な基底
- サンプリングベースの基底
- サンプルの選び方について
- サンプリング行列
- サンプリング行列 (2)
- サンプリング行列 (3)
- サンプリング行列 (4)
- サンプリング行列 (5)
- サンプリング行列 (6)
- サンプリング行列 (7)
- 特異値分解(Singular Value Decomposition)
- 特異値分解(Singular Value Decomposition) (2)
- 特異値分解(Singular Value Decomposition) (3)
- 特異値分解(Singular Value Decomposition) (4)
- 特異値分解(Singular Value Decomposition) (5)
- 基底による直接光の近似
- アプローチの比較
- ハイブリッド手法の計算手順
- 係数の数の比較
- ランタイムの計算処理
- 係数の計算方法
- ランタイムの計算処理 (2)
- 間接光計算の解説手順 (11)
- ショートデモ
- 間接光計算の解説手順 (12)
- 間接光計算の解説手順 (13)
- Light Probe
- Light Probe (2)
- Light Probeによるライティング
- Light Probeによるライティング (2)
- 間接光計算の解説手順 (14)
- Light Probeの計算
- 動的なLight Probe
- 動的なLight Probe (2)
- 間接光計算の解説手順 (15)
- デモ
- デモ詳細
- パフォーマンス
- まとめ
- 発表の流れ (5)
- シーン分割による高速化の解説手順
- シーン分割による高速化の解説手順 (2)
- 問題提起 (14)
- 問題提起 (24)
- 問題提起 (34)
- 問題提起 (44)
- シーン分割による高速化の解説手順 (3)
- シーン分割による高速化の解説手順 (4)
- キーアイディア (16)
- キーアイディア (26)
- キーアイディア (36)
- キーアイディア (46)
- キーアイディア (56)
- キーアイディア (66)
- シーン分割による高速化の解説手順 (5)
- 光の伝播行列の計算 (17)
- 光の伝播行列の計算 (27)
- 光の伝播行列の計算 (37)
- 光の伝播行列の計算 (47)
- 光の伝播行列の計算 (57)
- 光の伝播行列の計算 (67)
- 光の伝播行列の計算 (77)
- シーン分割による高速化の解説手順 (6)
- シーン分割による高速化の解説手順 (7)
- 多重反射への拡張
- シーン分割による高速化の解説手順 (8)
- モジュールの導入 (13)
- モジュールの導入 (23)
- モジュールの導入 (33)
- シーン分割による高速化の解説手順 (9)
- デモ (2)
- 考察
- 発表の流れ (6)
- 発表内容のまとめ
- 著作権について
- 最後に
- Appendix A 実装について
- Appendix A 前計算について
- Appendix A ランタイム
- Appendix A ランタイム 係数
- Appendix A ランタイム
- Appendix A ランタイム 最終パス
- Appendix A ランタイム Light Probe(1)
- Appendix A ランタイム Light Probe(2)
- Appendix B 後半の補足
- Appendix B 後半の補足 (2)
- Appendix C 記号の表記
-
CEDEC 2012
デモ詳細
bull 背景オブジェクトndash 頂点数 10800 ( 頂点 )ndash基底の係数 22 (係数 )
bull Light Probendash Probe総数 500 (個 )ndash基底の係数 12 (係数 )ndash球面調和関数の係数 9 (係数 )
CEDEC 2012
パフォーマンス
bull 解像度は 1400800 で測定bull 実装には Compute Shader を使用bull 前計算約 45 分
ndash 2520 光源サンプルndash 20回反射まで考慮ndash 最適化で 10倍以上の高速化の余地あり
影あり 影なし 影なし GIなし
Geforce GTX 680 500 fps 800 fps 1500 fps
Geforce GTX 560 360 fps 440 fps 750 fps
Radeon 6630 M 80 fps 120 fps 280 fps
実装の Tips は Appendix に記載
CEDEC 2012
まとめ
bull 良い点ndash 非常に高速計算負荷が一定ndash 反射回数が無制限(行列 F に含められる )ndash 高速な Light Probe 計算ndash 様々な拡張
bull 悪い点ndash Light の位置方向を含めた前計算ndash 動的すぎるシーンは不可 (rarrDelta Radiance
Transfer)ndash 頂点カラーを念頭に置いたメッシュ分割頂点配置
ndash 複雑すぎない形状
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ
ndash 間接光計算手法の解説 (論文 4 節)ndash シーン分割による高速化の解説 (論文 5 節)
3 まとめ
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
問題提起 ( 14 )
bull 対象とする問題 シーンが複雑になった場合の計算負荷の増大
シンプルなシーン
より複雑なシーン
CEDEC 2012
問題提起 ( 24 )
bull 複雑なシーンでは1 メッシュ頂点数が増加2 必要な係数の数の増大 rArr 計算量の増大}
CEDEC 2012
問題提起 ( 34 )
bull 解決策シーンを複数の小領域に分割
rArr 適切に小領域を設定すればシーンの複雑さを 抑える事が可能bull 小領域の分割方法はユーザーが決定
CEDEC 2012
問題提起 ( 44 )
bull 各小領域内の間接光は前述の方法で計算可能bull 小領域間の光の伝播を別途考慮する必要がある
小領域間の光の伝播の高速な計算方法を解説
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
キーアイディア ( 16 )
bull 小領域間の光の伝播を個別に計算
CEDEC 2012
キーアイディア ( 26 )
bull 例として右rArr(中央)rArr左へ伝播する光を考える
キーアイディアでは多重反射を考慮しない光の伝播を考える
CEDEC 2012
キーアイディア ( 36 )
bull 小領域間の光の伝播は頂点間の影響に帰着
CEDEC 2012
キーアイディア ( 46 )
bull 小領域間の光の伝播行列 P を前計算119820 伝播先の小領域の頂点数119821 伝播元の小領域の頂点数
光の伝播行列P
119820行119821列[iquest ]P
CEDEC 2012
キーアイディア ( 56 )
bull 光の伝播行列 P を利用して光の伝播を高速に計算
[ 119956120783⋮119956119925]
119852 伝播元の小領域の頂点の色119941 伝播先の小領域の頂点の色
119820行119821列[iquest ][ 119941120783
⋮119941119924
] timesiquest P119820 伝播先の小領域の頂点数119821 伝播元の小領域の頂点数
CEDEC 2012
キーアイディア ( 66 )
bull 光の伝播を係数からの変換に修正
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
bull ライトフィールドという概念を導入
光の伝播行列の計算 ( 17 )
ライトフィールドは任意の点群を通過する
光を体系的に記録するためのデータ構造
境界面に注目
CEDEC 2012
光の伝播行列の計算 ( 27 )
bull 光の伝播行列 P を三要素に分割1 光の出射行列 Pout2 光の通過行列 Pthrough3 光の入射行列 Pin
右の小領域 中央の小領域 左の小領域P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 37 )
bull 光の出射行列 Poutndash 小領域 rArr ライトフィールド
119819120783 出射ライトフィールドのサンプル数119821 伝播元の小領域の頂点数
iquest119819120783行iquest
⋮⋮
⋮4 5 9
6
8
CEDEC 2012
光の伝播行列の計算 ( 47 )
bull 光の通過行列 Pthroughndash ライトフィールド rArr ライトフィールド
119819120784 出射ライトフィールドのサンプル数119819120783入射ライトフィールドのサンプル数
iquest119819120784行iquest
⋮⋮
⋮5 8
2
5 ⋯
CEDEC 2012
光の伝播行列の計算 ( 57 )
bull 光の入射行列 Pinndash ライトフィールド rArr 小領域
119820伝播先の小領域の頂点数119819120784 入射ライトフィールドのサンプル数
iquest119820行iquest
⋮
2 5 6
1
5⋮
Pin 計算時にヘミキューブ法などを用いて立体角を考慮
CEDEC 2012
光の伝播行列の計算 ( 67 )
bull 全ての小領域間の光の伝播は三種類の行列の組み合わせで計算可能
P = Pin times Pout上記例ではは再利用不可能だがは共通
P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 77 )
bull 光の伝播の計算のまとめ
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
多重反射への拡張
bull 間接光計算を反復実行
⋮
間接光計算
間接光計算
間接光計算
直接光
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
モジュールの導入 ( 13 )
bull モジュール( = 再利用可能な汎用小領域)の導入
bull 上記のようなシーンは「回転」も考慮すれば5種の立方体モジュールの組合わせで構成可能
3 方向壁 2 方向壁 2 方向壁 1 方向壁 0 方向壁
CEDEC 2012
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
モジュールの導入 ( 23 )
通過行列は(直進 右折 左折)の三種類
ライトフィールドデータを一つの行列に格納
特異値分解
データ量の削減及び計算の高速化
詳しくは論文 51 節参照
CEDEC 2012
モジュールの導入 ( 33 )
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
メリットは多いがシーンの自由度とのトレードオフ
モジュールの使い所は要検討
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
デモ
CEDEC 2012
考察
bull ライトフィールドは本当に必要か
bull 小領域間の位置関係が固定ならば(恐らく)不要
rArr レイトレーシング法で伝播行列 P を直接計算 した方が効率的bull 小領域を動的に入れ替える場合は必要
P = Pin times Pthrough times Pout
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ 3 まとめ
CEDEC 2012
発表内容のまとめ
bull Modular Radiance Transfer 法を解説ndash 長所
bull とにかく高速bull 多重反射を含んだ間接光が扱えるbull 技術のコア部分は汎用的で応用の余地が高い
ndash 短所bull 前計算を含め使い方に癖がある ( 実験を通してノウハウを蓄積すれば余り問題にならない )
ゲームへの応用は十分可能
CEDEC 2012
本スライド内で引用した論文の図の著作権は全て論文著者に帰属します
その他の図スライド本体挿絵等の著作権は
シリコンスタジオ株式会社に帰属します
著作権について
CEDEC 2012
最後に
御清聴ありがとうございました
httpwwwsiliconstudiocojppresentationsindexhtml
スライドデモは弊社 HP で近日公開
制作協力 河野 駿介 辻 俊晶 古家 亙 後藤 晋也 京田 文人 三谷 健一郎
問い合わせ先 田村 nk-tamurasiliconstudiocojp 安田 re-yasudasiliconstudiocojp
シリコンスタジオは常に人材を求めています
ご興味ある方は弊社 HP をご覧ください
CEDEC 2012
Appendix A 実装について
bull 実装自体は様々なアプローチが可能bull ここではデモの実装でのアプローチを紹介
CEDEC 2012
Appendix A 前計算について
bull F の計算ndash メッシュの全頂点からキューブマップにレンダリングndash ピクセルには頂点 ID とウェイトを出力
bull 直接光サンプルの計算ndash 頂点カラーを Stream Out でバッファに出力ndash 頂点シャドウあり
bull Light Probe の計算ndash 各 Probe の中心からキューブマップにレンダリングndash の対応する基底ベクトル同士を足し合わせた
ベクトル ( 直接光 + 間接光 ) を頂点カラーとして使用
CEDEC 2012
Appendix A ランタイム
bull 直接光の結果を Stream Out でバッファに出力ndash 頂点シャドウありndash カラーバッファへの書き込み OFFndash 複数オブジェクトの場合は単一バッファにオフ
セットを変えて出力
119897119889
CEDEC 2012
Appendix A ランタイム 係数
bull Compute Shader で を計算ndash は極めて横長の行列 ( 行 ~100程度 列 頂点数 )ndash は GPU が少々苦手な処理ではあるものの
タイリングベースの実装で高速に処理可能
iquest
119897119889119960 lowast119861119889minus1
CEDEC 2012
Appendix A ランタイム
bull Compute Shader で を計算ndash は極めて縦長 ( の転置と同サイズ ) なので素直に実装可能
iquest
119861119894119899119889 119960119897119894119899 119889 lowast
CEDEC 2012
Appendix A ランタイム 最終パス
bull を頂点カラーとして入力としてピクセル単位の直接光のシェーディングと合成して最終結果を得る
iquest +
CEDEC 2012
Appendix A ランタイム Light Probe(1)
bull Compute Shader でを計算ndash は縦長 ( 行 頂点数 timesSH係数の数 列 ~100程度 )
iquest
119880119907119900119897 119960119897119907119900119897 lowast
CEDEC 2012
Appendix A ランタイム Light Probe(2)
bull Probe を用いて Dynamic Objects をライティングndash 各 Light Probe が SH を 9係数で保持するため
3D Texture ではなく Structured-Buffer で保持ndash Vertex Shader 内で自力 Tri-Linear 補間
iquest +
CEDEC 2012
Appendix B 後半の補足
bull 大規模なシーンでの光の伝播bull 小領域間の光の伝播は個別に総当たりで計算
rArr小領域間の光の伝播は距離によって大きく減衰
実際は大規模シーンでも概ね二つ隣の小領域まで考慮すれば十分
CEDEC 2012
Appendix B 後半の補足
bull 小領域の境界
bull 小領域の境界部分が不連続になる rArr 小領域の境界部分は補間の必要がある
CEDEC 2012
bull スライドと論文で表記が違う記号があります
Appendix C 記号の表記
スライドでの表記 論文での表記
b
- Slide 1
- 発表の流れ
- 発表の流れ (2)
- 発表の概要
- 解説技術の特徴
- 注意点
- 発表の流れ (3)
- 発表の流れ (4)
- 間接光の概要
- 間接光の概要 (2)
- 解説手法の計算概要
- 間接光計算の解説手順
- 間接光計算の解説手順 (2)
- 間接光計算の解説手順 (3)
- 間接光計算の解説手順 (4)
- 間接光計算の解説手順 (5)
- 間接光計算の解説手順 (6)
- 間接光計算の考え方
- 間接光計算の考え方 (2)
- 間接光計算の考え方 (3)
- 間接光計算の考え方 (4)
- 間接光計算の考え方 (5)
- 間接光計算の解説手順 (7)
- 問題提起
- 間接光計算の解説手順 (8)
- キーアイディア
- キーアイディア (2)
- キーアイディア (3)
- キーアイディア (4)
- キーアイディア (5)
- キーアイディア (6)
- 間接光計算の解説手順 (9)
- 間接光計算の解説手順 (10)
- を求める
- を求める (2)
- を求める (3)
- 最適な基底
- サンプリングベースの基底
- サンプルの選び方について
- サンプリング行列
- サンプリング行列 (2)
- サンプリング行列 (3)
- サンプリング行列 (4)
- サンプリング行列 (5)
- サンプリング行列 (6)
- サンプリング行列 (7)
- 特異値分解(Singular Value Decomposition)
- 特異値分解(Singular Value Decomposition) (2)
- 特異値分解(Singular Value Decomposition) (3)
- 特異値分解(Singular Value Decomposition) (4)
- 特異値分解(Singular Value Decomposition) (5)
- 基底による直接光の近似
- アプローチの比較
- ハイブリッド手法の計算手順
- 係数の数の比較
- ランタイムの計算処理
- 係数の計算方法
- ランタイムの計算処理 (2)
- 間接光計算の解説手順 (11)
- ショートデモ
- 間接光計算の解説手順 (12)
- 間接光計算の解説手順 (13)
- Light Probe
- Light Probe (2)
- Light Probeによるライティング
- Light Probeによるライティング (2)
- 間接光計算の解説手順 (14)
- Light Probeの計算
- 動的なLight Probe
- 動的なLight Probe (2)
- 間接光計算の解説手順 (15)
- デモ
- デモ詳細
- パフォーマンス
- まとめ
- 発表の流れ (5)
- シーン分割による高速化の解説手順
- シーン分割による高速化の解説手順 (2)
- 問題提起 (14)
- 問題提起 (24)
- 問題提起 (34)
- 問題提起 (44)
- シーン分割による高速化の解説手順 (3)
- シーン分割による高速化の解説手順 (4)
- キーアイディア (16)
- キーアイディア (26)
- キーアイディア (36)
- キーアイディア (46)
- キーアイディア (56)
- キーアイディア (66)
- シーン分割による高速化の解説手順 (5)
- 光の伝播行列の計算 (17)
- 光の伝播行列の計算 (27)
- 光の伝播行列の計算 (37)
- 光の伝播行列の計算 (47)
- 光の伝播行列の計算 (57)
- 光の伝播行列の計算 (67)
- 光の伝播行列の計算 (77)
- シーン分割による高速化の解説手順 (6)
- シーン分割による高速化の解説手順 (7)
- 多重反射への拡張
- シーン分割による高速化の解説手順 (8)
- モジュールの導入 (13)
- モジュールの導入 (23)
- モジュールの導入 (33)
- シーン分割による高速化の解説手順 (9)
- デモ (2)
- 考察
- 発表の流れ (6)
- 発表内容のまとめ
- 著作権について
- 最後に
- Appendix A 実装について
- Appendix A 前計算について
- Appendix A ランタイム
- Appendix A ランタイム 係数
- Appendix A ランタイム
- Appendix A ランタイム 最終パス
- Appendix A ランタイム Light Probe(1)
- Appendix A ランタイム Light Probe(2)
- Appendix B 後半の補足
- Appendix B 後半の補足 (2)
- Appendix C 記号の表記
-
CEDEC 2012
パフォーマンス
bull 解像度は 1400800 で測定bull 実装には Compute Shader を使用bull 前計算約 45 分
ndash 2520 光源サンプルndash 20回反射まで考慮ndash 最適化で 10倍以上の高速化の余地あり
影あり 影なし 影なし GIなし
Geforce GTX 680 500 fps 800 fps 1500 fps
Geforce GTX 560 360 fps 440 fps 750 fps
Radeon 6630 M 80 fps 120 fps 280 fps
実装の Tips は Appendix に記載
CEDEC 2012
まとめ
bull 良い点ndash 非常に高速計算負荷が一定ndash 反射回数が無制限(行列 F に含められる )ndash 高速な Light Probe 計算ndash 様々な拡張
bull 悪い点ndash Light の位置方向を含めた前計算ndash 動的すぎるシーンは不可 (rarrDelta Radiance
Transfer)ndash 頂点カラーを念頭に置いたメッシュ分割頂点配置
ndash 複雑すぎない形状
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ
ndash 間接光計算手法の解説 (論文 4 節)ndash シーン分割による高速化の解説 (論文 5 節)
3 まとめ
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
問題提起 ( 14 )
bull 対象とする問題 シーンが複雑になった場合の計算負荷の増大
シンプルなシーン
より複雑なシーン
CEDEC 2012
問題提起 ( 24 )
bull 複雑なシーンでは1 メッシュ頂点数が増加2 必要な係数の数の増大 rArr 計算量の増大}
CEDEC 2012
問題提起 ( 34 )
bull 解決策シーンを複数の小領域に分割
rArr 適切に小領域を設定すればシーンの複雑さを 抑える事が可能bull 小領域の分割方法はユーザーが決定
CEDEC 2012
問題提起 ( 44 )
bull 各小領域内の間接光は前述の方法で計算可能bull 小領域間の光の伝播を別途考慮する必要がある
小領域間の光の伝播の高速な計算方法を解説
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
キーアイディア ( 16 )
bull 小領域間の光の伝播を個別に計算
CEDEC 2012
キーアイディア ( 26 )
bull 例として右rArr(中央)rArr左へ伝播する光を考える
キーアイディアでは多重反射を考慮しない光の伝播を考える
CEDEC 2012
キーアイディア ( 36 )
bull 小領域間の光の伝播は頂点間の影響に帰着
CEDEC 2012
キーアイディア ( 46 )
bull 小領域間の光の伝播行列 P を前計算119820 伝播先の小領域の頂点数119821 伝播元の小領域の頂点数
光の伝播行列P
119820行119821列[iquest ]P
CEDEC 2012
キーアイディア ( 56 )
bull 光の伝播行列 P を利用して光の伝播を高速に計算
[ 119956120783⋮119956119925]
119852 伝播元の小領域の頂点の色119941 伝播先の小領域の頂点の色
119820行119821列[iquest ][ 119941120783
⋮119941119924
] timesiquest P119820 伝播先の小領域の頂点数119821 伝播元の小領域の頂点数
CEDEC 2012
キーアイディア ( 66 )
bull 光の伝播を係数からの変換に修正
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
bull ライトフィールドという概念を導入
光の伝播行列の計算 ( 17 )
ライトフィールドは任意の点群を通過する
光を体系的に記録するためのデータ構造
境界面に注目
CEDEC 2012
光の伝播行列の計算 ( 27 )
bull 光の伝播行列 P を三要素に分割1 光の出射行列 Pout2 光の通過行列 Pthrough3 光の入射行列 Pin
右の小領域 中央の小領域 左の小領域P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 37 )
bull 光の出射行列 Poutndash 小領域 rArr ライトフィールド
119819120783 出射ライトフィールドのサンプル数119821 伝播元の小領域の頂点数
iquest119819120783行iquest
⋮⋮
⋮4 5 9
6
8
CEDEC 2012
光の伝播行列の計算 ( 47 )
bull 光の通過行列 Pthroughndash ライトフィールド rArr ライトフィールド
119819120784 出射ライトフィールドのサンプル数119819120783入射ライトフィールドのサンプル数
iquest119819120784行iquest
⋮⋮
⋮5 8
2
5 ⋯
CEDEC 2012
光の伝播行列の計算 ( 57 )
bull 光の入射行列 Pinndash ライトフィールド rArr 小領域
119820伝播先の小領域の頂点数119819120784 入射ライトフィールドのサンプル数
iquest119820行iquest
⋮
2 5 6
1
5⋮
Pin 計算時にヘミキューブ法などを用いて立体角を考慮
CEDEC 2012
光の伝播行列の計算 ( 67 )
bull 全ての小領域間の光の伝播は三種類の行列の組み合わせで計算可能
P = Pin times Pout上記例ではは再利用不可能だがは共通
P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 77 )
bull 光の伝播の計算のまとめ
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
多重反射への拡張
bull 間接光計算を反復実行
⋮
間接光計算
間接光計算
間接光計算
直接光
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
モジュールの導入 ( 13 )
bull モジュール( = 再利用可能な汎用小領域)の導入
bull 上記のようなシーンは「回転」も考慮すれば5種の立方体モジュールの組合わせで構成可能
3 方向壁 2 方向壁 2 方向壁 1 方向壁 0 方向壁
CEDEC 2012
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
モジュールの導入 ( 23 )
通過行列は(直進 右折 左折)の三種類
ライトフィールドデータを一つの行列に格納
特異値分解
データ量の削減及び計算の高速化
詳しくは論文 51 節参照
CEDEC 2012
モジュールの導入 ( 33 )
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
メリットは多いがシーンの自由度とのトレードオフ
モジュールの使い所は要検討
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
デモ
CEDEC 2012
考察
bull ライトフィールドは本当に必要か
bull 小領域間の位置関係が固定ならば(恐らく)不要
rArr レイトレーシング法で伝播行列 P を直接計算 した方が効率的bull 小領域を動的に入れ替える場合は必要
P = Pin times Pthrough times Pout
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ 3 まとめ
CEDEC 2012
発表内容のまとめ
bull Modular Radiance Transfer 法を解説ndash 長所
bull とにかく高速bull 多重反射を含んだ間接光が扱えるbull 技術のコア部分は汎用的で応用の余地が高い
ndash 短所bull 前計算を含め使い方に癖がある ( 実験を通してノウハウを蓄積すれば余り問題にならない )
ゲームへの応用は十分可能
CEDEC 2012
本スライド内で引用した論文の図の著作権は全て論文著者に帰属します
その他の図スライド本体挿絵等の著作権は
シリコンスタジオ株式会社に帰属します
著作権について
CEDEC 2012
最後に
御清聴ありがとうございました
httpwwwsiliconstudiocojppresentationsindexhtml
スライドデモは弊社 HP で近日公開
制作協力 河野 駿介 辻 俊晶 古家 亙 後藤 晋也 京田 文人 三谷 健一郎
問い合わせ先 田村 nk-tamurasiliconstudiocojp 安田 re-yasudasiliconstudiocojp
シリコンスタジオは常に人材を求めています
ご興味ある方は弊社 HP をご覧ください
CEDEC 2012
Appendix A 実装について
bull 実装自体は様々なアプローチが可能bull ここではデモの実装でのアプローチを紹介
CEDEC 2012
Appendix A 前計算について
bull F の計算ndash メッシュの全頂点からキューブマップにレンダリングndash ピクセルには頂点 ID とウェイトを出力
bull 直接光サンプルの計算ndash 頂点カラーを Stream Out でバッファに出力ndash 頂点シャドウあり
bull Light Probe の計算ndash 各 Probe の中心からキューブマップにレンダリングndash の対応する基底ベクトル同士を足し合わせた
ベクトル ( 直接光 + 間接光 ) を頂点カラーとして使用
CEDEC 2012
Appendix A ランタイム
bull 直接光の結果を Stream Out でバッファに出力ndash 頂点シャドウありndash カラーバッファへの書き込み OFFndash 複数オブジェクトの場合は単一バッファにオフ
セットを変えて出力
119897119889
CEDEC 2012
Appendix A ランタイム 係数
bull Compute Shader で を計算ndash は極めて横長の行列 ( 行 ~100程度 列 頂点数 )ndash は GPU が少々苦手な処理ではあるものの
タイリングベースの実装で高速に処理可能
iquest
119897119889119960 lowast119861119889minus1
CEDEC 2012
Appendix A ランタイム
bull Compute Shader で を計算ndash は極めて縦長 ( の転置と同サイズ ) なので素直に実装可能
iquest
119861119894119899119889 119960119897119894119899 119889 lowast
CEDEC 2012
Appendix A ランタイム 最終パス
bull を頂点カラーとして入力としてピクセル単位の直接光のシェーディングと合成して最終結果を得る
iquest +
CEDEC 2012
Appendix A ランタイム Light Probe(1)
bull Compute Shader でを計算ndash は縦長 ( 行 頂点数 timesSH係数の数 列 ~100程度 )
iquest
119880119907119900119897 119960119897119907119900119897 lowast
CEDEC 2012
Appendix A ランタイム Light Probe(2)
bull Probe を用いて Dynamic Objects をライティングndash 各 Light Probe が SH を 9係数で保持するため
3D Texture ではなく Structured-Buffer で保持ndash Vertex Shader 内で自力 Tri-Linear 補間
iquest +
CEDEC 2012
Appendix B 後半の補足
bull 大規模なシーンでの光の伝播bull 小領域間の光の伝播は個別に総当たりで計算
rArr小領域間の光の伝播は距離によって大きく減衰
実際は大規模シーンでも概ね二つ隣の小領域まで考慮すれば十分
CEDEC 2012
Appendix B 後半の補足
bull 小領域の境界
bull 小領域の境界部分が不連続になる rArr 小領域の境界部分は補間の必要がある
CEDEC 2012
bull スライドと論文で表記が違う記号があります
Appendix C 記号の表記
スライドでの表記 論文での表記
b
- Slide 1
- 発表の流れ
- 発表の流れ (2)
- 発表の概要
- 解説技術の特徴
- 注意点
- 発表の流れ (3)
- 発表の流れ (4)
- 間接光の概要
- 間接光の概要 (2)
- 解説手法の計算概要
- 間接光計算の解説手順
- 間接光計算の解説手順 (2)
- 間接光計算の解説手順 (3)
- 間接光計算の解説手順 (4)
- 間接光計算の解説手順 (5)
- 間接光計算の解説手順 (6)
- 間接光計算の考え方
- 間接光計算の考え方 (2)
- 間接光計算の考え方 (3)
- 間接光計算の考え方 (4)
- 間接光計算の考え方 (5)
- 間接光計算の解説手順 (7)
- 問題提起
- 間接光計算の解説手順 (8)
- キーアイディア
- キーアイディア (2)
- キーアイディア (3)
- キーアイディア (4)
- キーアイディア (5)
- キーアイディア (6)
- 間接光計算の解説手順 (9)
- 間接光計算の解説手順 (10)
- を求める
- を求める (2)
- を求める (3)
- 最適な基底
- サンプリングベースの基底
- サンプルの選び方について
- サンプリング行列
- サンプリング行列 (2)
- サンプリング行列 (3)
- サンプリング行列 (4)
- サンプリング行列 (5)
- サンプリング行列 (6)
- サンプリング行列 (7)
- 特異値分解(Singular Value Decomposition)
- 特異値分解(Singular Value Decomposition) (2)
- 特異値分解(Singular Value Decomposition) (3)
- 特異値分解(Singular Value Decomposition) (4)
- 特異値分解(Singular Value Decomposition) (5)
- 基底による直接光の近似
- アプローチの比較
- ハイブリッド手法の計算手順
- 係数の数の比較
- ランタイムの計算処理
- 係数の計算方法
- ランタイムの計算処理 (2)
- 間接光計算の解説手順 (11)
- ショートデモ
- 間接光計算の解説手順 (12)
- 間接光計算の解説手順 (13)
- Light Probe
- Light Probe (2)
- Light Probeによるライティング
- Light Probeによるライティング (2)
- 間接光計算の解説手順 (14)
- Light Probeの計算
- 動的なLight Probe
- 動的なLight Probe (2)
- 間接光計算の解説手順 (15)
- デモ
- デモ詳細
- パフォーマンス
- まとめ
- 発表の流れ (5)
- シーン分割による高速化の解説手順
- シーン分割による高速化の解説手順 (2)
- 問題提起 (14)
- 問題提起 (24)
- 問題提起 (34)
- 問題提起 (44)
- シーン分割による高速化の解説手順 (3)
- シーン分割による高速化の解説手順 (4)
- キーアイディア (16)
- キーアイディア (26)
- キーアイディア (36)
- キーアイディア (46)
- キーアイディア (56)
- キーアイディア (66)
- シーン分割による高速化の解説手順 (5)
- 光の伝播行列の計算 (17)
- 光の伝播行列の計算 (27)
- 光の伝播行列の計算 (37)
- 光の伝播行列の計算 (47)
- 光の伝播行列の計算 (57)
- 光の伝播行列の計算 (67)
- 光の伝播行列の計算 (77)
- シーン分割による高速化の解説手順 (6)
- シーン分割による高速化の解説手順 (7)
- 多重反射への拡張
- シーン分割による高速化の解説手順 (8)
- モジュールの導入 (13)
- モジュールの導入 (23)
- モジュールの導入 (33)
- シーン分割による高速化の解説手順 (9)
- デモ (2)
- 考察
- 発表の流れ (6)
- 発表内容のまとめ
- 著作権について
- 最後に
- Appendix A 実装について
- Appendix A 前計算について
- Appendix A ランタイム
- Appendix A ランタイム 係数
- Appendix A ランタイム
- Appendix A ランタイム 最終パス
- Appendix A ランタイム Light Probe(1)
- Appendix A ランタイム Light Probe(2)
- Appendix B 後半の補足
- Appendix B 後半の補足 (2)
- Appendix C 記号の表記
-
CEDEC 2012
まとめ
bull 良い点ndash 非常に高速計算負荷が一定ndash 反射回数が無制限(行列 F に含められる )ndash 高速な Light Probe 計算ndash 様々な拡張
bull 悪い点ndash Light の位置方向を含めた前計算ndash 動的すぎるシーンは不可 (rarrDelta Radiance
Transfer)ndash 頂点カラーを念頭に置いたメッシュ分割頂点配置
ndash 複雑すぎない形状
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ
ndash 間接光計算手法の解説 (論文 4 節)ndash シーン分割による高速化の解説 (論文 5 節)
3 まとめ
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
問題提起 ( 14 )
bull 対象とする問題 シーンが複雑になった場合の計算負荷の増大
シンプルなシーン
より複雑なシーン
CEDEC 2012
問題提起 ( 24 )
bull 複雑なシーンでは1 メッシュ頂点数が増加2 必要な係数の数の増大 rArr 計算量の増大}
CEDEC 2012
問題提起 ( 34 )
bull 解決策シーンを複数の小領域に分割
rArr 適切に小領域を設定すればシーンの複雑さを 抑える事が可能bull 小領域の分割方法はユーザーが決定
CEDEC 2012
問題提起 ( 44 )
bull 各小領域内の間接光は前述の方法で計算可能bull 小領域間の光の伝播を別途考慮する必要がある
小領域間の光の伝播の高速な計算方法を解説
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
キーアイディア ( 16 )
bull 小領域間の光の伝播を個別に計算
CEDEC 2012
キーアイディア ( 26 )
bull 例として右rArr(中央)rArr左へ伝播する光を考える
キーアイディアでは多重反射を考慮しない光の伝播を考える
CEDEC 2012
キーアイディア ( 36 )
bull 小領域間の光の伝播は頂点間の影響に帰着
CEDEC 2012
キーアイディア ( 46 )
bull 小領域間の光の伝播行列 P を前計算119820 伝播先の小領域の頂点数119821 伝播元の小領域の頂点数
光の伝播行列P
119820行119821列[iquest ]P
CEDEC 2012
キーアイディア ( 56 )
bull 光の伝播行列 P を利用して光の伝播を高速に計算
[ 119956120783⋮119956119925]
119852 伝播元の小領域の頂点の色119941 伝播先の小領域の頂点の色
119820行119821列[iquest ][ 119941120783
⋮119941119924
] timesiquest P119820 伝播先の小領域の頂点数119821 伝播元の小領域の頂点数
CEDEC 2012
キーアイディア ( 66 )
bull 光の伝播を係数からの変換に修正
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
bull ライトフィールドという概念を導入
光の伝播行列の計算 ( 17 )
ライトフィールドは任意の点群を通過する
光を体系的に記録するためのデータ構造
境界面に注目
CEDEC 2012
光の伝播行列の計算 ( 27 )
bull 光の伝播行列 P を三要素に分割1 光の出射行列 Pout2 光の通過行列 Pthrough3 光の入射行列 Pin
右の小領域 中央の小領域 左の小領域P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 37 )
bull 光の出射行列 Poutndash 小領域 rArr ライトフィールド
119819120783 出射ライトフィールドのサンプル数119821 伝播元の小領域の頂点数
iquest119819120783行iquest
⋮⋮
⋮4 5 9
6
8
CEDEC 2012
光の伝播行列の計算 ( 47 )
bull 光の通過行列 Pthroughndash ライトフィールド rArr ライトフィールド
119819120784 出射ライトフィールドのサンプル数119819120783入射ライトフィールドのサンプル数
iquest119819120784行iquest
⋮⋮
⋮5 8
2
5 ⋯
CEDEC 2012
光の伝播行列の計算 ( 57 )
bull 光の入射行列 Pinndash ライトフィールド rArr 小領域
119820伝播先の小領域の頂点数119819120784 入射ライトフィールドのサンプル数
iquest119820行iquest
⋮
2 5 6
1
5⋮
Pin 計算時にヘミキューブ法などを用いて立体角を考慮
CEDEC 2012
光の伝播行列の計算 ( 67 )
bull 全ての小領域間の光の伝播は三種類の行列の組み合わせで計算可能
P = Pin times Pout上記例ではは再利用不可能だがは共通
P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 77 )
bull 光の伝播の計算のまとめ
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
多重反射への拡張
bull 間接光計算を反復実行
⋮
間接光計算
間接光計算
間接光計算
直接光
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
モジュールの導入 ( 13 )
bull モジュール( = 再利用可能な汎用小領域)の導入
bull 上記のようなシーンは「回転」も考慮すれば5種の立方体モジュールの組合わせで構成可能
3 方向壁 2 方向壁 2 方向壁 1 方向壁 0 方向壁
CEDEC 2012
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
モジュールの導入 ( 23 )
通過行列は(直進 右折 左折)の三種類
ライトフィールドデータを一つの行列に格納
特異値分解
データ量の削減及び計算の高速化
詳しくは論文 51 節参照
CEDEC 2012
モジュールの導入 ( 33 )
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
メリットは多いがシーンの自由度とのトレードオフ
モジュールの使い所は要検討
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
デモ
CEDEC 2012
考察
bull ライトフィールドは本当に必要か
bull 小領域間の位置関係が固定ならば(恐らく)不要
rArr レイトレーシング法で伝播行列 P を直接計算 した方が効率的bull 小領域を動的に入れ替える場合は必要
P = Pin times Pthrough times Pout
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ 3 まとめ
CEDEC 2012
発表内容のまとめ
bull Modular Radiance Transfer 法を解説ndash 長所
bull とにかく高速bull 多重反射を含んだ間接光が扱えるbull 技術のコア部分は汎用的で応用の余地が高い
ndash 短所bull 前計算を含め使い方に癖がある ( 実験を通してノウハウを蓄積すれば余り問題にならない )
ゲームへの応用は十分可能
CEDEC 2012
本スライド内で引用した論文の図の著作権は全て論文著者に帰属します
その他の図スライド本体挿絵等の著作権は
シリコンスタジオ株式会社に帰属します
著作権について
CEDEC 2012
最後に
御清聴ありがとうございました
httpwwwsiliconstudiocojppresentationsindexhtml
スライドデモは弊社 HP で近日公開
制作協力 河野 駿介 辻 俊晶 古家 亙 後藤 晋也 京田 文人 三谷 健一郎
問い合わせ先 田村 nk-tamurasiliconstudiocojp 安田 re-yasudasiliconstudiocojp
シリコンスタジオは常に人材を求めています
ご興味ある方は弊社 HP をご覧ください
CEDEC 2012
Appendix A 実装について
bull 実装自体は様々なアプローチが可能bull ここではデモの実装でのアプローチを紹介
CEDEC 2012
Appendix A 前計算について
bull F の計算ndash メッシュの全頂点からキューブマップにレンダリングndash ピクセルには頂点 ID とウェイトを出力
bull 直接光サンプルの計算ndash 頂点カラーを Stream Out でバッファに出力ndash 頂点シャドウあり
bull Light Probe の計算ndash 各 Probe の中心からキューブマップにレンダリングndash の対応する基底ベクトル同士を足し合わせた
ベクトル ( 直接光 + 間接光 ) を頂点カラーとして使用
CEDEC 2012
Appendix A ランタイム
bull 直接光の結果を Stream Out でバッファに出力ndash 頂点シャドウありndash カラーバッファへの書き込み OFFndash 複数オブジェクトの場合は単一バッファにオフ
セットを変えて出力
119897119889
CEDEC 2012
Appendix A ランタイム 係数
bull Compute Shader で を計算ndash は極めて横長の行列 ( 行 ~100程度 列 頂点数 )ndash は GPU が少々苦手な処理ではあるものの
タイリングベースの実装で高速に処理可能
iquest
119897119889119960 lowast119861119889minus1
CEDEC 2012
Appendix A ランタイム
bull Compute Shader で を計算ndash は極めて縦長 ( の転置と同サイズ ) なので素直に実装可能
iquest
119861119894119899119889 119960119897119894119899 119889 lowast
CEDEC 2012
Appendix A ランタイム 最終パス
bull を頂点カラーとして入力としてピクセル単位の直接光のシェーディングと合成して最終結果を得る
iquest +
CEDEC 2012
Appendix A ランタイム Light Probe(1)
bull Compute Shader でを計算ndash は縦長 ( 行 頂点数 timesSH係数の数 列 ~100程度 )
iquest
119880119907119900119897 119960119897119907119900119897 lowast
CEDEC 2012
Appendix A ランタイム Light Probe(2)
bull Probe を用いて Dynamic Objects をライティングndash 各 Light Probe が SH を 9係数で保持するため
3D Texture ではなく Structured-Buffer で保持ndash Vertex Shader 内で自力 Tri-Linear 補間
iquest +
CEDEC 2012
Appendix B 後半の補足
bull 大規模なシーンでの光の伝播bull 小領域間の光の伝播は個別に総当たりで計算
rArr小領域間の光の伝播は距離によって大きく減衰
実際は大規模シーンでも概ね二つ隣の小領域まで考慮すれば十分
CEDEC 2012
Appendix B 後半の補足
bull 小領域の境界
bull 小領域の境界部分が不連続になる rArr 小領域の境界部分は補間の必要がある
CEDEC 2012
bull スライドと論文で表記が違う記号があります
Appendix C 記号の表記
スライドでの表記 論文での表記
b
- Slide 1
- 発表の流れ
- 発表の流れ (2)
- 発表の概要
- 解説技術の特徴
- 注意点
- 発表の流れ (3)
- 発表の流れ (4)
- 間接光の概要
- 間接光の概要 (2)
- 解説手法の計算概要
- 間接光計算の解説手順
- 間接光計算の解説手順 (2)
- 間接光計算の解説手順 (3)
- 間接光計算の解説手順 (4)
- 間接光計算の解説手順 (5)
- 間接光計算の解説手順 (6)
- 間接光計算の考え方
- 間接光計算の考え方 (2)
- 間接光計算の考え方 (3)
- 間接光計算の考え方 (4)
- 間接光計算の考え方 (5)
- 間接光計算の解説手順 (7)
- 問題提起
- 間接光計算の解説手順 (8)
- キーアイディア
- キーアイディア (2)
- キーアイディア (3)
- キーアイディア (4)
- キーアイディア (5)
- キーアイディア (6)
- 間接光計算の解説手順 (9)
- 間接光計算の解説手順 (10)
- を求める
- を求める (2)
- を求める (3)
- 最適な基底
- サンプリングベースの基底
- サンプルの選び方について
- サンプリング行列
- サンプリング行列 (2)
- サンプリング行列 (3)
- サンプリング行列 (4)
- サンプリング行列 (5)
- サンプリング行列 (6)
- サンプリング行列 (7)
- 特異値分解(Singular Value Decomposition)
- 特異値分解(Singular Value Decomposition) (2)
- 特異値分解(Singular Value Decomposition) (3)
- 特異値分解(Singular Value Decomposition) (4)
- 特異値分解(Singular Value Decomposition) (5)
- 基底による直接光の近似
- アプローチの比較
- ハイブリッド手法の計算手順
- 係数の数の比較
- ランタイムの計算処理
- 係数の計算方法
- ランタイムの計算処理 (2)
- 間接光計算の解説手順 (11)
- ショートデモ
- 間接光計算の解説手順 (12)
- 間接光計算の解説手順 (13)
- Light Probe
- Light Probe (2)
- Light Probeによるライティング
- Light Probeによるライティング (2)
- 間接光計算の解説手順 (14)
- Light Probeの計算
- 動的なLight Probe
- 動的なLight Probe (2)
- 間接光計算の解説手順 (15)
- デモ
- デモ詳細
- パフォーマンス
- まとめ
- 発表の流れ (5)
- シーン分割による高速化の解説手順
- シーン分割による高速化の解説手順 (2)
- 問題提起 (14)
- 問題提起 (24)
- 問題提起 (34)
- 問題提起 (44)
- シーン分割による高速化の解説手順 (3)
- シーン分割による高速化の解説手順 (4)
- キーアイディア (16)
- キーアイディア (26)
- キーアイディア (36)
- キーアイディア (46)
- キーアイディア (56)
- キーアイディア (66)
- シーン分割による高速化の解説手順 (5)
- 光の伝播行列の計算 (17)
- 光の伝播行列の計算 (27)
- 光の伝播行列の計算 (37)
- 光の伝播行列の計算 (47)
- 光の伝播行列の計算 (57)
- 光の伝播行列の計算 (67)
- 光の伝播行列の計算 (77)
- シーン分割による高速化の解説手順 (6)
- シーン分割による高速化の解説手順 (7)
- 多重反射への拡張
- シーン分割による高速化の解説手順 (8)
- モジュールの導入 (13)
- モジュールの導入 (23)
- モジュールの導入 (33)
- シーン分割による高速化の解説手順 (9)
- デモ (2)
- 考察
- 発表の流れ (6)
- 発表内容のまとめ
- 著作権について
- 最後に
- Appendix A 実装について
- Appendix A 前計算について
- Appendix A ランタイム
- Appendix A ランタイム 係数
- Appendix A ランタイム
- Appendix A ランタイム 最終パス
- Appendix A ランタイム Light Probe(1)
- Appendix A ランタイム Light Probe(2)
- Appendix B 後半の補足
- Appendix B 後半の補足 (2)
- Appendix C 記号の表記
-
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ
ndash 間接光計算手法の解説 (論文 4 節)ndash シーン分割による高速化の解説 (論文 5 節)
3 まとめ
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
問題提起 ( 14 )
bull 対象とする問題 シーンが複雑になった場合の計算負荷の増大
シンプルなシーン
より複雑なシーン
CEDEC 2012
問題提起 ( 24 )
bull 複雑なシーンでは1 メッシュ頂点数が増加2 必要な係数の数の増大 rArr 計算量の増大}
CEDEC 2012
問題提起 ( 34 )
bull 解決策シーンを複数の小領域に分割
rArr 適切に小領域を設定すればシーンの複雑さを 抑える事が可能bull 小領域の分割方法はユーザーが決定
CEDEC 2012
問題提起 ( 44 )
bull 各小領域内の間接光は前述の方法で計算可能bull 小領域間の光の伝播を別途考慮する必要がある
小領域間の光の伝播の高速な計算方法を解説
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
キーアイディア ( 16 )
bull 小領域間の光の伝播を個別に計算
CEDEC 2012
キーアイディア ( 26 )
bull 例として右rArr(中央)rArr左へ伝播する光を考える
キーアイディアでは多重反射を考慮しない光の伝播を考える
CEDEC 2012
キーアイディア ( 36 )
bull 小領域間の光の伝播は頂点間の影響に帰着
CEDEC 2012
キーアイディア ( 46 )
bull 小領域間の光の伝播行列 P を前計算119820 伝播先の小領域の頂点数119821 伝播元の小領域の頂点数
光の伝播行列P
119820行119821列[iquest ]P
CEDEC 2012
キーアイディア ( 56 )
bull 光の伝播行列 P を利用して光の伝播を高速に計算
[ 119956120783⋮119956119925]
119852 伝播元の小領域の頂点の色119941 伝播先の小領域の頂点の色
119820行119821列[iquest ][ 119941120783
⋮119941119924
] timesiquest P119820 伝播先の小領域の頂点数119821 伝播元の小領域の頂点数
CEDEC 2012
キーアイディア ( 66 )
bull 光の伝播を係数からの変換に修正
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
bull ライトフィールドという概念を導入
光の伝播行列の計算 ( 17 )
ライトフィールドは任意の点群を通過する
光を体系的に記録するためのデータ構造
境界面に注目
CEDEC 2012
光の伝播行列の計算 ( 27 )
bull 光の伝播行列 P を三要素に分割1 光の出射行列 Pout2 光の通過行列 Pthrough3 光の入射行列 Pin
右の小領域 中央の小領域 左の小領域P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 37 )
bull 光の出射行列 Poutndash 小領域 rArr ライトフィールド
119819120783 出射ライトフィールドのサンプル数119821 伝播元の小領域の頂点数
iquest119819120783行iquest
⋮⋮
⋮4 5 9
6
8
CEDEC 2012
光の伝播行列の計算 ( 47 )
bull 光の通過行列 Pthroughndash ライトフィールド rArr ライトフィールド
119819120784 出射ライトフィールドのサンプル数119819120783入射ライトフィールドのサンプル数
iquest119819120784行iquest
⋮⋮
⋮5 8
2
5 ⋯
CEDEC 2012
光の伝播行列の計算 ( 57 )
bull 光の入射行列 Pinndash ライトフィールド rArr 小領域
119820伝播先の小領域の頂点数119819120784 入射ライトフィールドのサンプル数
iquest119820行iquest
⋮
2 5 6
1
5⋮
Pin 計算時にヘミキューブ法などを用いて立体角を考慮
CEDEC 2012
光の伝播行列の計算 ( 67 )
bull 全ての小領域間の光の伝播は三種類の行列の組み合わせで計算可能
P = Pin times Pout上記例ではは再利用不可能だがは共通
P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 77 )
bull 光の伝播の計算のまとめ
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
多重反射への拡張
bull 間接光計算を反復実行
⋮
間接光計算
間接光計算
間接光計算
直接光
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
モジュールの導入 ( 13 )
bull モジュール( = 再利用可能な汎用小領域)の導入
bull 上記のようなシーンは「回転」も考慮すれば5種の立方体モジュールの組合わせで構成可能
3 方向壁 2 方向壁 2 方向壁 1 方向壁 0 方向壁
CEDEC 2012
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
モジュールの導入 ( 23 )
通過行列は(直進 右折 左折)の三種類
ライトフィールドデータを一つの行列に格納
特異値分解
データ量の削減及び計算の高速化
詳しくは論文 51 節参照
CEDEC 2012
モジュールの導入 ( 33 )
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
メリットは多いがシーンの自由度とのトレードオフ
モジュールの使い所は要検討
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
デモ
CEDEC 2012
考察
bull ライトフィールドは本当に必要か
bull 小領域間の位置関係が固定ならば(恐らく)不要
rArr レイトレーシング法で伝播行列 P を直接計算 した方が効率的bull 小領域を動的に入れ替える場合は必要
P = Pin times Pthrough times Pout
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ 3 まとめ
CEDEC 2012
発表内容のまとめ
bull Modular Radiance Transfer 法を解説ndash 長所
bull とにかく高速bull 多重反射を含んだ間接光が扱えるbull 技術のコア部分は汎用的で応用の余地が高い
ndash 短所bull 前計算を含め使い方に癖がある ( 実験を通してノウハウを蓄積すれば余り問題にならない )
ゲームへの応用は十分可能
CEDEC 2012
本スライド内で引用した論文の図の著作権は全て論文著者に帰属します
その他の図スライド本体挿絵等の著作権は
シリコンスタジオ株式会社に帰属します
著作権について
CEDEC 2012
最後に
御清聴ありがとうございました
httpwwwsiliconstudiocojppresentationsindexhtml
スライドデモは弊社 HP で近日公開
制作協力 河野 駿介 辻 俊晶 古家 亙 後藤 晋也 京田 文人 三谷 健一郎
問い合わせ先 田村 nk-tamurasiliconstudiocojp 安田 re-yasudasiliconstudiocojp
シリコンスタジオは常に人材を求めています
ご興味ある方は弊社 HP をご覧ください
CEDEC 2012
Appendix A 実装について
bull 実装自体は様々なアプローチが可能bull ここではデモの実装でのアプローチを紹介
CEDEC 2012
Appendix A 前計算について
bull F の計算ndash メッシュの全頂点からキューブマップにレンダリングndash ピクセルには頂点 ID とウェイトを出力
bull 直接光サンプルの計算ndash 頂点カラーを Stream Out でバッファに出力ndash 頂点シャドウあり
bull Light Probe の計算ndash 各 Probe の中心からキューブマップにレンダリングndash の対応する基底ベクトル同士を足し合わせた
ベクトル ( 直接光 + 間接光 ) を頂点カラーとして使用
CEDEC 2012
Appendix A ランタイム
bull 直接光の結果を Stream Out でバッファに出力ndash 頂点シャドウありndash カラーバッファへの書き込み OFFndash 複数オブジェクトの場合は単一バッファにオフ
セットを変えて出力
119897119889
CEDEC 2012
Appendix A ランタイム 係数
bull Compute Shader で を計算ndash は極めて横長の行列 ( 行 ~100程度 列 頂点数 )ndash は GPU が少々苦手な処理ではあるものの
タイリングベースの実装で高速に処理可能
iquest
119897119889119960 lowast119861119889minus1
CEDEC 2012
Appendix A ランタイム
bull Compute Shader で を計算ndash は極めて縦長 ( の転置と同サイズ ) なので素直に実装可能
iquest
119861119894119899119889 119960119897119894119899 119889 lowast
CEDEC 2012
Appendix A ランタイム 最終パス
bull を頂点カラーとして入力としてピクセル単位の直接光のシェーディングと合成して最終結果を得る
iquest +
CEDEC 2012
Appendix A ランタイム Light Probe(1)
bull Compute Shader でを計算ndash は縦長 ( 行 頂点数 timesSH係数の数 列 ~100程度 )
iquest
119880119907119900119897 119960119897119907119900119897 lowast
CEDEC 2012
Appendix A ランタイム Light Probe(2)
bull Probe を用いて Dynamic Objects をライティングndash 各 Light Probe が SH を 9係数で保持するため
3D Texture ではなく Structured-Buffer で保持ndash Vertex Shader 内で自力 Tri-Linear 補間
iquest +
CEDEC 2012
Appendix B 後半の補足
bull 大規模なシーンでの光の伝播bull 小領域間の光の伝播は個別に総当たりで計算
rArr小領域間の光の伝播は距離によって大きく減衰
実際は大規模シーンでも概ね二つ隣の小領域まで考慮すれば十分
CEDEC 2012
Appendix B 後半の補足
bull 小領域の境界
bull 小領域の境界部分が不連続になる rArr 小領域の境界部分は補間の必要がある
CEDEC 2012
bull スライドと論文で表記が違う記号があります
Appendix C 記号の表記
スライドでの表記 論文での表記
b
- Slide 1
- 発表の流れ
- 発表の流れ (2)
- 発表の概要
- 解説技術の特徴
- 注意点
- 発表の流れ (3)
- 発表の流れ (4)
- 間接光の概要
- 間接光の概要 (2)
- 解説手法の計算概要
- 間接光計算の解説手順
- 間接光計算の解説手順 (2)
- 間接光計算の解説手順 (3)
- 間接光計算の解説手順 (4)
- 間接光計算の解説手順 (5)
- 間接光計算の解説手順 (6)
- 間接光計算の考え方
- 間接光計算の考え方 (2)
- 間接光計算の考え方 (3)
- 間接光計算の考え方 (4)
- 間接光計算の考え方 (5)
- 間接光計算の解説手順 (7)
- 問題提起
- 間接光計算の解説手順 (8)
- キーアイディア
- キーアイディア (2)
- キーアイディア (3)
- キーアイディア (4)
- キーアイディア (5)
- キーアイディア (6)
- 間接光計算の解説手順 (9)
- 間接光計算の解説手順 (10)
- を求める
- を求める (2)
- を求める (3)
- 最適な基底
- サンプリングベースの基底
- サンプルの選び方について
- サンプリング行列
- サンプリング行列 (2)
- サンプリング行列 (3)
- サンプリング行列 (4)
- サンプリング行列 (5)
- サンプリング行列 (6)
- サンプリング行列 (7)
- 特異値分解(Singular Value Decomposition)
- 特異値分解(Singular Value Decomposition) (2)
- 特異値分解(Singular Value Decomposition) (3)
- 特異値分解(Singular Value Decomposition) (4)
- 特異値分解(Singular Value Decomposition) (5)
- 基底による直接光の近似
- アプローチの比較
- ハイブリッド手法の計算手順
- 係数の数の比較
- ランタイムの計算処理
- 係数の計算方法
- ランタイムの計算処理 (2)
- 間接光計算の解説手順 (11)
- ショートデモ
- 間接光計算の解説手順 (12)
- 間接光計算の解説手順 (13)
- Light Probe
- Light Probe (2)
- Light Probeによるライティング
- Light Probeによるライティング (2)
- 間接光計算の解説手順 (14)
- Light Probeの計算
- 動的なLight Probe
- 動的なLight Probe (2)
- 間接光計算の解説手順 (15)
- デモ
- デモ詳細
- パフォーマンス
- まとめ
- 発表の流れ (5)
- シーン分割による高速化の解説手順
- シーン分割による高速化の解説手順 (2)
- 問題提起 (14)
- 問題提起 (24)
- 問題提起 (34)
- 問題提起 (44)
- シーン分割による高速化の解説手順 (3)
- シーン分割による高速化の解説手順 (4)
- キーアイディア (16)
- キーアイディア (26)
- キーアイディア (36)
- キーアイディア (46)
- キーアイディア (56)
- キーアイディア (66)
- シーン分割による高速化の解説手順 (5)
- 光の伝播行列の計算 (17)
- 光の伝播行列の計算 (27)
- 光の伝播行列の計算 (37)
- 光の伝播行列の計算 (47)
- 光の伝播行列の計算 (57)
- 光の伝播行列の計算 (67)
- 光の伝播行列の計算 (77)
- シーン分割による高速化の解説手順 (6)
- シーン分割による高速化の解説手順 (7)
- 多重反射への拡張
- シーン分割による高速化の解説手順 (8)
- モジュールの導入 (13)
- モジュールの導入 (23)
- モジュールの導入 (33)
- シーン分割による高速化の解説手順 (9)
- デモ (2)
- 考察
- 発表の流れ (6)
- 発表内容のまとめ
- 著作権について
- 最後に
- Appendix A 実装について
- Appendix A 前計算について
- Appendix A ランタイム
- Appendix A ランタイム 係数
- Appendix A ランタイム
- Appendix A ランタイム 最終パス
- Appendix A ランタイム Light Probe(1)
- Appendix A ランタイム Light Probe(2)
- Appendix B 後半の補足
- Appendix B 後半の補足 (2)
- Appendix C 記号の表記
-
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
問題提起 ( 14 )
bull 対象とする問題 シーンが複雑になった場合の計算負荷の増大
シンプルなシーン
より複雑なシーン
CEDEC 2012
問題提起 ( 24 )
bull 複雑なシーンでは1 メッシュ頂点数が増加2 必要な係数の数の増大 rArr 計算量の増大}
CEDEC 2012
問題提起 ( 34 )
bull 解決策シーンを複数の小領域に分割
rArr 適切に小領域を設定すればシーンの複雑さを 抑える事が可能bull 小領域の分割方法はユーザーが決定
CEDEC 2012
問題提起 ( 44 )
bull 各小領域内の間接光は前述の方法で計算可能bull 小領域間の光の伝播を別途考慮する必要がある
小領域間の光の伝播の高速な計算方法を解説
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
キーアイディア ( 16 )
bull 小領域間の光の伝播を個別に計算
CEDEC 2012
キーアイディア ( 26 )
bull 例として右rArr(中央)rArr左へ伝播する光を考える
キーアイディアでは多重反射を考慮しない光の伝播を考える
CEDEC 2012
キーアイディア ( 36 )
bull 小領域間の光の伝播は頂点間の影響に帰着
CEDEC 2012
キーアイディア ( 46 )
bull 小領域間の光の伝播行列 P を前計算119820 伝播先の小領域の頂点数119821 伝播元の小領域の頂点数
光の伝播行列P
119820行119821列[iquest ]P
CEDEC 2012
キーアイディア ( 56 )
bull 光の伝播行列 P を利用して光の伝播を高速に計算
[ 119956120783⋮119956119925]
119852 伝播元の小領域の頂点の色119941 伝播先の小領域の頂点の色
119820行119821列[iquest ][ 119941120783
⋮119941119924
] timesiquest P119820 伝播先の小領域の頂点数119821 伝播元の小領域の頂点数
CEDEC 2012
キーアイディア ( 66 )
bull 光の伝播を係数からの変換に修正
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
bull ライトフィールドという概念を導入
光の伝播行列の計算 ( 17 )
ライトフィールドは任意の点群を通過する
光を体系的に記録するためのデータ構造
境界面に注目
CEDEC 2012
光の伝播行列の計算 ( 27 )
bull 光の伝播行列 P を三要素に分割1 光の出射行列 Pout2 光の通過行列 Pthrough3 光の入射行列 Pin
右の小領域 中央の小領域 左の小領域P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 37 )
bull 光の出射行列 Poutndash 小領域 rArr ライトフィールド
119819120783 出射ライトフィールドのサンプル数119821 伝播元の小領域の頂点数
iquest119819120783行iquest
⋮⋮
⋮4 5 9
6
8
CEDEC 2012
光の伝播行列の計算 ( 47 )
bull 光の通過行列 Pthroughndash ライトフィールド rArr ライトフィールド
119819120784 出射ライトフィールドのサンプル数119819120783入射ライトフィールドのサンプル数
iquest119819120784行iquest
⋮⋮
⋮5 8
2
5 ⋯
CEDEC 2012
光の伝播行列の計算 ( 57 )
bull 光の入射行列 Pinndash ライトフィールド rArr 小領域
119820伝播先の小領域の頂点数119819120784 入射ライトフィールドのサンプル数
iquest119820行iquest
⋮
2 5 6
1
5⋮
Pin 計算時にヘミキューブ法などを用いて立体角を考慮
CEDEC 2012
光の伝播行列の計算 ( 67 )
bull 全ての小領域間の光の伝播は三種類の行列の組み合わせで計算可能
P = Pin times Pout上記例ではは再利用不可能だがは共通
P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 77 )
bull 光の伝播の計算のまとめ
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
多重反射への拡張
bull 間接光計算を反復実行
⋮
間接光計算
間接光計算
間接光計算
直接光
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
モジュールの導入 ( 13 )
bull モジュール( = 再利用可能な汎用小領域)の導入
bull 上記のようなシーンは「回転」も考慮すれば5種の立方体モジュールの組合わせで構成可能
3 方向壁 2 方向壁 2 方向壁 1 方向壁 0 方向壁
CEDEC 2012
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
モジュールの導入 ( 23 )
通過行列は(直進 右折 左折)の三種類
ライトフィールドデータを一つの行列に格納
特異値分解
データ量の削減及び計算の高速化
詳しくは論文 51 節参照
CEDEC 2012
モジュールの導入 ( 33 )
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
メリットは多いがシーンの自由度とのトレードオフ
モジュールの使い所は要検討
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
デモ
CEDEC 2012
考察
bull ライトフィールドは本当に必要か
bull 小領域間の位置関係が固定ならば(恐らく)不要
rArr レイトレーシング法で伝播行列 P を直接計算 した方が効率的bull 小領域を動的に入れ替える場合は必要
P = Pin times Pthrough times Pout
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ 3 まとめ
CEDEC 2012
発表内容のまとめ
bull Modular Radiance Transfer 法を解説ndash 長所
bull とにかく高速bull 多重反射を含んだ間接光が扱えるbull 技術のコア部分は汎用的で応用の余地が高い
ndash 短所bull 前計算を含め使い方に癖がある ( 実験を通してノウハウを蓄積すれば余り問題にならない )
ゲームへの応用は十分可能
CEDEC 2012
本スライド内で引用した論文の図の著作権は全て論文著者に帰属します
その他の図スライド本体挿絵等の著作権は
シリコンスタジオ株式会社に帰属します
著作権について
CEDEC 2012
最後に
御清聴ありがとうございました
httpwwwsiliconstudiocojppresentationsindexhtml
スライドデモは弊社 HP で近日公開
制作協力 河野 駿介 辻 俊晶 古家 亙 後藤 晋也 京田 文人 三谷 健一郎
問い合わせ先 田村 nk-tamurasiliconstudiocojp 安田 re-yasudasiliconstudiocojp
シリコンスタジオは常に人材を求めています
ご興味ある方は弊社 HP をご覧ください
CEDEC 2012
Appendix A 実装について
bull 実装自体は様々なアプローチが可能bull ここではデモの実装でのアプローチを紹介
CEDEC 2012
Appendix A 前計算について
bull F の計算ndash メッシュの全頂点からキューブマップにレンダリングndash ピクセルには頂点 ID とウェイトを出力
bull 直接光サンプルの計算ndash 頂点カラーを Stream Out でバッファに出力ndash 頂点シャドウあり
bull Light Probe の計算ndash 各 Probe の中心からキューブマップにレンダリングndash の対応する基底ベクトル同士を足し合わせた
ベクトル ( 直接光 + 間接光 ) を頂点カラーとして使用
CEDEC 2012
Appendix A ランタイム
bull 直接光の結果を Stream Out でバッファに出力ndash 頂点シャドウありndash カラーバッファへの書き込み OFFndash 複数オブジェクトの場合は単一バッファにオフ
セットを変えて出力
119897119889
CEDEC 2012
Appendix A ランタイム 係数
bull Compute Shader で を計算ndash は極めて横長の行列 ( 行 ~100程度 列 頂点数 )ndash は GPU が少々苦手な処理ではあるものの
タイリングベースの実装で高速に処理可能
iquest
119897119889119960 lowast119861119889minus1
CEDEC 2012
Appendix A ランタイム
bull Compute Shader で を計算ndash は極めて縦長 ( の転置と同サイズ ) なので素直に実装可能
iquest
119861119894119899119889 119960119897119894119899 119889 lowast
CEDEC 2012
Appendix A ランタイム 最終パス
bull を頂点カラーとして入力としてピクセル単位の直接光のシェーディングと合成して最終結果を得る
iquest +
CEDEC 2012
Appendix A ランタイム Light Probe(1)
bull Compute Shader でを計算ndash は縦長 ( 行 頂点数 timesSH係数の数 列 ~100程度 )
iquest
119880119907119900119897 119960119897119907119900119897 lowast
CEDEC 2012
Appendix A ランタイム Light Probe(2)
bull Probe を用いて Dynamic Objects をライティングndash 各 Light Probe が SH を 9係数で保持するため
3D Texture ではなく Structured-Buffer で保持ndash Vertex Shader 内で自力 Tri-Linear 補間
iquest +
CEDEC 2012
Appendix B 後半の補足
bull 大規模なシーンでの光の伝播bull 小領域間の光の伝播は個別に総当たりで計算
rArr小領域間の光の伝播は距離によって大きく減衰
実際は大規模シーンでも概ね二つ隣の小領域まで考慮すれば十分
CEDEC 2012
Appendix B 後半の補足
bull 小領域の境界
bull 小領域の境界部分が不連続になる rArr 小領域の境界部分は補間の必要がある
CEDEC 2012
bull スライドと論文で表記が違う記号があります
Appendix C 記号の表記
スライドでの表記 論文での表記
b
- Slide 1
- 発表の流れ
- 発表の流れ (2)
- 発表の概要
- 解説技術の特徴
- 注意点
- 発表の流れ (3)
- 発表の流れ (4)
- 間接光の概要
- 間接光の概要 (2)
- 解説手法の計算概要
- 間接光計算の解説手順
- 間接光計算の解説手順 (2)
- 間接光計算の解説手順 (3)
- 間接光計算の解説手順 (4)
- 間接光計算の解説手順 (5)
- 間接光計算の解説手順 (6)
- 間接光計算の考え方
- 間接光計算の考え方 (2)
- 間接光計算の考え方 (3)
- 間接光計算の考え方 (4)
- 間接光計算の考え方 (5)
- 間接光計算の解説手順 (7)
- 問題提起
- 間接光計算の解説手順 (8)
- キーアイディア
- キーアイディア (2)
- キーアイディア (3)
- キーアイディア (4)
- キーアイディア (5)
- キーアイディア (6)
- 間接光計算の解説手順 (9)
- 間接光計算の解説手順 (10)
- を求める
- を求める (2)
- を求める (3)
- 最適な基底
- サンプリングベースの基底
- サンプルの選び方について
- サンプリング行列
- サンプリング行列 (2)
- サンプリング行列 (3)
- サンプリング行列 (4)
- サンプリング行列 (5)
- サンプリング行列 (6)
- サンプリング行列 (7)
- 特異値分解(Singular Value Decomposition)
- 特異値分解(Singular Value Decomposition) (2)
- 特異値分解(Singular Value Decomposition) (3)
- 特異値分解(Singular Value Decomposition) (4)
- 特異値分解(Singular Value Decomposition) (5)
- 基底による直接光の近似
- アプローチの比較
- ハイブリッド手法の計算手順
- 係数の数の比較
- ランタイムの計算処理
- 係数の計算方法
- ランタイムの計算処理 (2)
- 間接光計算の解説手順 (11)
- ショートデモ
- 間接光計算の解説手順 (12)
- 間接光計算の解説手順 (13)
- Light Probe
- Light Probe (2)
- Light Probeによるライティング
- Light Probeによるライティング (2)
- 間接光計算の解説手順 (14)
- Light Probeの計算
- 動的なLight Probe
- 動的なLight Probe (2)
- 間接光計算の解説手順 (15)
- デモ
- デモ詳細
- パフォーマンス
- まとめ
- 発表の流れ (5)
- シーン分割による高速化の解説手順
- シーン分割による高速化の解説手順 (2)
- 問題提起 (14)
- 問題提起 (24)
- 問題提起 (34)
- 問題提起 (44)
- シーン分割による高速化の解説手順 (3)
- シーン分割による高速化の解説手順 (4)
- キーアイディア (16)
- キーアイディア (26)
- キーアイディア (36)
- キーアイディア (46)
- キーアイディア (56)
- キーアイディア (66)
- シーン分割による高速化の解説手順 (5)
- 光の伝播行列の計算 (17)
- 光の伝播行列の計算 (27)
- 光の伝播行列の計算 (37)
- 光の伝播行列の計算 (47)
- 光の伝播行列の計算 (57)
- 光の伝播行列の計算 (67)
- 光の伝播行列の計算 (77)
- シーン分割による高速化の解説手順 (6)
- シーン分割による高速化の解説手順 (7)
- 多重反射への拡張
- シーン分割による高速化の解説手順 (8)
- モジュールの導入 (13)
- モジュールの導入 (23)
- モジュールの導入 (33)
- シーン分割による高速化の解説手順 (9)
- デモ (2)
- 考察
- 発表の流れ (6)
- 発表内容のまとめ
- 著作権について
- 最後に
- Appendix A 実装について
- Appendix A 前計算について
- Appendix A ランタイム
- Appendix A ランタイム 係数
- Appendix A ランタイム
- Appendix A ランタイム 最終パス
- Appendix A ランタイム Light Probe(1)
- Appendix A ランタイム Light Probe(2)
- Appendix B 後半の補足
- Appendix B 後半の補足 (2)
- Appendix C 記号の表記
-
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
問題提起 ( 14 )
bull 対象とする問題 シーンが複雑になった場合の計算負荷の増大
シンプルなシーン
より複雑なシーン
CEDEC 2012
問題提起 ( 24 )
bull 複雑なシーンでは1 メッシュ頂点数が増加2 必要な係数の数の増大 rArr 計算量の増大}
CEDEC 2012
問題提起 ( 34 )
bull 解決策シーンを複数の小領域に分割
rArr 適切に小領域を設定すればシーンの複雑さを 抑える事が可能bull 小領域の分割方法はユーザーが決定
CEDEC 2012
問題提起 ( 44 )
bull 各小領域内の間接光は前述の方法で計算可能bull 小領域間の光の伝播を別途考慮する必要がある
小領域間の光の伝播の高速な計算方法を解説
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
キーアイディア ( 16 )
bull 小領域間の光の伝播を個別に計算
CEDEC 2012
キーアイディア ( 26 )
bull 例として右rArr(中央)rArr左へ伝播する光を考える
キーアイディアでは多重反射を考慮しない光の伝播を考える
CEDEC 2012
キーアイディア ( 36 )
bull 小領域間の光の伝播は頂点間の影響に帰着
CEDEC 2012
キーアイディア ( 46 )
bull 小領域間の光の伝播行列 P を前計算119820 伝播先の小領域の頂点数119821 伝播元の小領域の頂点数
光の伝播行列P
119820行119821列[iquest ]P
CEDEC 2012
キーアイディア ( 56 )
bull 光の伝播行列 P を利用して光の伝播を高速に計算
[ 119956120783⋮119956119925]
119852 伝播元の小領域の頂点の色119941 伝播先の小領域の頂点の色
119820行119821列[iquest ][ 119941120783
⋮119941119924
] timesiquest P119820 伝播先の小領域の頂点数119821 伝播元の小領域の頂点数
CEDEC 2012
キーアイディア ( 66 )
bull 光の伝播を係数からの変換に修正
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
bull ライトフィールドという概念を導入
光の伝播行列の計算 ( 17 )
ライトフィールドは任意の点群を通過する
光を体系的に記録するためのデータ構造
境界面に注目
CEDEC 2012
光の伝播行列の計算 ( 27 )
bull 光の伝播行列 P を三要素に分割1 光の出射行列 Pout2 光の通過行列 Pthrough3 光の入射行列 Pin
右の小領域 中央の小領域 左の小領域P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 37 )
bull 光の出射行列 Poutndash 小領域 rArr ライトフィールド
119819120783 出射ライトフィールドのサンプル数119821 伝播元の小領域の頂点数
iquest119819120783行iquest
⋮⋮
⋮4 5 9
6
8
CEDEC 2012
光の伝播行列の計算 ( 47 )
bull 光の通過行列 Pthroughndash ライトフィールド rArr ライトフィールド
119819120784 出射ライトフィールドのサンプル数119819120783入射ライトフィールドのサンプル数
iquest119819120784行iquest
⋮⋮
⋮5 8
2
5 ⋯
CEDEC 2012
光の伝播行列の計算 ( 57 )
bull 光の入射行列 Pinndash ライトフィールド rArr 小領域
119820伝播先の小領域の頂点数119819120784 入射ライトフィールドのサンプル数
iquest119820行iquest
⋮
2 5 6
1
5⋮
Pin 計算時にヘミキューブ法などを用いて立体角を考慮
CEDEC 2012
光の伝播行列の計算 ( 67 )
bull 全ての小領域間の光の伝播は三種類の行列の組み合わせで計算可能
P = Pin times Pout上記例ではは再利用不可能だがは共通
P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 77 )
bull 光の伝播の計算のまとめ
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
多重反射への拡張
bull 間接光計算を反復実行
⋮
間接光計算
間接光計算
間接光計算
直接光
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
モジュールの導入 ( 13 )
bull モジュール( = 再利用可能な汎用小領域)の導入
bull 上記のようなシーンは「回転」も考慮すれば5種の立方体モジュールの組合わせで構成可能
3 方向壁 2 方向壁 2 方向壁 1 方向壁 0 方向壁
CEDEC 2012
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
モジュールの導入 ( 23 )
通過行列は(直進 右折 左折)の三種類
ライトフィールドデータを一つの行列に格納
特異値分解
データ量の削減及び計算の高速化
詳しくは論文 51 節参照
CEDEC 2012
モジュールの導入 ( 33 )
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
メリットは多いがシーンの自由度とのトレードオフ
モジュールの使い所は要検討
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
デモ
CEDEC 2012
考察
bull ライトフィールドは本当に必要か
bull 小領域間の位置関係が固定ならば(恐らく)不要
rArr レイトレーシング法で伝播行列 P を直接計算 した方が効率的bull 小領域を動的に入れ替える場合は必要
P = Pin times Pthrough times Pout
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ 3 まとめ
CEDEC 2012
発表内容のまとめ
bull Modular Radiance Transfer 法を解説ndash 長所
bull とにかく高速bull 多重反射を含んだ間接光が扱えるbull 技術のコア部分は汎用的で応用の余地が高い
ndash 短所bull 前計算を含め使い方に癖がある ( 実験を通してノウハウを蓄積すれば余り問題にならない )
ゲームへの応用は十分可能
CEDEC 2012
本スライド内で引用した論文の図の著作権は全て論文著者に帰属します
その他の図スライド本体挿絵等の著作権は
シリコンスタジオ株式会社に帰属します
著作権について
CEDEC 2012
最後に
御清聴ありがとうございました
httpwwwsiliconstudiocojppresentationsindexhtml
スライドデモは弊社 HP で近日公開
制作協力 河野 駿介 辻 俊晶 古家 亙 後藤 晋也 京田 文人 三谷 健一郎
問い合わせ先 田村 nk-tamurasiliconstudiocojp 安田 re-yasudasiliconstudiocojp
シリコンスタジオは常に人材を求めています
ご興味ある方は弊社 HP をご覧ください
CEDEC 2012
Appendix A 実装について
bull 実装自体は様々なアプローチが可能bull ここではデモの実装でのアプローチを紹介
CEDEC 2012
Appendix A 前計算について
bull F の計算ndash メッシュの全頂点からキューブマップにレンダリングndash ピクセルには頂点 ID とウェイトを出力
bull 直接光サンプルの計算ndash 頂点カラーを Stream Out でバッファに出力ndash 頂点シャドウあり
bull Light Probe の計算ndash 各 Probe の中心からキューブマップにレンダリングndash の対応する基底ベクトル同士を足し合わせた
ベクトル ( 直接光 + 間接光 ) を頂点カラーとして使用
CEDEC 2012
Appendix A ランタイム
bull 直接光の結果を Stream Out でバッファに出力ndash 頂点シャドウありndash カラーバッファへの書き込み OFFndash 複数オブジェクトの場合は単一バッファにオフ
セットを変えて出力
119897119889
CEDEC 2012
Appendix A ランタイム 係数
bull Compute Shader で を計算ndash は極めて横長の行列 ( 行 ~100程度 列 頂点数 )ndash は GPU が少々苦手な処理ではあるものの
タイリングベースの実装で高速に処理可能
iquest
119897119889119960 lowast119861119889minus1
CEDEC 2012
Appendix A ランタイム
bull Compute Shader で を計算ndash は極めて縦長 ( の転置と同サイズ ) なので素直に実装可能
iquest
119861119894119899119889 119960119897119894119899 119889 lowast
CEDEC 2012
Appendix A ランタイム 最終パス
bull を頂点カラーとして入力としてピクセル単位の直接光のシェーディングと合成して最終結果を得る
iquest +
CEDEC 2012
Appendix A ランタイム Light Probe(1)
bull Compute Shader でを計算ndash は縦長 ( 行 頂点数 timesSH係数の数 列 ~100程度 )
iquest
119880119907119900119897 119960119897119907119900119897 lowast
CEDEC 2012
Appendix A ランタイム Light Probe(2)
bull Probe を用いて Dynamic Objects をライティングndash 各 Light Probe が SH を 9係数で保持するため
3D Texture ではなく Structured-Buffer で保持ndash Vertex Shader 内で自力 Tri-Linear 補間
iquest +
CEDEC 2012
Appendix B 後半の補足
bull 大規模なシーンでの光の伝播bull 小領域間の光の伝播は個別に総当たりで計算
rArr小領域間の光の伝播は距離によって大きく減衰
実際は大規模シーンでも概ね二つ隣の小領域まで考慮すれば十分
CEDEC 2012
Appendix B 後半の補足
bull 小領域の境界
bull 小領域の境界部分が不連続になる rArr 小領域の境界部分は補間の必要がある
CEDEC 2012
bull スライドと論文で表記が違う記号があります
Appendix C 記号の表記
スライドでの表記 論文での表記
b
- Slide 1
- 発表の流れ
- 発表の流れ (2)
- 発表の概要
- 解説技術の特徴
- 注意点
- 発表の流れ (3)
- 発表の流れ (4)
- 間接光の概要
- 間接光の概要 (2)
- 解説手法の計算概要
- 間接光計算の解説手順
- 間接光計算の解説手順 (2)
- 間接光計算の解説手順 (3)
- 間接光計算の解説手順 (4)
- 間接光計算の解説手順 (5)
- 間接光計算の解説手順 (6)
- 間接光計算の考え方
- 間接光計算の考え方 (2)
- 間接光計算の考え方 (3)
- 間接光計算の考え方 (4)
- 間接光計算の考え方 (5)
- 間接光計算の解説手順 (7)
- 問題提起
- 間接光計算の解説手順 (8)
- キーアイディア
- キーアイディア (2)
- キーアイディア (3)
- キーアイディア (4)
- キーアイディア (5)
- キーアイディア (6)
- 間接光計算の解説手順 (9)
- 間接光計算の解説手順 (10)
- を求める
- を求める (2)
- を求める (3)
- 最適な基底
- サンプリングベースの基底
- サンプルの選び方について
- サンプリング行列
- サンプリング行列 (2)
- サンプリング行列 (3)
- サンプリング行列 (4)
- サンプリング行列 (5)
- サンプリング行列 (6)
- サンプリング行列 (7)
- 特異値分解(Singular Value Decomposition)
- 特異値分解(Singular Value Decomposition) (2)
- 特異値分解(Singular Value Decomposition) (3)
- 特異値分解(Singular Value Decomposition) (4)
- 特異値分解(Singular Value Decomposition) (5)
- 基底による直接光の近似
- アプローチの比較
- ハイブリッド手法の計算手順
- 係数の数の比較
- ランタイムの計算処理
- 係数の計算方法
- ランタイムの計算処理 (2)
- 間接光計算の解説手順 (11)
- ショートデモ
- 間接光計算の解説手順 (12)
- 間接光計算の解説手順 (13)
- Light Probe
- Light Probe (2)
- Light Probeによるライティング
- Light Probeによるライティング (2)
- 間接光計算の解説手順 (14)
- Light Probeの計算
- 動的なLight Probe
- 動的なLight Probe (2)
- 間接光計算の解説手順 (15)
- デモ
- デモ詳細
- パフォーマンス
- まとめ
- 発表の流れ (5)
- シーン分割による高速化の解説手順
- シーン分割による高速化の解説手順 (2)
- 問題提起 (14)
- 問題提起 (24)
- 問題提起 (34)
- 問題提起 (44)
- シーン分割による高速化の解説手順 (3)
- シーン分割による高速化の解説手順 (4)
- キーアイディア (16)
- キーアイディア (26)
- キーアイディア (36)
- キーアイディア (46)
- キーアイディア (56)
- キーアイディア (66)
- シーン分割による高速化の解説手順 (5)
- 光の伝播行列の計算 (17)
- 光の伝播行列の計算 (27)
- 光の伝播行列の計算 (37)
- 光の伝播行列の計算 (47)
- 光の伝播行列の計算 (57)
- 光の伝播行列の計算 (67)
- 光の伝播行列の計算 (77)
- シーン分割による高速化の解説手順 (6)
- シーン分割による高速化の解説手順 (7)
- 多重反射への拡張
- シーン分割による高速化の解説手順 (8)
- モジュールの導入 (13)
- モジュールの導入 (23)
- モジュールの導入 (33)
- シーン分割による高速化の解説手順 (9)
- デモ (2)
- 考察
- 発表の流れ (6)
- 発表内容のまとめ
- 著作権について
- 最後に
- Appendix A 実装について
- Appendix A 前計算について
- Appendix A ランタイム
- Appendix A ランタイム 係数
- Appendix A ランタイム
- Appendix A ランタイム 最終パス
- Appendix A ランタイム Light Probe(1)
- Appendix A ランタイム Light Probe(2)
- Appendix B 後半の補足
- Appendix B 後半の補足 (2)
- Appendix C 記号の表記
-
CEDEC 2012
問題提起 ( 14 )
bull 対象とする問題 シーンが複雑になった場合の計算負荷の増大
シンプルなシーン
より複雑なシーン
CEDEC 2012
問題提起 ( 24 )
bull 複雑なシーンでは1 メッシュ頂点数が増加2 必要な係数の数の増大 rArr 計算量の増大}
CEDEC 2012
問題提起 ( 34 )
bull 解決策シーンを複数の小領域に分割
rArr 適切に小領域を設定すればシーンの複雑さを 抑える事が可能bull 小領域の分割方法はユーザーが決定
CEDEC 2012
問題提起 ( 44 )
bull 各小領域内の間接光は前述の方法で計算可能bull 小領域間の光の伝播を別途考慮する必要がある
小領域間の光の伝播の高速な計算方法を解説
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
キーアイディア ( 16 )
bull 小領域間の光の伝播を個別に計算
CEDEC 2012
キーアイディア ( 26 )
bull 例として右rArr(中央)rArr左へ伝播する光を考える
キーアイディアでは多重反射を考慮しない光の伝播を考える
CEDEC 2012
キーアイディア ( 36 )
bull 小領域間の光の伝播は頂点間の影響に帰着
CEDEC 2012
キーアイディア ( 46 )
bull 小領域間の光の伝播行列 P を前計算119820 伝播先の小領域の頂点数119821 伝播元の小領域の頂点数
光の伝播行列P
119820行119821列[iquest ]P
CEDEC 2012
キーアイディア ( 56 )
bull 光の伝播行列 P を利用して光の伝播を高速に計算
[ 119956120783⋮119956119925]
119852 伝播元の小領域の頂点の色119941 伝播先の小領域の頂点の色
119820行119821列[iquest ][ 119941120783
⋮119941119924
] timesiquest P119820 伝播先の小領域の頂点数119821 伝播元の小領域の頂点数
CEDEC 2012
キーアイディア ( 66 )
bull 光の伝播を係数からの変換に修正
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
bull ライトフィールドという概念を導入
光の伝播行列の計算 ( 17 )
ライトフィールドは任意の点群を通過する
光を体系的に記録するためのデータ構造
境界面に注目
CEDEC 2012
光の伝播行列の計算 ( 27 )
bull 光の伝播行列 P を三要素に分割1 光の出射行列 Pout2 光の通過行列 Pthrough3 光の入射行列 Pin
右の小領域 中央の小領域 左の小領域P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 37 )
bull 光の出射行列 Poutndash 小領域 rArr ライトフィールド
119819120783 出射ライトフィールドのサンプル数119821 伝播元の小領域の頂点数
iquest119819120783行iquest
⋮⋮
⋮4 5 9
6
8
CEDEC 2012
光の伝播行列の計算 ( 47 )
bull 光の通過行列 Pthroughndash ライトフィールド rArr ライトフィールド
119819120784 出射ライトフィールドのサンプル数119819120783入射ライトフィールドのサンプル数
iquest119819120784行iquest
⋮⋮
⋮5 8
2
5 ⋯
CEDEC 2012
光の伝播行列の計算 ( 57 )
bull 光の入射行列 Pinndash ライトフィールド rArr 小領域
119820伝播先の小領域の頂点数119819120784 入射ライトフィールドのサンプル数
iquest119820行iquest
⋮
2 5 6
1
5⋮
Pin 計算時にヘミキューブ法などを用いて立体角を考慮
CEDEC 2012
光の伝播行列の計算 ( 67 )
bull 全ての小領域間の光の伝播は三種類の行列の組み合わせで計算可能
P = Pin times Pout上記例ではは再利用不可能だがは共通
P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 77 )
bull 光の伝播の計算のまとめ
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
多重反射への拡張
bull 間接光計算を反復実行
⋮
間接光計算
間接光計算
間接光計算
直接光
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
モジュールの導入 ( 13 )
bull モジュール( = 再利用可能な汎用小領域)の導入
bull 上記のようなシーンは「回転」も考慮すれば5種の立方体モジュールの組合わせで構成可能
3 方向壁 2 方向壁 2 方向壁 1 方向壁 0 方向壁
CEDEC 2012
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
モジュールの導入 ( 23 )
通過行列は(直進 右折 左折)の三種類
ライトフィールドデータを一つの行列に格納
特異値分解
データ量の削減及び計算の高速化
詳しくは論文 51 節参照
CEDEC 2012
モジュールの導入 ( 33 )
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
メリットは多いがシーンの自由度とのトレードオフ
モジュールの使い所は要検討
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
デモ
CEDEC 2012
考察
bull ライトフィールドは本当に必要か
bull 小領域間の位置関係が固定ならば(恐らく)不要
rArr レイトレーシング法で伝播行列 P を直接計算 した方が効率的bull 小領域を動的に入れ替える場合は必要
P = Pin times Pthrough times Pout
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ 3 まとめ
CEDEC 2012
発表内容のまとめ
bull Modular Radiance Transfer 法を解説ndash 長所
bull とにかく高速bull 多重反射を含んだ間接光が扱えるbull 技術のコア部分は汎用的で応用の余地が高い
ndash 短所bull 前計算を含め使い方に癖がある ( 実験を通してノウハウを蓄積すれば余り問題にならない )
ゲームへの応用は十分可能
CEDEC 2012
本スライド内で引用した論文の図の著作権は全て論文著者に帰属します
その他の図スライド本体挿絵等の著作権は
シリコンスタジオ株式会社に帰属します
著作権について
CEDEC 2012
最後に
御清聴ありがとうございました
httpwwwsiliconstudiocojppresentationsindexhtml
スライドデモは弊社 HP で近日公開
制作協力 河野 駿介 辻 俊晶 古家 亙 後藤 晋也 京田 文人 三谷 健一郎
問い合わせ先 田村 nk-tamurasiliconstudiocojp 安田 re-yasudasiliconstudiocojp
シリコンスタジオは常に人材を求めています
ご興味ある方は弊社 HP をご覧ください
CEDEC 2012
Appendix A 実装について
bull 実装自体は様々なアプローチが可能bull ここではデモの実装でのアプローチを紹介
CEDEC 2012
Appendix A 前計算について
bull F の計算ndash メッシュの全頂点からキューブマップにレンダリングndash ピクセルには頂点 ID とウェイトを出力
bull 直接光サンプルの計算ndash 頂点カラーを Stream Out でバッファに出力ndash 頂点シャドウあり
bull Light Probe の計算ndash 各 Probe の中心からキューブマップにレンダリングndash の対応する基底ベクトル同士を足し合わせた
ベクトル ( 直接光 + 間接光 ) を頂点カラーとして使用
CEDEC 2012
Appendix A ランタイム
bull 直接光の結果を Stream Out でバッファに出力ndash 頂点シャドウありndash カラーバッファへの書き込み OFFndash 複数オブジェクトの場合は単一バッファにオフ
セットを変えて出力
119897119889
CEDEC 2012
Appendix A ランタイム 係数
bull Compute Shader で を計算ndash は極めて横長の行列 ( 行 ~100程度 列 頂点数 )ndash は GPU が少々苦手な処理ではあるものの
タイリングベースの実装で高速に処理可能
iquest
119897119889119960 lowast119861119889minus1
CEDEC 2012
Appendix A ランタイム
bull Compute Shader で を計算ndash は極めて縦長 ( の転置と同サイズ ) なので素直に実装可能
iquest
119861119894119899119889 119960119897119894119899 119889 lowast
CEDEC 2012
Appendix A ランタイム 最終パス
bull を頂点カラーとして入力としてピクセル単位の直接光のシェーディングと合成して最終結果を得る
iquest +
CEDEC 2012
Appendix A ランタイム Light Probe(1)
bull Compute Shader でを計算ndash は縦長 ( 行 頂点数 timesSH係数の数 列 ~100程度 )
iquest
119880119907119900119897 119960119897119907119900119897 lowast
CEDEC 2012
Appendix A ランタイム Light Probe(2)
bull Probe を用いて Dynamic Objects をライティングndash 各 Light Probe が SH を 9係数で保持するため
3D Texture ではなく Structured-Buffer で保持ndash Vertex Shader 内で自力 Tri-Linear 補間
iquest +
CEDEC 2012
Appendix B 後半の補足
bull 大規模なシーンでの光の伝播bull 小領域間の光の伝播は個別に総当たりで計算
rArr小領域間の光の伝播は距離によって大きく減衰
実際は大規模シーンでも概ね二つ隣の小領域まで考慮すれば十分
CEDEC 2012
Appendix B 後半の補足
bull 小領域の境界
bull 小領域の境界部分が不連続になる rArr 小領域の境界部分は補間の必要がある
CEDEC 2012
bull スライドと論文で表記が違う記号があります
Appendix C 記号の表記
スライドでの表記 論文での表記
b
- Slide 1
- 発表の流れ
- 発表の流れ (2)
- 発表の概要
- 解説技術の特徴
- 注意点
- 発表の流れ (3)
- 発表の流れ (4)
- 間接光の概要
- 間接光の概要 (2)
- 解説手法の計算概要
- 間接光計算の解説手順
- 間接光計算の解説手順 (2)
- 間接光計算の解説手順 (3)
- 間接光計算の解説手順 (4)
- 間接光計算の解説手順 (5)
- 間接光計算の解説手順 (6)
- 間接光計算の考え方
- 間接光計算の考え方 (2)
- 間接光計算の考え方 (3)
- 間接光計算の考え方 (4)
- 間接光計算の考え方 (5)
- 間接光計算の解説手順 (7)
- 問題提起
- 間接光計算の解説手順 (8)
- キーアイディア
- キーアイディア (2)
- キーアイディア (3)
- キーアイディア (4)
- キーアイディア (5)
- キーアイディア (6)
- 間接光計算の解説手順 (9)
- 間接光計算の解説手順 (10)
- を求める
- を求める (2)
- を求める (3)
- 最適な基底
- サンプリングベースの基底
- サンプルの選び方について
- サンプリング行列
- サンプリング行列 (2)
- サンプリング行列 (3)
- サンプリング行列 (4)
- サンプリング行列 (5)
- サンプリング行列 (6)
- サンプリング行列 (7)
- 特異値分解(Singular Value Decomposition)
- 特異値分解(Singular Value Decomposition) (2)
- 特異値分解(Singular Value Decomposition) (3)
- 特異値分解(Singular Value Decomposition) (4)
- 特異値分解(Singular Value Decomposition) (5)
- 基底による直接光の近似
- アプローチの比較
- ハイブリッド手法の計算手順
- 係数の数の比較
- ランタイムの計算処理
- 係数の計算方法
- ランタイムの計算処理 (2)
- 間接光計算の解説手順 (11)
- ショートデモ
- 間接光計算の解説手順 (12)
- 間接光計算の解説手順 (13)
- Light Probe
- Light Probe (2)
- Light Probeによるライティング
- Light Probeによるライティング (2)
- 間接光計算の解説手順 (14)
- Light Probeの計算
- 動的なLight Probe
- 動的なLight Probe (2)
- 間接光計算の解説手順 (15)
- デモ
- デモ詳細
- パフォーマンス
- まとめ
- 発表の流れ (5)
- シーン分割による高速化の解説手順
- シーン分割による高速化の解説手順 (2)
- 問題提起 (14)
- 問題提起 (24)
- 問題提起 (34)
- 問題提起 (44)
- シーン分割による高速化の解説手順 (3)
- シーン分割による高速化の解説手順 (4)
- キーアイディア (16)
- キーアイディア (26)
- キーアイディア (36)
- キーアイディア (46)
- キーアイディア (56)
- キーアイディア (66)
- シーン分割による高速化の解説手順 (5)
- 光の伝播行列の計算 (17)
- 光の伝播行列の計算 (27)
- 光の伝播行列の計算 (37)
- 光の伝播行列の計算 (47)
- 光の伝播行列の計算 (57)
- 光の伝播行列の計算 (67)
- 光の伝播行列の計算 (77)
- シーン分割による高速化の解説手順 (6)
- シーン分割による高速化の解説手順 (7)
- 多重反射への拡張
- シーン分割による高速化の解説手順 (8)
- モジュールの導入 (13)
- モジュールの導入 (23)
- モジュールの導入 (33)
- シーン分割による高速化の解説手順 (9)
- デモ (2)
- 考察
- 発表の流れ (6)
- 発表内容のまとめ
- 著作権について
- 最後に
- Appendix A 実装について
- Appendix A 前計算について
- Appendix A ランタイム
- Appendix A ランタイム 係数
- Appendix A ランタイム
- Appendix A ランタイム 最終パス
- Appendix A ランタイム Light Probe(1)
- Appendix A ランタイム Light Probe(2)
- Appendix B 後半の補足
- Appendix B 後半の補足 (2)
- Appendix C 記号の表記
-
CEDEC 2012
問題提起 ( 24 )
bull 複雑なシーンでは1 メッシュ頂点数が増加2 必要な係数の数の増大 rArr 計算量の増大}
CEDEC 2012
問題提起 ( 34 )
bull 解決策シーンを複数の小領域に分割
rArr 適切に小領域を設定すればシーンの複雑さを 抑える事が可能bull 小領域の分割方法はユーザーが決定
CEDEC 2012
問題提起 ( 44 )
bull 各小領域内の間接光は前述の方法で計算可能bull 小領域間の光の伝播を別途考慮する必要がある
小領域間の光の伝播の高速な計算方法を解説
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
キーアイディア ( 16 )
bull 小領域間の光の伝播を個別に計算
CEDEC 2012
キーアイディア ( 26 )
bull 例として右rArr(中央)rArr左へ伝播する光を考える
キーアイディアでは多重反射を考慮しない光の伝播を考える
CEDEC 2012
キーアイディア ( 36 )
bull 小領域間の光の伝播は頂点間の影響に帰着
CEDEC 2012
キーアイディア ( 46 )
bull 小領域間の光の伝播行列 P を前計算119820 伝播先の小領域の頂点数119821 伝播元の小領域の頂点数
光の伝播行列P
119820行119821列[iquest ]P
CEDEC 2012
キーアイディア ( 56 )
bull 光の伝播行列 P を利用して光の伝播を高速に計算
[ 119956120783⋮119956119925]
119852 伝播元の小領域の頂点の色119941 伝播先の小領域の頂点の色
119820行119821列[iquest ][ 119941120783
⋮119941119924
] timesiquest P119820 伝播先の小領域の頂点数119821 伝播元の小領域の頂点数
CEDEC 2012
キーアイディア ( 66 )
bull 光の伝播を係数からの変換に修正
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
bull ライトフィールドという概念を導入
光の伝播行列の計算 ( 17 )
ライトフィールドは任意の点群を通過する
光を体系的に記録するためのデータ構造
境界面に注目
CEDEC 2012
光の伝播行列の計算 ( 27 )
bull 光の伝播行列 P を三要素に分割1 光の出射行列 Pout2 光の通過行列 Pthrough3 光の入射行列 Pin
右の小領域 中央の小領域 左の小領域P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 37 )
bull 光の出射行列 Poutndash 小領域 rArr ライトフィールド
119819120783 出射ライトフィールドのサンプル数119821 伝播元の小領域の頂点数
iquest119819120783行iquest
⋮⋮
⋮4 5 9
6
8
CEDEC 2012
光の伝播行列の計算 ( 47 )
bull 光の通過行列 Pthroughndash ライトフィールド rArr ライトフィールド
119819120784 出射ライトフィールドのサンプル数119819120783入射ライトフィールドのサンプル数
iquest119819120784行iquest
⋮⋮
⋮5 8
2
5 ⋯
CEDEC 2012
光の伝播行列の計算 ( 57 )
bull 光の入射行列 Pinndash ライトフィールド rArr 小領域
119820伝播先の小領域の頂点数119819120784 入射ライトフィールドのサンプル数
iquest119820行iquest
⋮
2 5 6
1
5⋮
Pin 計算時にヘミキューブ法などを用いて立体角を考慮
CEDEC 2012
光の伝播行列の計算 ( 67 )
bull 全ての小領域間の光の伝播は三種類の行列の組み合わせで計算可能
P = Pin times Pout上記例ではは再利用不可能だがは共通
P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 77 )
bull 光の伝播の計算のまとめ
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
多重反射への拡張
bull 間接光計算を反復実行
⋮
間接光計算
間接光計算
間接光計算
直接光
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
モジュールの導入 ( 13 )
bull モジュール( = 再利用可能な汎用小領域)の導入
bull 上記のようなシーンは「回転」も考慮すれば5種の立方体モジュールの組合わせで構成可能
3 方向壁 2 方向壁 2 方向壁 1 方向壁 0 方向壁
CEDEC 2012
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
モジュールの導入 ( 23 )
通過行列は(直進 右折 左折)の三種類
ライトフィールドデータを一つの行列に格納
特異値分解
データ量の削減及び計算の高速化
詳しくは論文 51 節参照
CEDEC 2012
モジュールの導入 ( 33 )
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
メリットは多いがシーンの自由度とのトレードオフ
モジュールの使い所は要検討
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
デモ
CEDEC 2012
考察
bull ライトフィールドは本当に必要か
bull 小領域間の位置関係が固定ならば(恐らく)不要
rArr レイトレーシング法で伝播行列 P を直接計算 した方が効率的bull 小領域を動的に入れ替える場合は必要
P = Pin times Pthrough times Pout
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ 3 まとめ
CEDEC 2012
発表内容のまとめ
bull Modular Radiance Transfer 法を解説ndash 長所
bull とにかく高速bull 多重反射を含んだ間接光が扱えるbull 技術のコア部分は汎用的で応用の余地が高い
ndash 短所bull 前計算を含め使い方に癖がある ( 実験を通してノウハウを蓄積すれば余り問題にならない )
ゲームへの応用は十分可能
CEDEC 2012
本スライド内で引用した論文の図の著作権は全て論文著者に帰属します
その他の図スライド本体挿絵等の著作権は
シリコンスタジオ株式会社に帰属します
著作権について
CEDEC 2012
最後に
御清聴ありがとうございました
httpwwwsiliconstudiocojppresentationsindexhtml
スライドデモは弊社 HP で近日公開
制作協力 河野 駿介 辻 俊晶 古家 亙 後藤 晋也 京田 文人 三谷 健一郎
問い合わせ先 田村 nk-tamurasiliconstudiocojp 安田 re-yasudasiliconstudiocojp
シリコンスタジオは常に人材を求めています
ご興味ある方は弊社 HP をご覧ください
CEDEC 2012
Appendix A 実装について
bull 実装自体は様々なアプローチが可能bull ここではデモの実装でのアプローチを紹介
CEDEC 2012
Appendix A 前計算について
bull F の計算ndash メッシュの全頂点からキューブマップにレンダリングndash ピクセルには頂点 ID とウェイトを出力
bull 直接光サンプルの計算ndash 頂点カラーを Stream Out でバッファに出力ndash 頂点シャドウあり
bull Light Probe の計算ndash 各 Probe の中心からキューブマップにレンダリングndash の対応する基底ベクトル同士を足し合わせた
ベクトル ( 直接光 + 間接光 ) を頂点カラーとして使用
CEDEC 2012
Appendix A ランタイム
bull 直接光の結果を Stream Out でバッファに出力ndash 頂点シャドウありndash カラーバッファへの書き込み OFFndash 複数オブジェクトの場合は単一バッファにオフ
セットを変えて出力
119897119889
CEDEC 2012
Appendix A ランタイム 係数
bull Compute Shader で を計算ndash は極めて横長の行列 ( 行 ~100程度 列 頂点数 )ndash は GPU が少々苦手な処理ではあるものの
タイリングベースの実装で高速に処理可能
iquest
119897119889119960 lowast119861119889minus1
CEDEC 2012
Appendix A ランタイム
bull Compute Shader で を計算ndash は極めて縦長 ( の転置と同サイズ ) なので素直に実装可能
iquest
119861119894119899119889 119960119897119894119899 119889 lowast
CEDEC 2012
Appendix A ランタイム 最終パス
bull を頂点カラーとして入力としてピクセル単位の直接光のシェーディングと合成して最終結果を得る
iquest +
CEDEC 2012
Appendix A ランタイム Light Probe(1)
bull Compute Shader でを計算ndash は縦長 ( 行 頂点数 timesSH係数の数 列 ~100程度 )
iquest
119880119907119900119897 119960119897119907119900119897 lowast
CEDEC 2012
Appendix A ランタイム Light Probe(2)
bull Probe を用いて Dynamic Objects をライティングndash 各 Light Probe が SH を 9係数で保持するため
3D Texture ではなく Structured-Buffer で保持ndash Vertex Shader 内で自力 Tri-Linear 補間
iquest +
CEDEC 2012
Appendix B 後半の補足
bull 大規模なシーンでの光の伝播bull 小領域間の光の伝播は個別に総当たりで計算
rArr小領域間の光の伝播は距離によって大きく減衰
実際は大規模シーンでも概ね二つ隣の小領域まで考慮すれば十分
CEDEC 2012
Appendix B 後半の補足
bull 小領域の境界
bull 小領域の境界部分が不連続になる rArr 小領域の境界部分は補間の必要がある
CEDEC 2012
bull スライドと論文で表記が違う記号があります
Appendix C 記号の表記
スライドでの表記 論文での表記
b
- Slide 1
- 発表の流れ
- 発表の流れ (2)
- 発表の概要
- 解説技術の特徴
- 注意点
- 発表の流れ (3)
- 発表の流れ (4)
- 間接光の概要
- 間接光の概要 (2)
- 解説手法の計算概要
- 間接光計算の解説手順
- 間接光計算の解説手順 (2)
- 間接光計算の解説手順 (3)
- 間接光計算の解説手順 (4)
- 間接光計算の解説手順 (5)
- 間接光計算の解説手順 (6)
- 間接光計算の考え方
- 間接光計算の考え方 (2)
- 間接光計算の考え方 (3)
- 間接光計算の考え方 (4)
- 間接光計算の考え方 (5)
- 間接光計算の解説手順 (7)
- 問題提起
- 間接光計算の解説手順 (8)
- キーアイディア
- キーアイディア (2)
- キーアイディア (3)
- キーアイディア (4)
- キーアイディア (5)
- キーアイディア (6)
- 間接光計算の解説手順 (9)
- 間接光計算の解説手順 (10)
- を求める
- を求める (2)
- を求める (3)
- 最適な基底
- サンプリングベースの基底
- サンプルの選び方について
- サンプリング行列
- サンプリング行列 (2)
- サンプリング行列 (3)
- サンプリング行列 (4)
- サンプリング行列 (5)
- サンプリング行列 (6)
- サンプリング行列 (7)
- 特異値分解(Singular Value Decomposition)
- 特異値分解(Singular Value Decomposition) (2)
- 特異値分解(Singular Value Decomposition) (3)
- 特異値分解(Singular Value Decomposition) (4)
- 特異値分解(Singular Value Decomposition) (5)
- 基底による直接光の近似
- アプローチの比較
- ハイブリッド手法の計算手順
- 係数の数の比較
- ランタイムの計算処理
- 係数の計算方法
- ランタイムの計算処理 (2)
- 間接光計算の解説手順 (11)
- ショートデモ
- 間接光計算の解説手順 (12)
- 間接光計算の解説手順 (13)
- Light Probe
- Light Probe (2)
- Light Probeによるライティング
- Light Probeによるライティング (2)
- 間接光計算の解説手順 (14)
- Light Probeの計算
- 動的なLight Probe
- 動的なLight Probe (2)
- 間接光計算の解説手順 (15)
- デモ
- デモ詳細
- パフォーマンス
- まとめ
- 発表の流れ (5)
- シーン分割による高速化の解説手順
- シーン分割による高速化の解説手順 (2)
- 問題提起 (14)
- 問題提起 (24)
- 問題提起 (34)
- 問題提起 (44)
- シーン分割による高速化の解説手順 (3)
- シーン分割による高速化の解説手順 (4)
- キーアイディア (16)
- キーアイディア (26)
- キーアイディア (36)
- キーアイディア (46)
- キーアイディア (56)
- キーアイディア (66)
- シーン分割による高速化の解説手順 (5)
- 光の伝播行列の計算 (17)
- 光の伝播行列の計算 (27)
- 光の伝播行列の計算 (37)
- 光の伝播行列の計算 (47)
- 光の伝播行列の計算 (57)
- 光の伝播行列の計算 (67)
- 光の伝播行列の計算 (77)
- シーン分割による高速化の解説手順 (6)
- シーン分割による高速化の解説手順 (7)
- 多重反射への拡張
- シーン分割による高速化の解説手順 (8)
- モジュールの導入 (13)
- モジュールの導入 (23)
- モジュールの導入 (33)
- シーン分割による高速化の解説手順 (9)
- デモ (2)
- 考察
- 発表の流れ (6)
- 発表内容のまとめ
- 著作権について
- 最後に
- Appendix A 実装について
- Appendix A 前計算について
- Appendix A ランタイム
- Appendix A ランタイム 係数
- Appendix A ランタイム
- Appendix A ランタイム 最終パス
- Appendix A ランタイム Light Probe(1)
- Appendix A ランタイム Light Probe(2)
- Appendix B 後半の補足
- Appendix B 後半の補足 (2)
- Appendix C 記号の表記
-
CEDEC 2012
問題提起 ( 34 )
bull 解決策シーンを複数の小領域に分割
rArr 適切に小領域を設定すればシーンの複雑さを 抑える事が可能bull 小領域の分割方法はユーザーが決定
CEDEC 2012
問題提起 ( 44 )
bull 各小領域内の間接光は前述の方法で計算可能bull 小領域間の光の伝播を別途考慮する必要がある
小領域間の光の伝播の高速な計算方法を解説
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
キーアイディア ( 16 )
bull 小領域間の光の伝播を個別に計算
CEDEC 2012
キーアイディア ( 26 )
bull 例として右rArr(中央)rArr左へ伝播する光を考える
キーアイディアでは多重反射を考慮しない光の伝播を考える
CEDEC 2012
キーアイディア ( 36 )
bull 小領域間の光の伝播は頂点間の影響に帰着
CEDEC 2012
キーアイディア ( 46 )
bull 小領域間の光の伝播行列 P を前計算119820 伝播先の小領域の頂点数119821 伝播元の小領域の頂点数
光の伝播行列P
119820行119821列[iquest ]P
CEDEC 2012
キーアイディア ( 56 )
bull 光の伝播行列 P を利用して光の伝播を高速に計算
[ 119956120783⋮119956119925]
119852 伝播元の小領域の頂点の色119941 伝播先の小領域の頂点の色
119820行119821列[iquest ][ 119941120783
⋮119941119924
] timesiquest P119820 伝播先の小領域の頂点数119821 伝播元の小領域の頂点数
CEDEC 2012
キーアイディア ( 66 )
bull 光の伝播を係数からの変換に修正
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
bull ライトフィールドという概念を導入
光の伝播行列の計算 ( 17 )
ライトフィールドは任意の点群を通過する
光を体系的に記録するためのデータ構造
境界面に注目
CEDEC 2012
光の伝播行列の計算 ( 27 )
bull 光の伝播行列 P を三要素に分割1 光の出射行列 Pout2 光の通過行列 Pthrough3 光の入射行列 Pin
右の小領域 中央の小領域 左の小領域P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 37 )
bull 光の出射行列 Poutndash 小領域 rArr ライトフィールド
119819120783 出射ライトフィールドのサンプル数119821 伝播元の小領域の頂点数
iquest119819120783行iquest
⋮⋮
⋮4 5 9
6
8
CEDEC 2012
光の伝播行列の計算 ( 47 )
bull 光の通過行列 Pthroughndash ライトフィールド rArr ライトフィールド
119819120784 出射ライトフィールドのサンプル数119819120783入射ライトフィールドのサンプル数
iquest119819120784行iquest
⋮⋮
⋮5 8
2
5 ⋯
CEDEC 2012
光の伝播行列の計算 ( 57 )
bull 光の入射行列 Pinndash ライトフィールド rArr 小領域
119820伝播先の小領域の頂点数119819120784 入射ライトフィールドのサンプル数
iquest119820行iquest
⋮
2 5 6
1
5⋮
Pin 計算時にヘミキューブ法などを用いて立体角を考慮
CEDEC 2012
光の伝播行列の計算 ( 67 )
bull 全ての小領域間の光の伝播は三種類の行列の組み合わせで計算可能
P = Pin times Pout上記例ではは再利用不可能だがは共通
P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 77 )
bull 光の伝播の計算のまとめ
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
多重反射への拡張
bull 間接光計算を反復実行
⋮
間接光計算
間接光計算
間接光計算
直接光
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
モジュールの導入 ( 13 )
bull モジュール( = 再利用可能な汎用小領域)の導入
bull 上記のようなシーンは「回転」も考慮すれば5種の立方体モジュールの組合わせで構成可能
3 方向壁 2 方向壁 2 方向壁 1 方向壁 0 方向壁
CEDEC 2012
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
モジュールの導入 ( 23 )
通過行列は(直進 右折 左折)の三種類
ライトフィールドデータを一つの行列に格納
特異値分解
データ量の削減及び計算の高速化
詳しくは論文 51 節参照
CEDEC 2012
モジュールの導入 ( 33 )
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
メリットは多いがシーンの自由度とのトレードオフ
モジュールの使い所は要検討
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
デモ
CEDEC 2012
考察
bull ライトフィールドは本当に必要か
bull 小領域間の位置関係が固定ならば(恐らく)不要
rArr レイトレーシング法で伝播行列 P を直接計算 した方が効率的bull 小領域を動的に入れ替える場合は必要
P = Pin times Pthrough times Pout
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ 3 まとめ
CEDEC 2012
発表内容のまとめ
bull Modular Radiance Transfer 法を解説ndash 長所
bull とにかく高速bull 多重反射を含んだ間接光が扱えるbull 技術のコア部分は汎用的で応用の余地が高い
ndash 短所bull 前計算を含め使い方に癖がある ( 実験を通してノウハウを蓄積すれば余り問題にならない )
ゲームへの応用は十分可能
CEDEC 2012
本スライド内で引用した論文の図の著作権は全て論文著者に帰属します
その他の図スライド本体挿絵等の著作権は
シリコンスタジオ株式会社に帰属します
著作権について
CEDEC 2012
最後に
御清聴ありがとうございました
httpwwwsiliconstudiocojppresentationsindexhtml
スライドデモは弊社 HP で近日公開
制作協力 河野 駿介 辻 俊晶 古家 亙 後藤 晋也 京田 文人 三谷 健一郎
問い合わせ先 田村 nk-tamurasiliconstudiocojp 安田 re-yasudasiliconstudiocojp
シリコンスタジオは常に人材を求めています
ご興味ある方は弊社 HP をご覧ください
CEDEC 2012
Appendix A 実装について
bull 実装自体は様々なアプローチが可能bull ここではデモの実装でのアプローチを紹介
CEDEC 2012
Appendix A 前計算について
bull F の計算ndash メッシュの全頂点からキューブマップにレンダリングndash ピクセルには頂点 ID とウェイトを出力
bull 直接光サンプルの計算ndash 頂点カラーを Stream Out でバッファに出力ndash 頂点シャドウあり
bull Light Probe の計算ndash 各 Probe の中心からキューブマップにレンダリングndash の対応する基底ベクトル同士を足し合わせた
ベクトル ( 直接光 + 間接光 ) を頂点カラーとして使用
CEDEC 2012
Appendix A ランタイム
bull 直接光の結果を Stream Out でバッファに出力ndash 頂点シャドウありndash カラーバッファへの書き込み OFFndash 複数オブジェクトの場合は単一バッファにオフ
セットを変えて出力
119897119889
CEDEC 2012
Appendix A ランタイム 係数
bull Compute Shader で を計算ndash は極めて横長の行列 ( 行 ~100程度 列 頂点数 )ndash は GPU が少々苦手な処理ではあるものの
タイリングベースの実装で高速に処理可能
iquest
119897119889119960 lowast119861119889minus1
CEDEC 2012
Appendix A ランタイム
bull Compute Shader で を計算ndash は極めて縦長 ( の転置と同サイズ ) なので素直に実装可能
iquest
119861119894119899119889 119960119897119894119899 119889 lowast
CEDEC 2012
Appendix A ランタイム 最終パス
bull を頂点カラーとして入力としてピクセル単位の直接光のシェーディングと合成して最終結果を得る
iquest +
CEDEC 2012
Appendix A ランタイム Light Probe(1)
bull Compute Shader でを計算ndash は縦長 ( 行 頂点数 timesSH係数の数 列 ~100程度 )
iquest
119880119907119900119897 119960119897119907119900119897 lowast
CEDEC 2012
Appendix A ランタイム Light Probe(2)
bull Probe を用いて Dynamic Objects をライティングndash 各 Light Probe が SH を 9係数で保持するため
3D Texture ではなく Structured-Buffer で保持ndash Vertex Shader 内で自力 Tri-Linear 補間
iquest +
CEDEC 2012
Appendix B 後半の補足
bull 大規模なシーンでの光の伝播bull 小領域間の光の伝播は個別に総当たりで計算
rArr小領域間の光の伝播は距離によって大きく減衰
実際は大規模シーンでも概ね二つ隣の小領域まで考慮すれば十分
CEDEC 2012
Appendix B 後半の補足
bull 小領域の境界
bull 小領域の境界部分が不連続になる rArr 小領域の境界部分は補間の必要がある
CEDEC 2012
bull スライドと論文で表記が違う記号があります
Appendix C 記号の表記
スライドでの表記 論文での表記
b
- Slide 1
- 発表の流れ
- 発表の流れ (2)
- 発表の概要
- 解説技術の特徴
- 注意点
- 発表の流れ (3)
- 発表の流れ (4)
- 間接光の概要
- 間接光の概要 (2)
- 解説手法の計算概要
- 間接光計算の解説手順
- 間接光計算の解説手順 (2)
- 間接光計算の解説手順 (3)
- 間接光計算の解説手順 (4)
- 間接光計算の解説手順 (5)
- 間接光計算の解説手順 (6)
- 間接光計算の考え方
- 間接光計算の考え方 (2)
- 間接光計算の考え方 (3)
- 間接光計算の考え方 (4)
- 間接光計算の考え方 (5)
- 間接光計算の解説手順 (7)
- 問題提起
- 間接光計算の解説手順 (8)
- キーアイディア
- キーアイディア (2)
- キーアイディア (3)
- キーアイディア (4)
- キーアイディア (5)
- キーアイディア (6)
- 間接光計算の解説手順 (9)
- 間接光計算の解説手順 (10)
- を求める
- を求める (2)
- を求める (3)
- 最適な基底
- サンプリングベースの基底
- サンプルの選び方について
- サンプリング行列
- サンプリング行列 (2)
- サンプリング行列 (3)
- サンプリング行列 (4)
- サンプリング行列 (5)
- サンプリング行列 (6)
- サンプリング行列 (7)
- 特異値分解(Singular Value Decomposition)
- 特異値分解(Singular Value Decomposition) (2)
- 特異値分解(Singular Value Decomposition) (3)
- 特異値分解(Singular Value Decomposition) (4)
- 特異値分解(Singular Value Decomposition) (5)
- 基底による直接光の近似
- アプローチの比較
- ハイブリッド手法の計算手順
- 係数の数の比較
- ランタイムの計算処理
- 係数の計算方法
- ランタイムの計算処理 (2)
- 間接光計算の解説手順 (11)
- ショートデモ
- 間接光計算の解説手順 (12)
- 間接光計算の解説手順 (13)
- Light Probe
- Light Probe (2)
- Light Probeによるライティング
- Light Probeによるライティング (2)
- 間接光計算の解説手順 (14)
- Light Probeの計算
- 動的なLight Probe
- 動的なLight Probe (2)
- 間接光計算の解説手順 (15)
- デモ
- デモ詳細
- パフォーマンス
- まとめ
- 発表の流れ (5)
- シーン分割による高速化の解説手順
- シーン分割による高速化の解説手順 (2)
- 問題提起 (14)
- 問題提起 (24)
- 問題提起 (34)
- 問題提起 (44)
- シーン分割による高速化の解説手順 (3)
- シーン分割による高速化の解説手順 (4)
- キーアイディア (16)
- キーアイディア (26)
- キーアイディア (36)
- キーアイディア (46)
- キーアイディア (56)
- キーアイディア (66)
- シーン分割による高速化の解説手順 (5)
- 光の伝播行列の計算 (17)
- 光の伝播行列の計算 (27)
- 光の伝播行列の計算 (37)
- 光の伝播行列の計算 (47)
- 光の伝播行列の計算 (57)
- 光の伝播行列の計算 (67)
- 光の伝播行列の計算 (77)
- シーン分割による高速化の解説手順 (6)
- シーン分割による高速化の解説手順 (7)
- 多重反射への拡張
- シーン分割による高速化の解説手順 (8)
- モジュールの導入 (13)
- モジュールの導入 (23)
- モジュールの導入 (33)
- シーン分割による高速化の解説手順 (9)
- デモ (2)
- 考察
- 発表の流れ (6)
- 発表内容のまとめ
- 著作権について
- 最後に
- Appendix A 実装について
- Appendix A 前計算について
- Appendix A ランタイム
- Appendix A ランタイム 係数
- Appendix A ランタイム
- Appendix A ランタイム 最終パス
- Appendix A ランタイム Light Probe(1)
- Appendix A ランタイム Light Probe(2)
- Appendix B 後半の補足
- Appendix B 後半の補足 (2)
- Appendix C 記号の表記
-
CEDEC 2012
問題提起 ( 44 )
bull 各小領域内の間接光は前述の方法で計算可能bull 小領域間の光の伝播を別途考慮する必要がある
小領域間の光の伝播の高速な計算方法を解説
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
キーアイディア ( 16 )
bull 小領域間の光の伝播を個別に計算
CEDEC 2012
キーアイディア ( 26 )
bull 例として右rArr(中央)rArr左へ伝播する光を考える
キーアイディアでは多重反射を考慮しない光の伝播を考える
CEDEC 2012
キーアイディア ( 36 )
bull 小領域間の光の伝播は頂点間の影響に帰着
CEDEC 2012
キーアイディア ( 46 )
bull 小領域間の光の伝播行列 P を前計算119820 伝播先の小領域の頂点数119821 伝播元の小領域の頂点数
光の伝播行列P
119820行119821列[iquest ]P
CEDEC 2012
キーアイディア ( 56 )
bull 光の伝播行列 P を利用して光の伝播を高速に計算
[ 119956120783⋮119956119925]
119852 伝播元の小領域の頂点の色119941 伝播先の小領域の頂点の色
119820行119821列[iquest ][ 119941120783
⋮119941119924
] timesiquest P119820 伝播先の小領域の頂点数119821 伝播元の小領域の頂点数
CEDEC 2012
キーアイディア ( 66 )
bull 光の伝播を係数からの変換に修正
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
bull ライトフィールドという概念を導入
光の伝播行列の計算 ( 17 )
ライトフィールドは任意の点群を通過する
光を体系的に記録するためのデータ構造
境界面に注目
CEDEC 2012
光の伝播行列の計算 ( 27 )
bull 光の伝播行列 P を三要素に分割1 光の出射行列 Pout2 光の通過行列 Pthrough3 光の入射行列 Pin
右の小領域 中央の小領域 左の小領域P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 37 )
bull 光の出射行列 Poutndash 小領域 rArr ライトフィールド
119819120783 出射ライトフィールドのサンプル数119821 伝播元の小領域の頂点数
iquest119819120783行iquest
⋮⋮
⋮4 5 9
6
8
CEDEC 2012
光の伝播行列の計算 ( 47 )
bull 光の通過行列 Pthroughndash ライトフィールド rArr ライトフィールド
119819120784 出射ライトフィールドのサンプル数119819120783入射ライトフィールドのサンプル数
iquest119819120784行iquest
⋮⋮
⋮5 8
2
5 ⋯
CEDEC 2012
光の伝播行列の計算 ( 57 )
bull 光の入射行列 Pinndash ライトフィールド rArr 小領域
119820伝播先の小領域の頂点数119819120784 入射ライトフィールドのサンプル数
iquest119820行iquest
⋮
2 5 6
1
5⋮
Pin 計算時にヘミキューブ法などを用いて立体角を考慮
CEDEC 2012
光の伝播行列の計算 ( 67 )
bull 全ての小領域間の光の伝播は三種類の行列の組み合わせで計算可能
P = Pin times Pout上記例ではは再利用不可能だがは共通
P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 77 )
bull 光の伝播の計算のまとめ
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
多重反射への拡張
bull 間接光計算を反復実行
⋮
間接光計算
間接光計算
間接光計算
直接光
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
モジュールの導入 ( 13 )
bull モジュール( = 再利用可能な汎用小領域)の導入
bull 上記のようなシーンは「回転」も考慮すれば5種の立方体モジュールの組合わせで構成可能
3 方向壁 2 方向壁 2 方向壁 1 方向壁 0 方向壁
CEDEC 2012
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
モジュールの導入 ( 23 )
通過行列は(直進 右折 左折)の三種類
ライトフィールドデータを一つの行列に格納
特異値分解
データ量の削減及び計算の高速化
詳しくは論文 51 節参照
CEDEC 2012
モジュールの導入 ( 33 )
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
メリットは多いがシーンの自由度とのトレードオフ
モジュールの使い所は要検討
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
デモ
CEDEC 2012
考察
bull ライトフィールドは本当に必要か
bull 小領域間の位置関係が固定ならば(恐らく)不要
rArr レイトレーシング法で伝播行列 P を直接計算 した方が効率的bull 小領域を動的に入れ替える場合は必要
P = Pin times Pthrough times Pout
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ 3 まとめ
CEDEC 2012
発表内容のまとめ
bull Modular Radiance Transfer 法を解説ndash 長所
bull とにかく高速bull 多重反射を含んだ間接光が扱えるbull 技術のコア部分は汎用的で応用の余地が高い
ndash 短所bull 前計算を含め使い方に癖がある ( 実験を通してノウハウを蓄積すれば余り問題にならない )
ゲームへの応用は十分可能
CEDEC 2012
本スライド内で引用した論文の図の著作権は全て論文著者に帰属します
その他の図スライド本体挿絵等の著作権は
シリコンスタジオ株式会社に帰属します
著作権について
CEDEC 2012
最後に
御清聴ありがとうございました
httpwwwsiliconstudiocojppresentationsindexhtml
スライドデモは弊社 HP で近日公開
制作協力 河野 駿介 辻 俊晶 古家 亙 後藤 晋也 京田 文人 三谷 健一郎
問い合わせ先 田村 nk-tamurasiliconstudiocojp 安田 re-yasudasiliconstudiocojp
シリコンスタジオは常に人材を求めています
ご興味ある方は弊社 HP をご覧ください
CEDEC 2012
Appendix A 実装について
bull 実装自体は様々なアプローチが可能bull ここではデモの実装でのアプローチを紹介
CEDEC 2012
Appendix A 前計算について
bull F の計算ndash メッシュの全頂点からキューブマップにレンダリングndash ピクセルには頂点 ID とウェイトを出力
bull 直接光サンプルの計算ndash 頂点カラーを Stream Out でバッファに出力ndash 頂点シャドウあり
bull Light Probe の計算ndash 各 Probe の中心からキューブマップにレンダリングndash の対応する基底ベクトル同士を足し合わせた
ベクトル ( 直接光 + 間接光 ) を頂点カラーとして使用
CEDEC 2012
Appendix A ランタイム
bull 直接光の結果を Stream Out でバッファに出力ndash 頂点シャドウありndash カラーバッファへの書き込み OFFndash 複数オブジェクトの場合は単一バッファにオフ
セットを変えて出力
119897119889
CEDEC 2012
Appendix A ランタイム 係数
bull Compute Shader で を計算ndash は極めて横長の行列 ( 行 ~100程度 列 頂点数 )ndash は GPU が少々苦手な処理ではあるものの
タイリングベースの実装で高速に処理可能
iquest
119897119889119960 lowast119861119889minus1
CEDEC 2012
Appendix A ランタイム
bull Compute Shader で を計算ndash は極めて縦長 ( の転置と同サイズ ) なので素直に実装可能
iquest
119861119894119899119889 119960119897119894119899 119889 lowast
CEDEC 2012
Appendix A ランタイム 最終パス
bull を頂点カラーとして入力としてピクセル単位の直接光のシェーディングと合成して最終結果を得る
iquest +
CEDEC 2012
Appendix A ランタイム Light Probe(1)
bull Compute Shader でを計算ndash は縦長 ( 行 頂点数 timesSH係数の数 列 ~100程度 )
iquest
119880119907119900119897 119960119897119907119900119897 lowast
CEDEC 2012
Appendix A ランタイム Light Probe(2)
bull Probe を用いて Dynamic Objects をライティングndash 各 Light Probe が SH を 9係数で保持するため
3D Texture ではなく Structured-Buffer で保持ndash Vertex Shader 内で自力 Tri-Linear 補間
iquest +
CEDEC 2012
Appendix B 後半の補足
bull 大規模なシーンでの光の伝播bull 小領域間の光の伝播は個別に総当たりで計算
rArr小領域間の光の伝播は距離によって大きく減衰
実際は大規模シーンでも概ね二つ隣の小領域まで考慮すれば十分
CEDEC 2012
Appendix B 後半の補足
bull 小領域の境界
bull 小領域の境界部分が不連続になる rArr 小領域の境界部分は補間の必要がある
CEDEC 2012
bull スライドと論文で表記が違う記号があります
Appendix C 記号の表記
スライドでの表記 論文での表記
b
- Slide 1
- 発表の流れ
- 発表の流れ (2)
- 発表の概要
- 解説技術の特徴
- 注意点
- 発表の流れ (3)
- 発表の流れ (4)
- 間接光の概要
- 間接光の概要 (2)
- 解説手法の計算概要
- 間接光計算の解説手順
- 間接光計算の解説手順 (2)
- 間接光計算の解説手順 (3)
- 間接光計算の解説手順 (4)
- 間接光計算の解説手順 (5)
- 間接光計算の解説手順 (6)
- 間接光計算の考え方
- 間接光計算の考え方 (2)
- 間接光計算の考え方 (3)
- 間接光計算の考え方 (4)
- 間接光計算の考え方 (5)
- 間接光計算の解説手順 (7)
- 問題提起
- 間接光計算の解説手順 (8)
- キーアイディア
- キーアイディア (2)
- キーアイディア (3)
- キーアイディア (4)
- キーアイディア (5)
- キーアイディア (6)
- 間接光計算の解説手順 (9)
- 間接光計算の解説手順 (10)
- を求める
- を求める (2)
- を求める (3)
- 最適な基底
- サンプリングベースの基底
- サンプルの選び方について
- サンプリング行列
- サンプリング行列 (2)
- サンプリング行列 (3)
- サンプリング行列 (4)
- サンプリング行列 (5)
- サンプリング行列 (6)
- サンプリング行列 (7)
- 特異値分解(Singular Value Decomposition)
- 特異値分解(Singular Value Decomposition) (2)
- 特異値分解(Singular Value Decomposition) (3)
- 特異値分解(Singular Value Decomposition) (4)
- 特異値分解(Singular Value Decomposition) (5)
- 基底による直接光の近似
- アプローチの比較
- ハイブリッド手法の計算手順
- 係数の数の比較
- ランタイムの計算処理
- 係数の計算方法
- ランタイムの計算処理 (2)
- 間接光計算の解説手順 (11)
- ショートデモ
- 間接光計算の解説手順 (12)
- 間接光計算の解説手順 (13)
- Light Probe
- Light Probe (2)
- Light Probeによるライティング
- Light Probeによるライティング (2)
- 間接光計算の解説手順 (14)
- Light Probeの計算
- 動的なLight Probe
- 動的なLight Probe (2)
- 間接光計算の解説手順 (15)
- デモ
- デモ詳細
- パフォーマンス
- まとめ
- 発表の流れ (5)
- シーン分割による高速化の解説手順
- シーン分割による高速化の解説手順 (2)
- 問題提起 (14)
- 問題提起 (24)
- 問題提起 (34)
- 問題提起 (44)
- シーン分割による高速化の解説手順 (3)
- シーン分割による高速化の解説手順 (4)
- キーアイディア (16)
- キーアイディア (26)
- キーアイディア (36)
- キーアイディア (46)
- キーアイディア (56)
- キーアイディア (66)
- シーン分割による高速化の解説手順 (5)
- 光の伝播行列の計算 (17)
- 光の伝播行列の計算 (27)
- 光の伝播行列の計算 (37)
- 光の伝播行列の計算 (47)
- 光の伝播行列の計算 (57)
- 光の伝播行列の計算 (67)
- 光の伝播行列の計算 (77)
- シーン分割による高速化の解説手順 (6)
- シーン分割による高速化の解説手順 (7)
- 多重反射への拡張
- シーン分割による高速化の解説手順 (8)
- モジュールの導入 (13)
- モジュールの導入 (23)
- モジュールの導入 (33)
- シーン分割による高速化の解説手順 (9)
- デモ (2)
- 考察
- 発表の流れ (6)
- 発表内容のまとめ
- 著作権について
- 最後に
- Appendix A 実装について
- Appendix A 前計算について
- Appendix A ランタイム
- Appendix A ランタイム 係数
- Appendix A ランタイム
- Appendix A ランタイム 最終パス
- Appendix A ランタイム Light Probe(1)
- Appendix A ランタイム Light Probe(2)
- Appendix B 後半の補足
- Appendix B 後半の補足 (2)
- Appendix C 記号の表記
-
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
キーアイディア ( 16 )
bull 小領域間の光の伝播を個別に計算
CEDEC 2012
キーアイディア ( 26 )
bull 例として右rArr(中央)rArr左へ伝播する光を考える
キーアイディアでは多重反射を考慮しない光の伝播を考える
CEDEC 2012
キーアイディア ( 36 )
bull 小領域間の光の伝播は頂点間の影響に帰着
CEDEC 2012
キーアイディア ( 46 )
bull 小領域間の光の伝播行列 P を前計算119820 伝播先の小領域の頂点数119821 伝播元の小領域の頂点数
光の伝播行列P
119820行119821列[iquest ]P
CEDEC 2012
キーアイディア ( 56 )
bull 光の伝播行列 P を利用して光の伝播を高速に計算
[ 119956120783⋮119956119925]
119852 伝播元の小領域の頂点の色119941 伝播先の小領域の頂点の色
119820行119821列[iquest ][ 119941120783
⋮119941119924
] timesiquest P119820 伝播先の小領域の頂点数119821 伝播元の小領域の頂点数
CEDEC 2012
キーアイディア ( 66 )
bull 光の伝播を係数からの変換に修正
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
bull ライトフィールドという概念を導入
光の伝播行列の計算 ( 17 )
ライトフィールドは任意の点群を通過する
光を体系的に記録するためのデータ構造
境界面に注目
CEDEC 2012
光の伝播行列の計算 ( 27 )
bull 光の伝播行列 P を三要素に分割1 光の出射行列 Pout2 光の通過行列 Pthrough3 光の入射行列 Pin
右の小領域 中央の小領域 左の小領域P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 37 )
bull 光の出射行列 Poutndash 小領域 rArr ライトフィールド
119819120783 出射ライトフィールドのサンプル数119821 伝播元の小領域の頂点数
iquest119819120783行iquest
⋮⋮
⋮4 5 9
6
8
CEDEC 2012
光の伝播行列の計算 ( 47 )
bull 光の通過行列 Pthroughndash ライトフィールド rArr ライトフィールド
119819120784 出射ライトフィールドのサンプル数119819120783入射ライトフィールドのサンプル数
iquest119819120784行iquest
⋮⋮
⋮5 8
2
5 ⋯
CEDEC 2012
光の伝播行列の計算 ( 57 )
bull 光の入射行列 Pinndash ライトフィールド rArr 小領域
119820伝播先の小領域の頂点数119819120784 入射ライトフィールドのサンプル数
iquest119820行iquest
⋮
2 5 6
1
5⋮
Pin 計算時にヘミキューブ法などを用いて立体角を考慮
CEDEC 2012
光の伝播行列の計算 ( 67 )
bull 全ての小領域間の光の伝播は三種類の行列の組み合わせで計算可能
P = Pin times Pout上記例ではは再利用不可能だがは共通
P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 77 )
bull 光の伝播の計算のまとめ
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
多重反射への拡張
bull 間接光計算を反復実行
⋮
間接光計算
間接光計算
間接光計算
直接光
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
モジュールの導入 ( 13 )
bull モジュール( = 再利用可能な汎用小領域)の導入
bull 上記のようなシーンは「回転」も考慮すれば5種の立方体モジュールの組合わせで構成可能
3 方向壁 2 方向壁 2 方向壁 1 方向壁 0 方向壁
CEDEC 2012
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
モジュールの導入 ( 23 )
通過行列は(直進 右折 左折)の三種類
ライトフィールドデータを一つの行列に格納
特異値分解
データ量の削減及び計算の高速化
詳しくは論文 51 節参照
CEDEC 2012
モジュールの導入 ( 33 )
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
メリットは多いがシーンの自由度とのトレードオフ
モジュールの使い所は要検討
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
デモ
CEDEC 2012
考察
bull ライトフィールドは本当に必要か
bull 小領域間の位置関係が固定ならば(恐らく)不要
rArr レイトレーシング法で伝播行列 P を直接計算 した方が効率的bull 小領域を動的に入れ替える場合は必要
P = Pin times Pthrough times Pout
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ 3 まとめ
CEDEC 2012
発表内容のまとめ
bull Modular Radiance Transfer 法を解説ndash 長所
bull とにかく高速bull 多重反射を含んだ間接光が扱えるbull 技術のコア部分は汎用的で応用の余地が高い
ndash 短所bull 前計算を含め使い方に癖がある ( 実験を通してノウハウを蓄積すれば余り問題にならない )
ゲームへの応用は十分可能
CEDEC 2012
本スライド内で引用した論文の図の著作権は全て論文著者に帰属します
その他の図スライド本体挿絵等の著作権は
シリコンスタジオ株式会社に帰属します
著作権について
CEDEC 2012
最後に
御清聴ありがとうございました
httpwwwsiliconstudiocojppresentationsindexhtml
スライドデモは弊社 HP で近日公開
制作協力 河野 駿介 辻 俊晶 古家 亙 後藤 晋也 京田 文人 三谷 健一郎
問い合わせ先 田村 nk-tamurasiliconstudiocojp 安田 re-yasudasiliconstudiocojp
シリコンスタジオは常に人材を求めています
ご興味ある方は弊社 HP をご覧ください
CEDEC 2012
Appendix A 実装について
bull 実装自体は様々なアプローチが可能bull ここではデモの実装でのアプローチを紹介
CEDEC 2012
Appendix A 前計算について
bull F の計算ndash メッシュの全頂点からキューブマップにレンダリングndash ピクセルには頂点 ID とウェイトを出力
bull 直接光サンプルの計算ndash 頂点カラーを Stream Out でバッファに出力ndash 頂点シャドウあり
bull Light Probe の計算ndash 各 Probe の中心からキューブマップにレンダリングndash の対応する基底ベクトル同士を足し合わせた
ベクトル ( 直接光 + 間接光 ) を頂点カラーとして使用
CEDEC 2012
Appendix A ランタイム
bull 直接光の結果を Stream Out でバッファに出力ndash 頂点シャドウありndash カラーバッファへの書き込み OFFndash 複数オブジェクトの場合は単一バッファにオフ
セットを変えて出力
119897119889
CEDEC 2012
Appendix A ランタイム 係数
bull Compute Shader で を計算ndash は極めて横長の行列 ( 行 ~100程度 列 頂点数 )ndash は GPU が少々苦手な処理ではあるものの
タイリングベースの実装で高速に処理可能
iquest
119897119889119960 lowast119861119889minus1
CEDEC 2012
Appendix A ランタイム
bull Compute Shader で を計算ndash は極めて縦長 ( の転置と同サイズ ) なので素直に実装可能
iquest
119861119894119899119889 119960119897119894119899 119889 lowast
CEDEC 2012
Appendix A ランタイム 最終パス
bull を頂点カラーとして入力としてピクセル単位の直接光のシェーディングと合成して最終結果を得る
iquest +
CEDEC 2012
Appendix A ランタイム Light Probe(1)
bull Compute Shader でを計算ndash は縦長 ( 行 頂点数 timesSH係数の数 列 ~100程度 )
iquest
119880119907119900119897 119960119897119907119900119897 lowast
CEDEC 2012
Appendix A ランタイム Light Probe(2)
bull Probe を用いて Dynamic Objects をライティングndash 各 Light Probe が SH を 9係数で保持するため
3D Texture ではなく Structured-Buffer で保持ndash Vertex Shader 内で自力 Tri-Linear 補間
iquest +
CEDEC 2012
Appendix B 後半の補足
bull 大規模なシーンでの光の伝播bull 小領域間の光の伝播は個別に総当たりで計算
rArr小領域間の光の伝播は距離によって大きく減衰
実際は大規模シーンでも概ね二つ隣の小領域まで考慮すれば十分
CEDEC 2012
Appendix B 後半の補足
bull 小領域の境界
bull 小領域の境界部分が不連続になる rArr 小領域の境界部分は補間の必要がある
CEDEC 2012
bull スライドと論文で表記が違う記号があります
Appendix C 記号の表記
スライドでの表記 論文での表記
b
- Slide 1
- 発表の流れ
- 発表の流れ (2)
- 発表の概要
- 解説技術の特徴
- 注意点
- 発表の流れ (3)
- 発表の流れ (4)
- 間接光の概要
- 間接光の概要 (2)
- 解説手法の計算概要
- 間接光計算の解説手順
- 間接光計算の解説手順 (2)
- 間接光計算の解説手順 (3)
- 間接光計算の解説手順 (4)
- 間接光計算の解説手順 (5)
- 間接光計算の解説手順 (6)
- 間接光計算の考え方
- 間接光計算の考え方 (2)
- 間接光計算の考え方 (3)
- 間接光計算の考え方 (4)
- 間接光計算の考え方 (5)
- 間接光計算の解説手順 (7)
- 問題提起
- 間接光計算の解説手順 (8)
- キーアイディア
- キーアイディア (2)
- キーアイディア (3)
- キーアイディア (4)
- キーアイディア (5)
- キーアイディア (6)
- 間接光計算の解説手順 (9)
- 間接光計算の解説手順 (10)
- を求める
- を求める (2)
- を求める (3)
- 最適な基底
- サンプリングベースの基底
- サンプルの選び方について
- サンプリング行列
- サンプリング行列 (2)
- サンプリング行列 (3)
- サンプリング行列 (4)
- サンプリング行列 (5)
- サンプリング行列 (6)
- サンプリング行列 (7)
- 特異値分解(Singular Value Decomposition)
- 特異値分解(Singular Value Decomposition) (2)
- 特異値分解(Singular Value Decomposition) (3)
- 特異値分解(Singular Value Decomposition) (4)
- 特異値分解(Singular Value Decomposition) (5)
- 基底による直接光の近似
- アプローチの比較
- ハイブリッド手法の計算手順
- 係数の数の比較
- ランタイムの計算処理
- 係数の計算方法
- ランタイムの計算処理 (2)
- 間接光計算の解説手順 (11)
- ショートデモ
- 間接光計算の解説手順 (12)
- 間接光計算の解説手順 (13)
- Light Probe
- Light Probe (2)
- Light Probeによるライティング
- Light Probeによるライティング (2)
- 間接光計算の解説手順 (14)
- Light Probeの計算
- 動的なLight Probe
- 動的なLight Probe (2)
- 間接光計算の解説手順 (15)
- デモ
- デモ詳細
- パフォーマンス
- まとめ
- 発表の流れ (5)
- シーン分割による高速化の解説手順
- シーン分割による高速化の解説手順 (2)
- 問題提起 (14)
- 問題提起 (24)
- 問題提起 (34)
- 問題提起 (44)
- シーン分割による高速化の解説手順 (3)
- シーン分割による高速化の解説手順 (4)
- キーアイディア (16)
- キーアイディア (26)
- キーアイディア (36)
- キーアイディア (46)
- キーアイディア (56)
- キーアイディア (66)
- シーン分割による高速化の解説手順 (5)
- 光の伝播行列の計算 (17)
- 光の伝播行列の計算 (27)
- 光の伝播行列の計算 (37)
- 光の伝播行列の計算 (47)
- 光の伝播行列の計算 (57)
- 光の伝播行列の計算 (67)
- 光の伝播行列の計算 (77)
- シーン分割による高速化の解説手順 (6)
- シーン分割による高速化の解説手順 (7)
- 多重反射への拡張
- シーン分割による高速化の解説手順 (8)
- モジュールの導入 (13)
- モジュールの導入 (23)
- モジュールの導入 (33)
- シーン分割による高速化の解説手順 (9)
- デモ (2)
- 考察
- 発表の流れ (6)
- 発表内容のまとめ
- 著作権について
- 最後に
- Appendix A 実装について
- Appendix A 前計算について
- Appendix A ランタイム
- Appendix A ランタイム 係数
- Appendix A ランタイム
- Appendix A ランタイム 最終パス
- Appendix A ランタイム Light Probe(1)
- Appendix A ランタイム Light Probe(2)
- Appendix B 後半の補足
- Appendix B 後半の補足 (2)
- Appendix C 記号の表記
-
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
キーアイディア ( 16 )
bull 小領域間の光の伝播を個別に計算
CEDEC 2012
キーアイディア ( 26 )
bull 例として右rArr(中央)rArr左へ伝播する光を考える
キーアイディアでは多重反射を考慮しない光の伝播を考える
CEDEC 2012
キーアイディア ( 36 )
bull 小領域間の光の伝播は頂点間の影響に帰着
CEDEC 2012
キーアイディア ( 46 )
bull 小領域間の光の伝播行列 P を前計算119820 伝播先の小領域の頂点数119821 伝播元の小領域の頂点数
光の伝播行列P
119820行119821列[iquest ]P
CEDEC 2012
キーアイディア ( 56 )
bull 光の伝播行列 P を利用して光の伝播を高速に計算
[ 119956120783⋮119956119925]
119852 伝播元の小領域の頂点の色119941 伝播先の小領域の頂点の色
119820行119821列[iquest ][ 119941120783
⋮119941119924
] timesiquest P119820 伝播先の小領域の頂点数119821 伝播元の小領域の頂点数
CEDEC 2012
キーアイディア ( 66 )
bull 光の伝播を係数からの変換に修正
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
bull ライトフィールドという概念を導入
光の伝播行列の計算 ( 17 )
ライトフィールドは任意の点群を通過する
光を体系的に記録するためのデータ構造
境界面に注目
CEDEC 2012
光の伝播行列の計算 ( 27 )
bull 光の伝播行列 P を三要素に分割1 光の出射行列 Pout2 光の通過行列 Pthrough3 光の入射行列 Pin
右の小領域 中央の小領域 左の小領域P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 37 )
bull 光の出射行列 Poutndash 小領域 rArr ライトフィールド
119819120783 出射ライトフィールドのサンプル数119821 伝播元の小領域の頂点数
iquest119819120783行iquest
⋮⋮
⋮4 5 9
6
8
CEDEC 2012
光の伝播行列の計算 ( 47 )
bull 光の通過行列 Pthroughndash ライトフィールド rArr ライトフィールド
119819120784 出射ライトフィールドのサンプル数119819120783入射ライトフィールドのサンプル数
iquest119819120784行iquest
⋮⋮
⋮5 8
2
5 ⋯
CEDEC 2012
光の伝播行列の計算 ( 57 )
bull 光の入射行列 Pinndash ライトフィールド rArr 小領域
119820伝播先の小領域の頂点数119819120784 入射ライトフィールドのサンプル数
iquest119820行iquest
⋮
2 5 6
1
5⋮
Pin 計算時にヘミキューブ法などを用いて立体角を考慮
CEDEC 2012
光の伝播行列の計算 ( 67 )
bull 全ての小領域間の光の伝播は三種類の行列の組み合わせで計算可能
P = Pin times Pout上記例ではは再利用不可能だがは共通
P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 77 )
bull 光の伝播の計算のまとめ
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
多重反射への拡張
bull 間接光計算を反復実行
⋮
間接光計算
間接光計算
間接光計算
直接光
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
モジュールの導入 ( 13 )
bull モジュール( = 再利用可能な汎用小領域)の導入
bull 上記のようなシーンは「回転」も考慮すれば5種の立方体モジュールの組合わせで構成可能
3 方向壁 2 方向壁 2 方向壁 1 方向壁 0 方向壁
CEDEC 2012
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
モジュールの導入 ( 23 )
通過行列は(直進 右折 左折)の三種類
ライトフィールドデータを一つの行列に格納
特異値分解
データ量の削減及び計算の高速化
詳しくは論文 51 節参照
CEDEC 2012
モジュールの導入 ( 33 )
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
メリットは多いがシーンの自由度とのトレードオフ
モジュールの使い所は要検討
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
デモ
CEDEC 2012
考察
bull ライトフィールドは本当に必要か
bull 小領域間の位置関係が固定ならば(恐らく)不要
rArr レイトレーシング法で伝播行列 P を直接計算 した方が効率的bull 小領域を動的に入れ替える場合は必要
P = Pin times Pthrough times Pout
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ 3 まとめ
CEDEC 2012
発表内容のまとめ
bull Modular Radiance Transfer 法を解説ndash 長所
bull とにかく高速bull 多重反射を含んだ間接光が扱えるbull 技術のコア部分は汎用的で応用の余地が高い
ndash 短所bull 前計算を含め使い方に癖がある ( 実験を通してノウハウを蓄積すれば余り問題にならない )
ゲームへの応用は十分可能
CEDEC 2012
本スライド内で引用した論文の図の著作権は全て論文著者に帰属します
その他の図スライド本体挿絵等の著作権は
シリコンスタジオ株式会社に帰属します
著作権について
CEDEC 2012
最後に
御清聴ありがとうございました
httpwwwsiliconstudiocojppresentationsindexhtml
スライドデモは弊社 HP で近日公開
制作協力 河野 駿介 辻 俊晶 古家 亙 後藤 晋也 京田 文人 三谷 健一郎
問い合わせ先 田村 nk-tamurasiliconstudiocojp 安田 re-yasudasiliconstudiocojp
シリコンスタジオは常に人材を求めています
ご興味ある方は弊社 HP をご覧ください
CEDEC 2012
Appendix A 実装について
bull 実装自体は様々なアプローチが可能bull ここではデモの実装でのアプローチを紹介
CEDEC 2012
Appendix A 前計算について
bull F の計算ndash メッシュの全頂点からキューブマップにレンダリングndash ピクセルには頂点 ID とウェイトを出力
bull 直接光サンプルの計算ndash 頂点カラーを Stream Out でバッファに出力ndash 頂点シャドウあり
bull Light Probe の計算ndash 各 Probe の中心からキューブマップにレンダリングndash の対応する基底ベクトル同士を足し合わせた
ベクトル ( 直接光 + 間接光 ) を頂点カラーとして使用
CEDEC 2012
Appendix A ランタイム
bull 直接光の結果を Stream Out でバッファに出力ndash 頂点シャドウありndash カラーバッファへの書き込み OFFndash 複数オブジェクトの場合は単一バッファにオフ
セットを変えて出力
119897119889
CEDEC 2012
Appendix A ランタイム 係数
bull Compute Shader で を計算ndash は極めて横長の行列 ( 行 ~100程度 列 頂点数 )ndash は GPU が少々苦手な処理ではあるものの
タイリングベースの実装で高速に処理可能
iquest
119897119889119960 lowast119861119889minus1
CEDEC 2012
Appendix A ランタイム
bull Compute Shader で を計算ndash は極めて縦長 ( の転置と同サイズ ) なので素直に実装可能
iquest
119861119894119899119889 119960119897119894119899 119889 lowast
CEDEC 2012
Appendix A ランタイム 最終パス
bull を頂点カラーとして入力としてピクセル単位の直接光のシェーディングと合成して最終結果を得る
iquest +
CEDEC 2012
Appendix A ランタイム Light Probe(1)
bull Compute Shader でを計算ndash は縦長 ( 行 頂点数 timesSH係数の数 列 ~100程度 )
iquest
119880119907119900119897 119960119897119907119900119897 lowast
CEDEC 2012
Appendix A ランタイム Light Probe(2)
bull Probe を用いて Dynamic Objects をライティングndash 各 Light Probe が SH を 9係数で保持するため
3D Texture ではなく Structured-Buffer で保持ndash Vertex Shader 内で自力 Tri-Linear 補間
iquest +
CEDEC 2012
Appendix B 後半の補足
bull 大規模なシーンでの光の伝播bull 小領域間の光の伝播は個別に総当たりで計算
rArr小領域間の光の伝播は距離によって大きく減衰
実際は大規模シーンでも概ね二つ隣の小領域まで考慮すれば十分
CEDEC 2012
Appendix B 後半の補足
bull 小領域の境界
bull 小領域の境界部分が不連続になる rArr 小領域の境界部分は補間の必要がある
CEDEC 2012
bull スライドと論文で表記が違う記号があります
Appendix C 記号の表記
スライドでの表記 論文での表記
b
- Slide 1
- 発表の流れ
- 発表の流れ (2)
- 発表の概要
- 解説技術の特徴
- 注意点
- 発表の流れ (3)
- 発表の流れ (4)
- 間接光の概要
- 間接光の概要 (2)
- 解説手法の計算概要
- 間接光計算の解説手順
- 間接光計算の解説手順 (2)
- 間接光計算の解説手順 (3)
- 間接光計算の解説手順 (4)
- 間接光計算の解説手順 (5)
- 間接光計算の解説手順 (6)
- 間接光計算の考え方
- 間接光計算の考え方 (2)
- 間接光計算の考え方 (3)
- 間接光計算の考え方 (4)
- 間接光計算の考え方 (5)
- 間接光計算の解説手順 (7)
- 問題提起
- 間接光計算の解説手順 (8)
- キーアイディア
- キーアイディア (2)
- キーアイディア (3)
- キーアイディア (4)
- キーアイディア (5)
- キーアイディア (6)
- 間接光計算の解説手順 (9)
- 間接光計算の解説手順 (10)
- を求める
- を求める (2)
- を求める (3)
- 最適な基底
- サンプリングベースの基底
- サンプルの選び方について
- サンプリング行列
- サンプリング行列 (2)
- サンプリング行列 (3)
- サンプリング行列 (4)
- サンプリング行列 (5)
- サンプリング行列 (6)
- サンプリング行列 (7)
- 特異値分解(Singular Value Decomposition)
- 特異値分解(Singular Value Decomposition) (2)
- 特異値分解(Singular Value Decomposition) (3)
- 特異値分解(Singular Value Decomposition) (4)
- 特異値分解(Singular Value Decomposition) (5)
- 基底による直接光の近似
- アプローチの比較
- ハイブリッド手法の計算手順
- 係数の数の比較
- ランタイムの計算処理
- 係数の計算方法
- ランタイムの計算処理 (2)
- 間接光計算の解説手順 (11)
- ショートデモ
- 間接光計算の解説手順 (12)
- 間接光計算の解説手順 (13)
- Light Probe
- Light Probe (2)
- Light Probeによるライティング
- Light Probeによるライティング (2)
- 間接光計算の解説手順 (14)
- Light Probeの計算
- 動的なLight Probe
- 動的なLight Probe (2)
- 間接光計算の解説手順 (15)
- デモ
- デモ詳細
- パフォーマンス
- まとめ
- 発表の流れ (5)
- シーン分割による高速化の解説手順
- シーン分割による高速化の解説手順 (2)
- 問題提起 (14)
- 問題提起 (24)
- 問題提起 (34)
- 問題提起 (44)
- シーン分割による高速化の解説手順 (3)
- シーン分割による高速化の解説手順 (4)
- キーアイディア (16)
- キーアイディア (26)
- キーアイディア (36)
- キーアイディア (46)
- キーアイディア (56)
- キーアイディア (66)
- シーン分割による高速化の解説手順 (5)
- 光の伝播行列の計算 (17)
- 光の伝播行列の計算 (27)
- 光の伝播行列の計算 (37)
- 光の伝播行列の計算 (47)
- 光の伝播行列の計算 (57)
- 光の伝播行列の計算 (67)
- 光の伝播行列の計算 (77)
- シーン分割による高速化の解説手順 (6)
- シーン分割による高速化の解説手順 (7)
- 多重反射への拡張
- シーン分割による高速化の解説手順 (8)
- モジュールの導入 (13)
- モジュールの導入 (23)
- モジュールの導入 (33)
- シーン分割による高速化の解説手順 (9)
- デモ (2)
- 考察
- 発表の流れ (6)
- 発表内容のまとめ
- 著作権について
- 最後に
- Appendix A 実装について
- Appendix A 前計算について
- Appendix A ランタイム
- Appendix A ランタイム 係数
- Appendix A ランタイム
- Appendix A ランタイム 最終パス
- Appendix A ランタイム Light Probe(1)
- Appendix A ランタイム Light Probe(2)
- Appendix B 後半の補足
- Appendix B 後半の補足 (2)
- Appendix C 記号の表記
-
CEDEC 2012
キーアイディア ( 16 )
bull 小領域間の光の伝播を個別に計算
CEDEC 2012
キーアイディア ( 26 )
bull 例として右rArr(中央)rArr左へ伝播する光を考える
キーアイディアでは多重反射を考慮しない光の伝播を考える
CEDEC 2012
キーアイディア ( 36 )
bull 小領域間の光の伝播は頂点間の影響に帰着
CEDEC 2012
キーアイディア ( 46 )
bull 小領域間の光の伝播行列 P を前計算119820 伝播先の小領域の頂点数119821 伝播元の小領域の頂点数
光の伝播行列P
119820行119821列[iquest ]P
CEDEC 2012
キーアイディア ( 56 )
bull 光の伝播行列 P を利用して光の伝播を高速に計算
[ 119956120783⋮119956119925]
119852 伝播元の小領域の頂点の色119941 伝播先の小領域の頂点の色
119820行119821列[iquest ][ 119941120783
⋮119941119924
] timesiquest P119820 伝播先の小領域の頂点数119821 伝播元の小領域の頂点数
CEDEC 2012
キーアイディア ( 66 )
bull 光の伝播を係数からの変換に修正
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
bull ライトフィールドという概念を導入
光の伝播行列の計算 ( 17 )
ライトフィールドは任意の点群を通過する
光を体系的に記録するためのデータ構造
境界面に注目
CEDEC 2012
光の伝播行列の計算 ( 27 )
bull 光の伝播行列 P を三要素に分割1 光の出射行列 Pout2 光の通過行列 Pthrough3 光の入射行列 Pin
右の小領域 中央の小領域 左の小領域P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 37 )
bull 光の出射行列 Poutndash 小領域 rArr ライトフィールド
119819120783 出射ライトフィールドのサンプル数119821 伝播元の小領域の頂点数
iquest119819120783行iquest
⋮⋮
⋮4 5 9
6
8
CEDEC 2012
光の伝播行列の計算 ( 47 )
bull 光の通過行列 Pthroughndash ライトフィールド rArr ライトフィールド
119819120784 出射ライトフィールドのサンプル数119819120783入射ライトフィールドのサンプル数
iquest119819120784行iquest
⋮⋮
⋮5 8
2
5 ⋯
CEDEC 2012
光の伝播行列の計算 ( 57 )
bull 光の入射行列 Pinndash ライトフィールド rArr 小領域
119820伝播先の小領域の頂点数119819120784 入射ライトフィールドのサンプル数
iquest119820行iquest
⋮
2 5 6
1
5⋮
Pin 計算時にヘミキューブ法などを用いて立体角を考慮
CEDEC 2012
光の伝播行列の計算 ( 67 )
bull 全ての小領域間の光の伝播は三種類の行列の組み合わせで計算可能
P = Pin times Pout上記例ではは再利用不可能だがは共通
P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 77 )
bull 光の伝播の計算のまとめ
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
多重反射への拡張
bull 間接光計算を反復実行
⋮
間接光計算
間接光計算
間接光計算
直接光
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
モジュールの導入 ( 13 )
bull モジュール( = 再利用可能な汎用小領域)の導入
bull 上記のようなシーンは「回転」も考慮すれば5種の立方体モジュールの組合わせで構成可能
3 方向壁 2 方向壁 2 方向壁 1 方向壁 0 方向壁
CEDEC 2012
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
モジュールの導入 ( 23 )
通過行列は(直進 右折 左折)の三種類
ライトフィールドデータを一つの行列に格納
特異値分解
データ量の削減及び計算の高速化
詳しくは論文 51 節参照
CEDEC 2012
モジュールの導入 ( 33 )
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
メリットは多いがシーンの自由度とのトレードオフ
モジュールの使い所は要検討
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
デモ
CEDEC 2012
考察
bull ライトフィールドは本当に必要か
bull 小領域間の位置関係が固定ならば(恐らく)不要
rArr レイトレーシング法で伝播行列 P を直接計算 した方が効率的bull 小領域を動的に入れ替える場合は必要
P = Pin times Pthrough times Pout
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ 3 まとめ
CEDEC 2012
発表内容のまとめ
bull Modular Radiance Transfer 法を解説ndash 長所
bull とにかく高速bull 多重反射を含んだ間接光が扱えるbull 技術のコア部分は汎用的で応用の余地が高い
ndash 短所bull 前計算を含め使い方に癖がある ( 実験を通してノウハウを蓄積すれば余り問題にならない )
ゲームへの応用は十分可能
CEDEC 2012
本スライド内で引用した論文の図の著作権は全て論文著者に帰属します
その他の図スライド本体挿絵等の著作権は
シリコンスタジオ株式会社に帰属します
著作権について
CEDEC 2012
最後に
御清聴ありがとうございました
httpwwwsiliconstudiocojppresentationsindexhtml
スライドデモは弊社 HP で近日公開
制作協力 河野 駿介 辻 俊晶 古家 亙 後藤 晋也 京田 文人 三谷 健一郎
問い合わせ先 田村 nk-tamurasiliconstudiocojp 安田 re-yasudasiliconstudiocojp
シリコンスタジオは常に人材を求めています
ご興味ある方は弊社 HP をご覧ください
CEDEC 2012
Appendix A 実装について
bull 実装自体は様々なアプローチが可能bull ここではデモの実装でのアプローチを紹介
CEDEC 2012
Appendix A 前計算について
bull F の計算ndash メッシュの全頂点からキューブマップにレンダリングndash ピクセルには頂点 ID とウェイトを出力
bull 直接光サンプルの計算ndash 頂点カラーを Stream Out でバッファに出力ndash 頂点シャドウあり
bull Light Probe の計算ndash 各 Probe の中心からキューブマップにレンダリングndash の対応する基底ベクトル同士を足し合わせた
ベクトル ( 直接光 + 間接光 ) を頂点カラーとして使用
CEDEC 2012
Appendix A ランタイム
bull 直接光の結果を Stream Out でバッファに出力ndash 頂点シャドウありndash カラーバッファへの書き込み OFFndash 複数オブジェクトの場合は単一バッファにオフ
セットを変えて出力
119897119889
CEDEC 2012
Appendix A ランタイム 係数
bull Compute Shader で を計算ndash は極めて横長の行列 ( 行 ~100程度 列 頂点数 )ndash は GPU が少々苦手な処理ではあるものの
タイリングベースの実装で高速に処理可能
iquest
119897119889119960 lowast119861119889minus1
CEDEC 2012
Appendix A ランタイム
bull Compute Shader で を計算ndash は極めて縦長 ( の転置と同サイズ ) なので素直に実装可能
iquest
119861119894119899119889 119960119897119894119899 119889 lowast
CEDEC 2012
Appendix A ランタイム 最終パス
bull を頂点カラーとして入力としてピクセル単位の直接光のシェーディングと合成して最終結果を得る
iquest +
CEDEC 2012
Appendix A ランタイム Light Probe(1)
bull Compute Shader でを計算ndash は縦長 ( 行 頂点数 timesSH係数の数 列 ~100程度 )
iquest
119880119907119900119897 119960119897119907119900119897 lowast
CEDEC 2012
Appendix A ランタイム Light Probe(2)
bull Probe を用いて Dynamic Objects をライティングndash 各 Light Probe が SH を 9係数で保持するため
3D Texture ではなく Structured-Buffer で保持ndash Vertex Shader 内で自力 Tri-Linear 補間
iquest +
CEDEC 2012
Appendix B 後半の補足
bull 大規模なシーンでの光の伝播bull 小領域間の光の伝播は個別に総当たりで計算
rArr小領域間の光の伝播は距離によって大きく減衰
実際は大規模シーンでも概ね二つ隣の小領域まで考慮すれば十分
CEDEC 2012
Appendix B 後半の補足
bull 小領域の境界
bull 小領域の境界部分が不連続になる rArr 小領域の境界部分は補間の必要がある
CEDEC 2012
bull スライドと論文で表記が違う記号があります
Appendix C 記号の表記
スライドでの表記 論文での表記
b
- Slide 1
- 発表の流れ
- 発表の流れ (2)
- 発表の概要
- 解説技術の特徴
- 注意点
- 発表の流れ (3)
- 発表の流れ (4)
- 間接光の概要
- 間接光の概要 (2)
- 解説手法の計算概要
- 間接光計算の解説手順
- 間接光計算の解説手順 (2)
- 間接光計算の解説手順 (3)
- 間接光計算の解説手順 (4)
- 間接光計算の解説手順 (5)
- 間接光計算の解説手順 (6)
- 間接光計算の考え方
- 間接光計算の考え方 (2)
- 間接光計算の考え方 (3)
- 間接光計算の考え方 (4)
- 間接光計算の考え方 (5)
- 間接光計算の解説手順 (7)
- 問題提起
- 間接光計算の解説手順 (8)
- キーアイディア
- キーアイディア (2)
- キーアイディア (3)
- キーアイディア (4)
- キーアイディア (5)
- キーアイディア (6)
- 間接光計算の解説手順 (9)
- 間接光計算の解説手順 (10)
- を求める
- を求める (2)
- を求める (3)
- 最適な基底
- サンプリングベースの基底
- サンプルの選び方について
- サンプリング行列
- サンプリング行列 (2)
- サンプリング行列 (3)
- サンプリング行列 (4)
- サンプリング行列 (5)
- サンプリング行列 (6)
- サンプリング行列 (7)
- 特異値分解(Singular Value Decomposition)
- 特異値分解(Singular Value Decomposition) (2)
- 特異値分解(Singular Value Decomposition) (3)
- 特異値分解(Singular Value Decomposition) (4)
- 特異値分解(Singular Value Decomposition) (5)
- 基底による直接光の近似
- アプローチの比較
- ハイブリッド手法の計算手順
- 係数の数の比較
- ランタイムの計算処理
- 係数の計算方法
- ランタイムの計算処理 (2)
- 間接光計算の解説手順 (11)
- ショートデモ
- 間接光計算の解説手順 (12)
- 間接光計算の解説手順 (13)
- Light Probe
- Light Probe (2)
- Light Probeによるライティング
- Light Probeによるライティング (2)
- 間接光計算の解説手順 (14)
- Light Probeの計算
- 動的なLight Probe
- 動的なLight Probe (2)
- 間接光計算の解説手順 (15)
- デモ
- デモ詳細
- パフォーマンス
- まとめ
- 発表の流れ (5)
- シーン分割による高速化の解説手順
- シーン分割による高速化の解説手順 (2)
- 問題提起 (14)
- 問題提起 (24)
- 問題提起 (34)
- 問題提起 (44)
- シーン分割による高速化の解説手順 (3)
- シーン分割による高速化の解説手順 (4)
- キーアイディア (16)
- キーアイディア (26)
- キーアイディア (36)
- キーアイディア (46)
- キーアイディア (56)
- キーアイディア (66)
- シーン分割による高速化の解説手順 (5)
- 光の伝播行列の計算 (17)
- 光の伝播行列の計算 (27)
- 光の伝播行列の計算 (37)
- 光の伝播行列の計算 (47)
- 光の伝播行列の計算 (57)
- 光の伝播行列の計算 (67)
- 光の伝播行列の計算 (77)
- シーン分割による高速化の解説手順 (6)
- シーン分割による高速化の解説手順 (7)
- 多重反射への拡張
- シーン分割による高速化の解説手順 (8)
- モジュールの導入 (13)
- モジュールの導入 (23)
- モジュールの導入 (33)
- シーン分割による高速化の解説手順 (9)
- デモ (2)
- 考察
- 発表の流れ (6)
- 発表内容のまとめ
- 著作権について
- 最後に
- Appendix A 実装について
- Appendix A 前計算について
- Appendix A ランタイム
- Appendix A ランタイム 係数
- Appendix A ランタイム
- Appendix A ランタイム 最終パス
- Appendix A ランタイム Light Probe(1)
- Appendix A ランタイム Light Probe(2)
- Appendix B 後半の補足
- Appendix B 後半の補足 (2)
- Appendix C 記号の表記
-
CEDEC 2012
キーアイディア ( 26 )
bull 例として右rArr(中央)rArr左へ伝播する光を考える
キーアイディアでは多重反射を考慮しない光の伝播を考える
CEDEC 2012
キーアイディア ( 36 )
bull 小領域間の光の伝播は頂点間の影響に帰着
CEDEC 2012
キーアイディア ( 46 )
bull 小領域間の光の伝播行列 P を前計算119820 伝播先の小領域の頂点数119821 伝播元の小領域の頂点数
光の伝播行列P
119820行119821列[iquest ]P
CEDEC 2012
キーアイディア ( 56 )
bull 光の伝播行列 P を利用して光の伝播を高速に計算
[ 119956120783⋮119956119925]
119852 伝播元の小領域の頂点の色119941 伝播先の小領域の頂点の色
119820行119821列[iquest ][ 119941120783
⋮119941119924
] timesiquest P119820 伝播先の小領域の頂点数119821 伝播元の小領域の頂点数
CEDEC 2012
キーアイディア ( 66 )
bull 光の伝播を係数からの変換に修正
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
bull ライトフィールドという概念を導入
光の伝播行列の計算 ( 17 )
ライトフィールドは任意の点群を通過する
光を体系的に記録するためのデータ構造
境界面に注目
CEDEC 2012
光の伝播行列の計算 ( 27 )
bull 光の伝播行列 P を三要素に分割1 光の出射行列 Pout2 光の通過行列 Pthrough3 光の入射行列 Pin
右の小領域 中央の小領域 左の小領域P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 37 )
bull 光の出射行列 Poutndash 小領域 rArr ライトフィールド
119819120783 出射ライトフィールドのサンプル数119821 伝播元の小領域の頂点数
iquest119819120783行iquest
⋮⋮
⋮4 5 9
6
8
CEDEC 2012
光の伝播行列の計算 ( 47 )
bull 光の通過行列 Pthroughndash ライトフィールド rArr ライトフィールド
119819120784 出射ライトフィールドのサンプル数119819120783入射ライトフィールドのサンプル数
iquest119819120784行iquest
⋮⋮
⋮5 8
2
5 ⋯
CEDEC 2012
光の伝播行列の計算 ( 57 )
bull 光の入射行列 Pinndash ライトフィールド rArr 小領域
119820伝播先の小領域の頂点数119819120784 入射ライトフィールドのサンプル数
iquest119820行iquest
⋮
2 5 6
1
5⋮
Pin 計算時にヘミキューブ法などを用いて立体角を考慮
CEDEC 2012
光の伝播行列の計算 ( 67 )
bull 全ての小領域間の光の伝播は三種類の行列の組み合わせで計算可能
P = Pin times Pout上記例ではは再利用不可能だがは共通
P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 77 )
bull 光の伝播の計算のまとめ
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
多重反射への拡張
bull 間接光計算を反復実行
⋮
間接光計算
間接光計算
間接光計算
直接光
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
モジュールの導入 ( 13 )
bull モジュール( = 再利用可能な汎用小領域)の導入
bull 上記のようなシーンは「回転」も考慮すれば5種の立方体モジュールの組合わせで構成可能
3 方向壁 2 方向壁 2 方向壁 1 方向壁 0 方向壁
CEDEC 2012
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
モジュールの導入 ( 23 )
通過行列は(直進 右折 左折)の三種類
ライトフィールドデータを一つの行列に格納
特異値分解
データ量の削減及び計算の高速化
詳しくは論文 51 節参照
CEDEC 2012
モジュールの導入 ( 33 )
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
メリットは多いがシーンの自由度とのトレードオフ
モジュールの使い所は要検討
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
デモ
CEDEC 2012
考察
bull ライトフィールドは本当に必要か
bull 小領域間の位置関係が固定ならば(恐らく)不要
rArr レイトレーシング法で伝播行列 P を直接計算 した方が効率的bull 小領域を動的に入れ替える場合は必要
P = Pin times Pthrough times Pout
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ 3 まとめ
CEDEC 2012
発表内容のまとめ
bull Modular Radiance Transfer 法を解説ndash 長所
bull とにかく高速bull 多重反射を含んだ間接光が扱えるbull 技術のコア部分は汎用的で応用の余地が高い
ndash 短所bull 前計算を含め使い方に癖がある ( 実験を通してノウハウを蓄積すれば余り問題にならない )
ゲームへの応用は十分可能
CEDEC 2012
本スライド内で引用した論文の図の著作権は全て論文著者に帰属します
その他の図スライド本体挿絵等の著作権は
シリコンスタジオ株式会社に帰属します
著作権について
CEDEC 2012
最後に
御清聴ありがとうございました
httpwwwsiliconstudiocojppresentationsindexhtml
スライドデモは弊社 HP で近日公開
制作協力 河野 駿介 辻 俊晶 古家 亙 後藤 晋也 京田 文人 三谷 健一郎
問い合わせ先 田村 nk-tamurasiliconstudiocojp 安田 re-yasudasiliconstudiocojp
シリコンスタジオは常に人材を求めています
ご興味ある方は弊社 HP をご覧ください
CEDEC 2012
Appendix A 実装について
bull 実装自体は様々なアプローチが可能bull ここではデモの実装でのアプローチを紹介
CEDEC 2012
Appendix A 前計算について
bull F の計算ndash メッシュの全頂点からキューブマップにレンダリングndash ピクセルには頂点 ID とウェイトを出力
bull 直接光サンプルの計算ndash 頂点カラーを Stream Out でバッファに出力ndash 頂点シャドウあり
bull Light Probe の計算ndash 各 Probe の中心からキューブマップにレンダリングndash の対応する基底ベクトル同士を足し合わせた
ベクトル ( 直接光 + 間接光 ) を頂点カラーとして使用
CEDEC 2012
Appendix A ランタイム
bull 直接光の結果を Stream Out でバッファに出力ndash 頂点シャドウありndash カラーバッファへの書き込み OFFndash 複数オブジェクトの場合は単一バッファにオフ
セットを変えて出力
119897119889
CEDEC 2012
Appendix A ランタイム 係数
bull Compute Shader で を計算ndash は極めて横長の行列 ( 行 ~100程度 列 頂点数 )ndash は GPU が少々苦手な処理ではあるものの
タイリングベースの実装で高速に処理可能
iquest
119897119889119960 lowast119861119889minus1
CEDEC 2012
Appendix A ランタイム
bull Compute Shader で を計算ndash は極めて縦長 ( の転置と同サイズ ) なので素直に実装可能
iquest
119861119894119899119889 119960119897119894119899 119889 lowast
CEDEC 2012
Appendix A ランタイム 最終パス
bull を頂点カラーとして入力としてピクセル単位の直接光のシェーディングと合成して最終結果を得る
iquest +
CEDEC 2012
Appendix A ランタイム Light Probe(1)
bull Compute Shader でを計算ndash は縦長 ( 行 頂点数 timesSH係数の数 列 ~100程度 )
iquest
119880119907119900119897 119960119897119907119900119897 lowast
CEDEC 2012
Appendix A ランタイム Light Probe(2)
bull Probe を用いて Dynamic Objects をライティングndash 各 Light Probe が SH を 9係数で保持するため
3D Texture ではなく Structured-Buffer で保持ndash Vertex Shader 内で自力 Tri-Linear 補間
iquest +
CEDEC 2012
Appendix B 後半の補足
bull 大規模なシーンでの光の伝播bull 小領域間の光の伝播は個別に総当たりで計算
rArr小領域間の光の伝播は距離によって大きく減衰
実際は大規模シーンでも概ね二つ隣の小領域まで考慮すれば十分
CEDEC 2012
Appendix B 後半の補足
bull 小領域の境界
bull 小領域の境界部分が不連続になる rArr 小領域の境界部分は補間の必要がある
CEDEC 2012
bull スライドと論文で表記が違う記号があります
Appendix C 記号の表記
スライドでの表記 論文での表記
b
- Slide 1
- 発表の流れ
- 発表の流れ (2)
- 発表の概要
- 解説技術の特徴
- 注意点
- 発表の流れ (3)
- 発表の流れ (4)
- 間接光の概要
- 間接光の概要 (2)
- 解説手法の計算概要
- 間接光計算の解説手順
- 間接光計算の解説手順 (2)
- 間接光計算の解説手順 (3)
- 間接光計算の解説手順 (4)
- 間接光計算の解説手順 (5)
- 間接光計算の解説手順 (6)
- 間接光計算の考え方
- 間接光計算の考え方 (2)
- 間接光計算の考え方 (3)
- 間接光計算の考え方 (4)
- 間接光計算の考え方 (5)
- 間接光計算の解説手順 (7)
- 問題提起
- 間接光計算の解説手順 (8)
- キーアイディア
- キーアイディア (2)
- キーアイディア (3)
- キーアイディア (4)
- キーアイディア (5)
- キーアイディア (6)
- 間接光計算の解説手順 (9)
- 間接光計算の解説手順 (10)
- を求める
- を求める (2)
- を求める (3)
- 最適な基底
- サンプリングベースの基底
- サンプルの選び方について
- サンプリング行列
- サンプリング行列 (2)
- サンプリング行列 (3)
- サンプリング行列 (4)
- サンプリング行列 (5)
- サンプリング行列 (6)
- サンプリング行列 (7)
- 特異値分解(Singular Value Decomposition)
- 特異値分解(Singular Value Decomposition) (2)
- 特異値分解(Singular Value Decomposition) (3)
- 特異値分解(Singular Value Decomposition) (4)
- 特異値分解(Singular Value Decomposition) (5)
- 基底による直接光の近似
- アプローチの比較
- ハイブリッド手法の計算手順
- 係数の数の比較
- ランタイムの計算処理
- 係数の計算方法
- ランタイムの計算処理 (2)
- 間接光計算の解説手順 (11)
- ショートデモ
- 間接光計算の解説手順 (12)
- 間接光計算の解説手順 (13)
- Light Probe
- Light Probe (2)
- Light Probeによるライティング
- Light Probeによるライティング (2)
- 間接光計算の解説手順 (14)
- Light Probeの計算
- 動的なLight Probe
- 動的なLight Probe (2)
- 間接光計算の解説手順 (15)
- デモ
- デモ詳細
- パフォーマンス
- まとめ
- 発表の流れ (5)
- シーン分割による高速化の解説手順
- シーン分割による高速化の解説手順 (2)
- 問題提起 (14)
- 問題提起 (24)
- 問題提起 (34)
- 問題提起 (44)
- シーン分割による高速化の解説手順 (3)
- シーン分割による高速化の解説手順 (4)
- キーアイディア (16)
- キーアイディア (26)
- キーアイディア (36)
- キーアイディア (46)
- キーアイディア (56)
- キーアイディア (66)
- シーン分割による高速化の解説手順 (5)
- 光の伝播行列の計算 (17)
- 光の伝播行列の計算 (27)
- 光の伝播行列の計算 (37)
- 光の伝播行列の計算 (47)
- 光の伝播行列の計算 (57)
- 光の伝播行列の計算 (67)
- 光の伝播行列の計算 (77)
- シーン分割による高速化の解説手順 (6)
- シーン分割による高速化の解説手順 (7)
- 多重反射への拡張
- シーン分割による高速化の解説手順 (8)
- モジュールの導入 (13)
- モジュールの導入 (23)
- モジュールの導入 (33)
- シーン分割による高速化の解説手順 (9)
- デモ (2)
- 考察
- 発表の流れ (6)
- 発表内容のまとめ
- 著作権について
- 最後に
- Appendix A 実装について
- Appendix A 前計算について
- Appendix A ランタイム
- Appendix A ランタイム 係数
- Appendix A ランタイム
- Appendix A ランタイム 最終パス
- Appendix A ランタイム Light Probe(1)
- Appendix A ランタイム Light Probe(2)
- Appendix B 後半の補足
- Appendix B 後半の補足 (2)
- Appendix C 記号の表記
-
CEDEC 2012
キーアイディア ( 36 )
bull 小領域間の光の伝播は頂点間の影響に帰着
CEDEC 2012
キーアイディア ( 46 )
bull 小領域間の光の伝播行列 P を前計算119820 伝播先の小領域の頂点数119821 伝播元の小領域の頂点数
光の伝播行列P
119820行119821列[iquest ]P
CEDEC 2012
キーアイディア ( 56 )
bull 光の伝播行列 P を利用して光の伝播を高速に計算
[ 119956120783⋮119956119925]
119852 伝播元の小領域の頂点の色119941 伝播先の小領域の頂点の色
119820行119821列[iquest ][ 119941120783
⋮119941119924
] timesiquest P119820 伝播先の小領域の頂点数119821 伝播元の小領域の頂点数
CEDEC 2012
キーアイディア ( 66 )
bull 光の伝播を係数からの変換に修正
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
bull ライトフィールドという概念を導入
光の伝播行列の計算 ( 17 )
ライトフィールドは任意の点群を通過する
光を体系的に記録するためのデータ構造
境界面に注目
CEDEC 2012
光の伝播行列の計算 ( 27 )
bull 光の伝播行列 P を三要素に分割1 光の出射行列 Pout2 光の通過行列 Pthrough3 光の入射行列 Pin
右の小領域 中央の小領域 左の小領域P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 37 )
bull 光の出射行列 Poutndash 小領域 rArr ライトフィールド
119819120783 出射ライトフィールドのサンプル数119821 伝播元の小領域の頂点数
iquest119819120783行iquest
⋮⋮
⋮4 5 9
6
8
CEDEC 2012
光の伝播行列の計算 ( 47 )
bull 光の通過行列 Pthroughndash ライトフィールド rArr ライトフィールド
119819120784 出射ライトフィールドのサンプル数119819120783入射ライトフィールドのサンプル数
iquest119819120784行iquest
⋮⋮
⋮5 8
2
5 ⋯
CEDEC 2012
光の伝播行列の計算 ( 57 )
bull 光の入射行列 Pinndash ライトフィールド rArr 小領域
119820伝播先の小領域の頂点数119819120784 入射ライトフィールドのサンプル数
iquest119820行iquest
⋮
2 5 6
1
5⋮
Pin 計算時にヘミキューブ法などを用いて立体角を考慮
CEDEC 2012
光の伝播行列の計算 ( 67 )
bull 全ての小領域間の光の伝播は三種類の行列の組み合わせで計算可能
P = Pin times Pout上記例ではは再利用不可能だがは共通
P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 77 )
bull 光の伝播の計算のまとめ
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
多重反射への拡張
bull 間接光計算を反復実行
⋮
間接光計算
間接光計算
間接光計算
直接光
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
モジュールの導入 ( 13 )
bull モジュール( = 再利用可能な汎用小領域)の導入
bull 上記のようなシーンは「回転」も考慮すれば5種の立方体モジュールの組合わせで構成可能
3 方向壁 2 方向壁 2 方向壁 1 方向壁 0 方向壁
CEDEC 2012
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
モジュールの導入 ( 23 )
通過行列は(直進 右折 左折)の三種類
ライトフィールドデータを一つの行列に格納
特異値分解
データ量の削減及び計算の高速化
詳しくは論文 51 節参照
CEDEC 2012
モジュールの導入 ( 33 )
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
メリットは多いがシーンの自由度とのトレードオフ
モジュールの使い所は要検討
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
デモ
CEDEC 2012
考察
bull ライトフィールドは本当に必要か
bull 小領域間の位置関係が固定ならば(恐らく)不要
rArr レイトレーシング法で伝播行列 P を直接計算 した方が効率的bull 小領域を動的に入れ替える場合は必要
P = Pin times Pthrough times Pout
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ 3 まとめ
CEDEC 2012
発表内容のまとめ
bull Modular Radiance Transfer 法を解説ndash 長所
bull とにかく高速bull 多重反射を含んだ間接光が扱えるbull 技術のコア部分は汎用的で応用の余地が高い
ndash 短所bull 前計算を含め使い方に癖がある ( 実験を通してノウハウを蓄積すれば余り問題にならない )
ゲームへの応用は十分可能
CEDEC 2012
本スライド内で引用した論文の図の著作権は全て論文著者に帰属します
その他の図スライド本体挿絵等の著作権は
シリコンスタジオ株式会社に帰属します
著作権について
CEDEC 2012
最後に
御清聴ありがとうございました
httpwwwsiliconstudiocojppresentationsindexhtml
スライドデモは弊社 HP で近日公開
制作協力 河野 駿介 辻 俊晶 古家 亙 後藤 晋也 京田 文人 三谷 健一郎
問い合わせ先 田村 nk-tamurasiliconstudiocojp 安田 re-yasudasiliconstudiocojp
シリコンスタジオは常に人材を求めています
ご興味ある方は弊社 HP をご覧ください
CEDEC 2012
Appendix A 実装について
bull 実装自体は様々なアプローチが可能bull ここではデモの実装でのアプローチを紹介
CEDEC 2012
Appendix A 前計算について
bull F の計算ndash メッシュの全頂点からキューブマップにレンダリングndash ピクセルには頂点 ID とウェイトを出力
bull 直接光サンプルの計算ndash 頂点カラーを Stream Out でバッファに出力ndash 頂点シャドウあり
bull Light Probe の計算ndash 各 Probe の中心からキューブマップにレンダリングndash の対応する基底ベクトル同士を足し合わせた
ベクトル ( 直接光 + 間接光 ) を頂点カラーとして使用
CEDEC 2012
Appendix A ランタイム
bull 直接光の結果を Stream Out でバッファに出力ndash 頂点シャドウありndash カラーバッファへの書き込み OFFndash 複数オブジェクトの場合は単一バッファにオフ
セットを変えて出力
119897119889
CEDEC 2012
Appendix A ランタイム 係数
bull Compute Shader で を計算ndash は極めて横長の行列 ( 行 ~100程度 列 頂点数 )ndash は GPU が少々苦手な処理ではあるものの
タイリングベースの実装で高速に処理可能
iquest
119897119889119960 lowast119861119889minus1
CEDEC 2012
Appendix A ランタイム
bull Compute Shader で を計算ndash は極めて縦長 ( の転置と同サイズ ) なので素直に実装可能
iquest
119861119894119899119889 119960119897119894119899 119889 lowast
CEDEC 2012
Appendix A ランタイム 最終パス
bull を頂点カラーとして入力としてピクセル単位の直接光のシェーディングと合成して最終結果を得る
iquest +
CEDEC 2012
Appendix A ランタイム Light Probe(1)
bull Compute Shader でを計算ndash は縦長 ( 行 頂点数 timesSH係数の数 列 ~100程度 )
iquest
119880119907119900119897 119960119897119907119900119897 lowast
CEDEC 2012
Appendix A ランタイム Light Probe(2)
bull Probe を用いて Dynamic Objects をライティングndash 各 Light Probe が SH を 9係数で保持するため
3D Texture ではなく Structured-Buffer で保持ndash Vertex Shader 内で自力 Tri-Linear 補間
iquest +
CEDEC 2012
Appendix B 後半の補足
bull 大規模なシーンでの光の伝播bull 小領域間の光の伝播は個別に総当たりで計算
rArr小領域間の光の伝播は距離によって大きく減衰
実際は大規模シーンでも概ね二つ隣の小領域まで考慮すれば十分
CEDEC 2012
Appendix B 後半の補足
bull 小領域の境界
bull 小領域の境界部分が不連続になる rArr 小領域の境界部分は補間の必要がある
CEDEC 2012
bull スライドと論文で表記が違う記号があります
Appendix C 記号の表記
スライドでの表記 論文での表記
b
- Slide 1
- 発表の流れ
- 発表の流れ (2)
- 発表の概要
- 解説技術の特徴
- 注意点
- 発表の流れ (3)
- 発表の流れ (4)
- 間接光の概要
- 間接光の概要 (2)
- 解説手法の計算概要
- 間接光計算の解説手順
- 間接光計算の解説手順 (2)
- 間接光計算の解説手順 (3)
- 間接光計算の解説手順 (4)
- 間接光計算の解説手順 (5)
- 間接光計算の解説手順 (6)
- 間接光計算の考え方
- 間接光計算の考え方 (2)
- 間接光計算の考え方 (3)
- 間接光計算の考え方 (4)
- 間接光計算の考え方 (5)
- 間接光計算の解説手順 (7)
- 問題提起
- 間接光計算の解説手順 (8)
- キーアイディア
- キーアイディア (2)
- キーアイディア (3)
- キーアイディア (4)
- キーアイディア (5)
- キーアイディア (6)
- 間接光計算の解説手順 (9)
- 間接光計算の解説手順 (10)
- を求める
- を求める (2)
- を求める (3)
- 最適な基底
- サンプリングベースの基底
- サンプルの選び方について
- サンプリング行列
- サンプリング行列 (2)
- サンプリング行列 (3)
- サンプリング行列 (4)
- サンプリング行列 (5)
- サンプリング行列 (6)
- サンプリング行列 (7)
- 特異値分解(Singular Value Decomposition)
- 特異値分解(Singular Value Decomposition) (2)
- 特異値分解(Singular Value Decomposition) (3)
- 特異値分解(Singular Value Decomposition) (4)
- 特異値分解(Singular Value Decomposition) (5)
- 基底による直接光の近似
- アプローチの比較
- ハイブリッド手法の計算手順
- 係数の数の比較
- ランタイムの計算処理
- 係数の計算方法
- ランタイムの計算処理 (2)
- 間接光計算の解説手順 (11)
- ショートデモ
- 間接光計算の解説手順 (12)
- 間接光計算の解説手順 (13)
- Light Probe
- Light Probe (2)
- Light Probeによるライティング
- Light Probeによるライティング (2)
- 間接光計算の解説手順 (14)
- Light Probeの計算
- 動的なLight Probe
- 動的なLight Probe (2)
- 間接光計算の解説手順 (15)
- デモ
- デモ詳細
- パフォーマンス
- まとめ
- 発表の流れ (5)
- シーン分割による高速化の解説手順
- シーン分割による高速化の解説手順 (2)
- 問題提起 (14)
- 問題提起 (24)
- 問題提起 (34)
- 問題提起 (44)
- シーン分割による高速化の解説手順 (3)
- シーン分割による高速化の解説手順 (4)
- キーアイディア (16)
- キーアイディア (26)
- キーアイディア (36)
- キーアイディア (46)
- キーアイディア (56)
- キーアイディア (66)
- シーン分割による高速化の解説手順 (5)
- 光の伝播行列の計算 (17)
- 光の伝播行列の計算 (27)
- 光の伝播行列の計算 (37)
- 光の伝播行列の計算 (47)
- 光の伝播行列の計算 (57)
- 光の伝播行列の計算 (67)
- 光の伝播行列の計算 (77)
- シーン分割による高速化の解説手順 (6)
- シーン分割による高速化の解説手順 (7)
- 多重反射への拡張
- シーン分割による高速化の解説手順 (8)
- モジュールの導入 (13)
- モジュールの導入 (23)
- モジュールの導入 (33)
- シーン分割による高速化の解説手順 (9)
- デモ (2)
- 考察
- 発表の流れ (6)
- 発表内容のまとめ
- 著作権について
- 最後に
- Appendix A 実装について
- Appendix A 前計算について
- Appendix A ランタイム
- Appendix A ランタイム 係数
- Appendix A ランタイム
- Appendix A ランタイム 最終パス
- Appendix A ランタイム Light Probe(1)
- Appendix A ランタイム Light Probe(2)
- Appendix B 後半の補足
- Appendix B 後半の補足 (2)
- Appendix C 記号の表記
-
CEDEC 2012
キーアイディア ( 46 )
bull 小領域間の光の伝播行列 P を前計算119820 伝播先の小領域の頂点数119821 伝播元の小領域の頂点数
光の伝播行列P
119820行119821列[iquest ]P
CEDEC 2012
キーアイディア ( 56 )
bull 光の伝播行列 P を利用して光の伝播を高速に計算
[ 119956120783⋮119956119925]
119852 伝播元の小領域の頂点の色119941 伝播先の小領域の頂点の色
119820行119821列[iquest ][ 119941120783
⋮119941119924
] timesiquest P119820 伝播先の小領域の頂点数119821 伝播元の小領域の頂点数
CEDEC 2012
キーアイディア ( 66 )
bull 光の伝播を係数からの変換に修正
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
bull ライトフィールドという概念を導入
光の伝播行列の計算 ( 17 )
ライトフィールドは任意の点群を通過する
光を体系的に記録するためのデータ構造
境界面に注目
CEDEC 2012
光の伝播行列の計算 ( 27 )
bull 光の伝播行列 P を三要素に分割1 光の出射行列 Pout2 光の通過行列 Pthrough3 光の入射行列 Pin
右の小領域 中央の小領域 左の小領域P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 37 )
bull 光の出射行列 Poutndash 小領域 rArr ライトフィールド
119819120783 出射ライトフィールドのサンプル数119821 伝播元の小領域の頂点数
iquest119819120783行iquest
⋮⋮
⋮4 5 9
6
8
CEDEC 2012
光の伝播行列の計算 ( 47 )
bull 光の通過行列 Pthroughndash ライトフィールド rArr ライトフィールド
119819120784 出射ライトフィールドのサンプル数119819120783入射ライトフィールドのサンプル数
iquest119819120784行iquest
⋮⋮
⋮5 8
2
5 ⋯
CEDEC 2012
光の伝播行列の計算 ( 57 )
bull 光の入射行列 Pinndash ライトフィールド rArr 小領域
119820伝播先の小領域の頂点数119819120784 入射ライトフィールドのサンプル数
iquest119820行iquest
⋮
2 5 6
1
5⋮
Pin 計算時にヘミキューブ法などを用いて立体角を考慮
CEDEC 2012
光の伝播行列の計算 ( 67 )
bull 全ての小領域間の光の伝播は三種類の行列の組み合わせで計算可能
P = Pin times Pout上記例ではは再利用不可能だがは共通
P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 77 )
bull 光の伝播の計算のまとめ
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
多重反射への拡張
bull 間接光計算を反復実行
⋮
間接光計算
間接光計算
間接光計算
直接光
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
モジュールの導入 ( 13 )
bull モジュール( = 再利用可能な汎用小領域)の導入
bull 上記のようなシーンは「回転」も考慮すれば5種の立方体モジュールの組合わせで構成可能
3 方向壁 2 方向壁 2 方向壁 1 方向壁 0 方向壁
CEDEC 2012
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
モジュールの導入 ( 23 )
通過行列は(直進 右折 左折)の三種類
ライトフィールドデータを一つの行列に格納
特異値分解
データ量の削減及び計算の高速化
詳しくは論文 51 節参照
CEDEC 2012
モジュールの導入 ( 33 )
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
メリットは多いがシーンの自由度とのトレードオフ
モジュールの使い所は要検討
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
デモ
CEDEC 2012
考察
bull ライトフィールドは本当に必要か
bull 小領域間の位置関係が固定ならば(恐らく)不要
rArr レイトレーシング法で伝播行列 P を直接計算 した方が効率的bull 小領域を動的に入れ替える場合は必要
P = Pin times Pthrough times Pout
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ 3 まとめ
CEDEC 2012
発表内容のまとめ
bull Modular Radiance Transfer 法を解説ndash 長所
bull とにかく高速bull 多重反射を含んだ間接光が扱えるbull 技術のコア部分は汎用的で応用の余地が高い
ndash 短所bull 前計算を含め使い方に癖がある ( 実験を通してノウハウを蓄積すれば余り問題にならない )
ゲームへの応用は十分可能
CEDEC 2012
本スライド内で引用した論文の図の著作権は全て論文著者に帰属します
その他の図スライド本体挿絵等の著作権は
シリコンスタジオ株式会社に帰属します
著作権について
CEDEC 2012
最後に
御清聴ありがとうございました
httpwwwsiliconstudiocojppresentationsindexhtml
スライドデモは弊社 HP で近日公開
制作協力 河野 駿介 辻 俊晶 古家 亙 後藤 晋也 京田 文人 三谷 健一郎
問い合わせ先 田村 nk-tamurasiliconstudiocojp 安田 re-yasudasiliconstudiocojp
シリコンスタジオは常に人材を求めています
ご興味ある方は弊社 HP をご覧ください
CEDEC 2012
Appendix A 実装について
bull 実装自体は様々なアプローチが可能bull ここではデモの実装でのアプローチを紹介
CEDEC 2012
Appendix A 前計算について
bull F の計算ndash メッシュの全頂点からキューブマップにレンダリングndash ピクセルには頂点 ID とウェイトを出力
bull 直接光サンプルの計算ndash 頂点カラーを Stream Out でバッファに出力ndash 頂点シャドウあり
bull Light Probe の計算ndash 各 Probe の中心からキューブマップにレンダリングndash の対応する基底ベクトル同士を足し合わせた
ベクトル ( 直接光 + 間接光 ) を頂点カラーとして使用
CEDEC 2012
Appendix A ランタイム
bull 直接光の結果を Stream Out でバッファに出力ndash 頂点シャドウありndash カラーバッファへの書き込み OFFndash 複数オブジェクトの場合は単一バッファにオフ
セットを変えて出力
119897119889
CEDEC 2012
Appendix A ランタイム 係数
bull Compute Shader で を計算ndash は極めて横長の行列 ( 行 ~100程度 列 頂点数 )ndash は GPU が少々苦手な処理ではあるものの
タイリングベースの実装で高速に処理可能
iquest
119897119889119960 lowast119861119889minus1
CEDEC 2012
Appendix A ランタイム
bull Compute Shader で を計算ndash は極めて縦長 ( の転置と同サイズ ) なので素直に実装可能
iquest
119861119894119899119889 119960119897119894119899 119889 lowast
CEDEC 2012
Appendix A ランタイム 最終パス
bull を頂点カラーとして入力としてピクセル単位の直接光のシェーディングと合成して最終結果を得る
iquest +
CEDEC 2012
Appendix A ランタイム Light Probe(1)
bull Compute Shader でを計算ndash は縦長 ( 行 頂点数 timesSH係数の数 列 ~100程度 )
iquest
119880119907119900119897 119960119897119907119900119897 lowast
CEDEC 2012
Appendix A ランタイム Light Probe(2)
bull Probe を用いて Dynamic Objects をライティングndash 各 Light Probe が SH を 9係数で保持するため
3D Texture ではなく Structured-Buffer で保持ndash Vertex Shader 内で自力 Tri-Linear 補間
iquest +
CEDEC 2012
Appendix B 後半の補足
bull 大規模なシーンでの光の伝播bull 小領域間の光の伝播は個別に総当たりで計算
rArr小領域間の光の伝播は距離によって大きく減衰
実際は大規模シーンでも概ね二つ隣の小領域まで考慮すれば十分
CEDEC 2012
Appendix B 後半の補足
bull 小領域の境界
bull 小領域の境界部分が不連続になる rArr 小領域の境界部分は補間の必要がある
CEDEC 2012
bull スライドと論文で表記が違う記号があります
Appendix C 記号の表記
スライドでの表記 論文での表記
b
- Slide 1
- 発表の流れ
- 発表の流れ (2)
- 発表の概要
- 解説技術の特徴
- 注意点
- 発表の流れ (3)
- 発表の流れ (4)
- 間接光の概要
- 間接光の概要 (2)
- 解説手法の計算概要
- 間接光計算の解説手順
- 間接光計算の解説手順 (2)
- 間接光計算の解説手順 (3)
- 間接光計算の解説手順 (4)
- 間接光計算の解説手順 (5)
- 間接光計算の解説手順 (6)
- 間接光計算の考え方
- 間接光計算の考え方 (2)
- 間接光計算の考え方 (3)
- 間接光計算の考え方 (4)
- 間接光計算の考え方 (5)
- 間接光計算の解説手順 (7)
- 問題提起
- 間接光計算の解説手順 (8)
- キーアイディア
- キーアイディア (2)
- キーアイディア (3)
- キーアイディア (4)
- キーアイディア (5)
- キーアイディア (6)
- 間接光計算の解説手順 (9)
- 間接光計算の解説手順 (10)
- を求める
- を求める (2)
- を求める (3)
- 最適な基底
- サンプリングベースの基底
- サンプルの選び方について
- サンプリング行列
- サンプリング行列 (2)
- サンプリング行列 (3)
- サンプリング行列 (4)
- サンプリング行列 (5)
- サンプリング行列 (6)
- サンプリング行列 (7)
- 特異値分解(Singular Value Decomposition)
- 特異値分解(Singular Value Decomposition) (2)
- 特異値分解(Singular Value Decomposition) (3)
- 特異値分解(Singular Value Decomposition) (4)
- 特異値分解(Singular Value Decomposition) (5)
- 基底による直接光の近似
- アプローチの比較
- ハイブリッド手法の計算手順
- 係数の数の比較
- ランタイムの計算処理
- 係数の計算方法
- ランタイムの計算処理 (2)
- 間接光計算の解説手順 (11)
- ショートデモ
- 間接光計算の解説手順 (12)
- 間接光計算の解説手順 (13)
- Light Probe
- Light Probe (2)
- Light Probeによるライティング
- Light Probeによるライティング (2)
- 間接光計算の解説手順 (14)
- Light Probeの計算
- 動的なLight Probe
- 動的なLight Probe (2)
- 間接光計算の解説手順 (15)
- デモ
- デモ詳細
- パフォーマンス
- まとめ
- 発表の流れ (5)
- シーン分割による高速化の解説手順
- シーン分割による高速化の解説手順 (2)
- 問題提起 (14)
- 問題提起 (24)
- 問題提起 (34)
- 問題提起 (44)
- シーン分割による高速化の解説手順 (3)
- シーン分割による高速化の解説手順 (4)
- キーアイディア (16)
- キーアイディア (26)
- キーアイディア (36)
- キーアイディア (46)
- キーアイディア (56)
- キーアイディア (66)
- シーン分割による高速化の解説手順 (5)
- 光の伝播行列の計算 (17)
- 光の伝播行列の計算 (27)
- 光の伝播行列の計算 (37)
- 光の伝播行列の計算 (47)
- 光の伝播行列の計算 (57)
- 光の伝播行列の計算 (67)
- 光の伝播行列の計算 (77)
- シーン分割による高速化の解説手順 (6)
- シーン分割による高速化の解説手順 (7)
- 多重反射への拡張
- シーン分割による高速化の解説手順 (8)
- モジュールの導入 (13)
- モジュールの導入 (23)
- モジュールの導入 (33)
- シーン分割による高速化の解説手順 (9)
- デモ (2)
- 考察
- 発表の流れ (6)
- 発表内容のまとめ
- 著作権について
- 最後に
- Appendix A 実装について
- Appendix A 前計算について
- Appendix A ランタイム
- Appendix A ランタイム 係数
- Appendix A ランタイム
- Appendix A ランタイム 最終パス
- Appendix A ランタイム Light Probe(1)
- Appendix A ランタイム Light Probe(2)
- Appendix B 後半の補足
- Appendix B 後半の補足 (2)
- Appendix C 記号の表記
-
CEDEC 2012
キーアイディア ( 56 )
bull 光の伝播行列 P を利用して光の伝播を高速に計算
[ 119956120783⋮119956119925]
119852 伝播元の小領域の頂点の色119941 伝播先の小領域の頂点の色
119820行119821列[iquest ][ 119941120783
⋮119941119924
] timesiquest P119820 伝播先の小領域の頂点数119821 伝播元の小領域の頂点数
CEDEC 2012
キーアイディア ( 66 )
bull 光の伝播を係数からの変換に修正
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
bull ライトフィールドという概念を導入
光の伝播行列の計算 ( 17 )
ライトフィールドは任意の点群を通過する
光を体系的に記録するためのデータ構造
境界面に注目
CEDEC 2012
光の伝播行列の計算 ( 27 )
bull 光の伝播行列 P を三要素に分割1 光の出射行列 Pout2 光の通過行列 Pthrough3 光の入射行列 Pin
右の小領域 中央の小領域 左の小領域P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 37 )
bull 光の出射行列 Poutndash 小領域 rArr ライトフィールド
119819120783 出射ライトフィールドのサンプル数119821 伝播元の小領域の頂点数
iquest119819120783行iquest
⋮⋮
⋮4 5 9
6
8
CEDEC 2012
光の伝播行列の計算 ( 47 )
bull 光の通過行列 Pthroughndash ライトフィールド rArr ライトフィールド
119819120784 出射ライトフィールドのサンプル数119819120783入射ライトフィールドのサンプル数
iquest119819120784行iquest
⋮⋮
⋮5 8
2
5 ⋯
CEDEC 2012
光の伝播行列の計算 ( 57 )
bull 光の入射行列 Pinndash ライトフィールド rArr 小領域
119820伝播先の小領域の頂点数119819120784 入射ライトフィールドのサンプル数
iquest119820行iquest
⋮
2 5 6
1
5⋮
Pin 計算時にヘミキューブ法などを用いて立体角を考慮
CEDEC 2012
光の伝播行列の計算 ( 67 )
bull 全ての小領域間の光の伝播は三種類の行列の組み合わせで計算可能
P = Pin times Pout上記例ではは再利用不可能だがは共通
P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 77 )
bull 光の伝播の計算のまとめ
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
多重反射への拡張
bull 間接光計算を反復実行
⋮
間接光計算
間接光計算
間接光計算
直接光
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
モジュールの導入 ( 13 )
bull モジュール( = 再利用可能な汎用小領域)の導入
bull 上記のようなシーンは「回転」も考慮すれば5種の立方体モジュールの組合わせで構成可能
3 方向壁 2 方向壁 2 方向壁 1 方向壁 0 方向壁
CEDEC 2012
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
モジュールの導入 ( 23 )
通過行列は(直進 右折 左折)の三種類
ライトフィールドデータを一つの行列に格納
特異値分解
データ量の削減及び計算の高速化
詳しくは論文 51 節参照
CEDEC 2012
モジュールの導入 ( 33 )
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
メリットは多いがシーンの自由度とのトレードオフ
モジュールの使い所は要検討
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
デモ
CEDEC 2012
考察
bull ライトフィールドは本当に必要か
bull 小領域間の位置関係が固定ならば(恐らく)不要
rArr レイトレーシング法で伝播行列 P を直接計算 した方が効率的bull 小領域を動的に入れ替える場合は必要
P = Pin times Pthrough times Pout
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ 3 まとめ
CEDEC 2012
発表内容のまとめ
bull Modular Radiance Transfer 法を解説ndash 長所
bull とにかく高速bull 多重反射を含んだ間接光が扱えるbull 技術のコア部分は汎用的で応用の余地が高い
ndash 短所bull 前計算を含め使い方に癖がある ( 実験を通してノウハウを蓄積すれば余り問題にならない )
ゲームへの応用は十分可能
CEDEC 2012
本スライド内で引用した論文の図の著作権は全て論文著者に帰属します
その他の図スライド本体挿絵等の著作権は
シリコンスタジオ株式会社に帰属します
著作権について
CEDEC 2012
最後に
御清聴ありがとうございました
httpwwwsiliconstudiocojppresentationsindexhtml
スライドデモは弊社 HP で近日公開
制作協力 河野 駿介 辻 俊晶 古家 亙 後藤 晋也 京田 文人 三谷 健一郎
問い合わせ先 田村 nk-tamurasiliconstudiocojp 安田 re-yasudasiliconstudiocojp
シリコンスタジオは常に人材を求めています
ご興味ある方は弊社 HP をご覧ください
CEDEC 2012
Appendix A 実装について
bull 実装自体は様々なアプローチが可能bull ここではデモの実装でのアプローチを紹介
CEDEC 2012
Appendix A 前計算について
bull F の計算ndash メッシュの全頂点からキューブマップにレンダリングndash ピクセルには頂点 ID とウェイトを出力
bull 直接光サンプルの計算ndash 頂点カラーを Stream Out でバッファに出力ndash 頂点シャドウあり
bull Light Probe の計算ndash 各 Probe の中心からキューブマップにレンダリングndash の対応する基底ベクトル同士を足し合わせた
ベクトル ( 直接光 + 間接光 ) を頂点カラーとして使用
CEDEC 2012
Appendix A ランタイム
bull 直接光の結果を Stream Out でバッファに出力ndash 頂点シャドウありndash カラーバッファへの書き込み OFFndash 複数オブジェクトの場合は単一バッファにオフ
セットを変えて出力
119897119889
CEDEC 2012
Appendix A ランタイム 係数
bull Compute Shader で を計算ndash は極めて横長の行列 ( 行 ~100程度 列 頂点数 )ndash は GPU が少々苦手な処理ではあるものの
タイリングベースの実装で高速に処理可能
iquest
119897119889119960 lowast119861119889minus1
CEDEC 2012
Appendix A ランタイム
bull Compute Shader で を計算ndash は極めて縦長 ( の転置と同サイズ ) なので素直に実装可能
iquest
119861119894119899119889 119960119897119894119899 119889 lowast
CEDEC 2012
Appendix A ランタイム 最終パス
bull を頂点カラーとして入力としてピクセル単位の直接光のシェーディングと合成して最終結果を得る
iquest +
CEDEC 2012
Appendix A ランタイム Light Probe(1)
bull Compute Shader でを計算ndash は縦長 ( 行 頂点数 timesSH係数の数 列 ~100程度 )
iquest
119880119907119900119897 119960119897119907119900119897 lowast
CEDEC 2012
Appendix A ランタイム Light Probe(2)
bull Probe を用いて Dynamic Objects をライティングndash 各 Light Probe が SH を 9係数で保持するため
3D Texture ではなく Structured-Buffer で保持ndash Vertex Shader 内で自力 Tri-Linear 補間
iquest +
CEDEC 2012
Appendix B 後半の補足
bull 大規模なシーンでの光の伝播bull 小領域間の光の伝播は個別に総当たりで計算
rArr小領域間の光の伝播は距離によって大きく減衰
実際は大規模シーンでも概ね二つ隣の小領域まで考慮すれば十分
CEDEC 2012
Appendix B 後半の補足
bull 小領域の境界
bull 小領域の境界部分が不連続になる rArr 小領域の境界部分は補間の必要がある
CEDEC 2012
bull スライドと論文で表記が違う記号があります
Appendix C 記号の表記
スライドでの表記 論文での表記
b
- Slide 1
- 発表の流れ
- 発表の流れ (2)
- 発表の概要
- 解説技術の特徴
- 注意点
- 発表の流れ (3)
- 発表の流れ (4)
- 間接光の概要
- 間接光の概要 (2)
- 解説手法の計算概要
- 間接光計算の解説手順
- 間接光計算の解説手順 (2)
- 間接光計算の解説手順 (3)
- 間接光計算の解説手順 (4)
- 間接光計算の解説手順 (5)
- 間接光計算の解説手順 (6)
- 間接光計算の考え方
- 間接光計算の考え方 (2)
- 間接光計算の考え方 (3)
- 間接光計算の考え方 (4)
- 間接光計算の考え方 (5)
- 間接光計算の解説手順 (7)
- 問題提起
- 間接光計算の解説手順 (8)
- キーアイディア
- キーアイディア (2)
- キーアイディア (3)
- キーアイディア (4)
- キーアイディア (5)
- キーアイディア (6)
- 間接光計算の解説手順 (9)
- 間接光計算の解説手順 (10)
- を求める
- を求める (2)
- を求める (3)
- 最適な基底
- サンプリングベースの基底
- サンプルの選び方について
- サンプリング行列
- サンプリング行列 (2)
- サンプリング行列 (3)
- サンプリング行列 (4)
- サンプリング行列 (5)
- サンプリング行列 (6)
- サンプリング行列 (7)
- 特異値分解(Singular Value Decomposition)
- 特異値分解(Singular Value Decomposition) (2)
- 特異値分解(Singular Value Decomposition) (3)
- 特異値分解(Singular Value Decomposition) (4)
- 特異値分解(Singular Value Decomposition) (5)
- 基底による直接光の近似
- アプローチの比較
- ハイブリッド手法の計算手順
- 係数の数の比較
- ランタイムの計算処理
- 係数の計算方法
- ランタイムの計算処理 (2)
- 間接光計算の解説手順 (11)
- ショートデモ
- 間接光計算の解説手順 (12)
- 間接光計算の解説手順 (13)
- Light Probe
- Light Probe (2)
- Light Probeによるライティング
- Light Probeによるライティング (2)
- 間接光計算の解説手順 (14)
- Light Probeの計算
- 動的なLight Probe
- 動的なLight Probe (2)
- 間接光計算の解説手順 (15)
- デモ
- デモ詳細
- パフォーマンス
- まとめ
- 発表の流れ (5)
- シーン分割による高速化の解説手順
- シーン分割による高速化の解説手順 (2)
- 問題提起 (14)
- 問題提起 (24)
- 問題提起 (34)
- 問題提起 (44)
- シーン分割による高速化の解説手順 (3)
- シーン分割による高速化の解説手順 (4)
- キーアイディア (16)
- キーアイディア (26)
- キーアイディア (36)
- キーアイディア (46)
- キーアイディア (56)
- キーアイディア (66)
- シーン分割による高速化の解説手順 (5)
- 光の伝播行列の計算 (17)
- 光の伝播行列の計算 (27)
- 光の伝播行列の計算 (37)
- 光の伝播行列の計算 (47)
- 光の伝播行列の計算 (57)
- 光の伝播行列の計算 (67)
- 光の伝播行列の計算 (77)
- シーン分割による高速化の解説手順 (6)
- シーン分割による高速化の解説手順 (7)
- 多重反射への拡張
- シーン分割による高速化の解説手順 (8)
- モジュールの導入 (13)
- モジュールの導入 (23)
- モジュールの導入 (33)
- シーン分割による高速化の解説手順 (9)
- デモ (2)
- 考察
- 発表の流れ (6)
- 発表内容のまとめ
- 著作権について
- 最後に
- Appendix A 実装について
- Appendix A 前計算について
- Appendix A ランタイム
- Appendix A ランタイム 係数
- Appendix A ランタイム
- Appendix A ランタイム 最終パス
- Appendix A ランタイム Light Probe(1)
- Appendix A ランタイム Light Probe(2)
- Appendix B 後半の補足
- Appendix B 後半の補足 (2)
- Appendix C 記号の表記
-
CEDEC 2012
キーアイディア ( 66 )
bull 光の伝播を係数からの変換に修正
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
bull ライトフィールドという概念を導入
光の伝播行列の計算 ( 17 )
ライトフィールドは任意の点群を通過する
光を体系的に記録するためのデータ構造
境界面に注目
CEDEC 2012
光の伝播行列の計算 ( 27 )
bull 光の伝播行列 P を三要素に分割1 光の出射行列 Pout2 光の通過行列 Pthrough3 光の入射行列 Pin
右の小領域 中央の小領域 左の小領域P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 37 )
bull 光の出射行列 Poutndash 小領域 rArr ライトフィールド
119819120783 出射ライトフィールドのサンプル数119821 伝播元の小領域の頂点数
iquest119819120783行iquest
⋮⋮
⋮4 5 9
6
8
CEDEC 2012
光の伝播行列の計算 ( 47 )
bull 光の通過行列 Pthroughndash ライトフィールド rArr ライトフィールド
119819120784 出射ライトフィールドのサンプル数119819120783入射ライトフィールドのサンプル数
iquest119819120784行iquest
⋮⋮
⋮5 8
2
5 ⋯
CEDEC 2012
光の伝播行列の計算 ( 57 )
bull 光の入射行列 Pinndash ライトフィールド rArr 小領域
119820伝播先の小領域の頂点数119819120784 入射ライトフィールドのサンプル数
iquest119820行iquest
⋮
2 5 6
1
5⋮
Pin 計算時にヘミキューブ法などを用いて立体角を考慮
CEDEC 2012
光の伝播行列の計算 ( 67 )
bull 全ての小領域間の光の伝播は三種類の行列の組み合わせで計算可能
P = Pin times Pout上記例ではは再利用不可能だがは共通
P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 77 )
bull 光の伝播の計算のまとめ
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
多重反射への拡張
bull 間接光計算を反復実行
⋮
間接光計算
間接光計算
間接光計算
直接光
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
モジュールの導入 ( 13 )
bull モジュール( = 再利用可能な汎用小領域)の導入
bull 上記のようなシーンは「回転」も考慮すれば5種の立方体モジュールの組合わせで構成可能
3 方向壁 2 方向壁 2 方向壁 1 方向壁 0 方向壁
CEDEC 2012
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
モジュールの導入 ( 23 )
通過行列は(直進 右折 左折)の三種類
ライトフィールドデータを一つの行列に格納
特異値分解
データ量の削減及び計算の高速化
詳しくは論文 51 節参照
CEDEC 2012
モジュールの導入 ( 33 )
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
メリットは多いがシーンの自由度とのトレードオフ
モジュールの使い所は要検討
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
デモ
CEDEC 2012
考察
bull ライトフィールドは本当に必要か
bull 小領域間の位置関係が固定ならば(恐らく)不要
rArr レイトレーシング法で伝播行列 P を直接計算 した方が効率的bull 小領域を動的に入れ替える場合は必要
P = Pin times Pthrough times Pout
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ 3 まとめ
CEDEC 2012
発表内容のまとめ
bull Modular Radiance Transfer 法を解説ndash 長所
bull とにかく高速bull 多重反射を含んだ間接光が扱えるbull 技術のコア部分は汎用的で応用の余地が高い
ndash 短所bull 前計算を含め使い方に癖がある ( 実験を通してノウハウを蓄積すれば余り問題にならない )
ゲームへの応用は十分可能
CEDEC 2012
本スライド内で引用した論文の図の著作権は全て論文著者に帰属します
その他の図スライド本体挿絵等の著作権は
シリコンスタジオ株式会社に帰属します
著作権について
CEDEC 2012
最後に
御清聴ありがとうございました
httpwwwsiliconstudiocojppresentationsindexhtml
スライドデモは弊社 HP で近日公開
制作協力 河野 駿介 辻 俊晶 古家 亙 後藤 晋也 京田 文人 三谷 健一郎
問い合わせ先 田村 nk-tamurasiliconstudiocojp 安田 re-yasudasiliconstudiocojp
シリコンスタジオは常に人材を求めています
ご興味ある方は弊社 HP をご覧ください
CEDEC 2012
Appendix A 実装について
bull 実装自体は様々なアプローチが可能bull ここではデモの実装でのアプローチを紹介
CEDEC 2012
Appendix A 前計算について
bull F の計算ndash メッシュの全頂点からキューブマップにレンダリングndash ピクセルには頂点 ID とウェイトを出力
bull 直接光サンプルの計算ndash 頂点カラーを Stream Out でバッファに出力ndash 頂点シャドウあり
bull Light Probe の計算ndash 各 Probe の中心からキューブマップにレンダリングndash の対応する基底ベクトル同士を足し合わせた
ベクトル ( 直接光 + 間接光 ) を頂点カラーとして使用
CEDEC 2012
Appendix A ランタイム
bull 直接光の結果を Stream Out でバッファに出力ndash 頂点シャドウありndash カラーバッファへの書き込み OFFndash 複数オブジェクトの場合は単一バッファにオフ
セットを変えて出力
119897119889
CEDEC 2012
Appendix A ランタイム 係数
bull Compute Shader で を計算ndash は極めて横長の行列 ( 行 ~100程度 列 頂点数 )ndash は GPU が少々苦手な処理ではあるものの
タイリングベースの実装で高速に処理可能
iquest
119897119889119960 lowast119861119889minus1
CEDEC 2012
Appendix A ランタイム
bull Compute Shader で を計算ndash は極めて縦長 ( の転置と同サイズ ) なので素直に実装可能
iquest
119861119894119899119889 119960119897119894119899 119889 lowast
CEDEC 2012
Appendix A ランタイム 最終パス
bull を頂点カラーとして入力としてピクセル単位の直接光のシェーディングと合成して最終結果を得る
iquest +
CEDEC 2012
Appendix A ランタイム Light Probe(1)
bull Compute Shader でを計算ndash は縦長 ( 行 頂点数 timesSH係数の数 列 ~100程度 )
iquest
119880119907119900119897 119960119897119907119900119897 lowast
CEDEC 2012
Appendix A ランタイム Light Probe(2)
bull Probe を用いて Dynamic Objects をライティングndash 各 Light Probe が SH を 9係数で保持するため
3D Texture ではなく Structured-Buffer で保持ndash Vertex Shader 内で自力 Tri-Linear 補間
iquest +
CEDEC 2012
Appendix B 後半の補足
bull 大規模なシーンでの光の伝播bull 小領域間の光の伝播は個別に総当たりで計算
rArr小領域間の光の伝播は距離によって大きく減衰
実際は大規模シーンでも概ね二つ隣の小領域まで考慮すれば十分
CEDEC 2012
Appendix B 後半の補足
bull 小領域の境界
bull 小領域の境界部分が不連続になる rArr 小領域の境界部分は補間の必要がある
CEDEC 2012
bull スライドと論文で表記が違う記号があります
Appendix C 記号の表記
スライドでの表記 論文での表記
b
- Slide 1
- 発表の流れ
- 発表の流れ (2)
- 発表の概要
- 解説技術の特徴
- 注意点
- 発表の流れ (3)
- 発表の流れ (4)
- 間接光の概要
- 間接光の概要 (2)
- 解説手法の計算概要
- 間接光計算の解説手順
- 間接光計算の解説手順 (2)
- 間接光計算の解説手順 (3)
- 間接光計算の解説手順 (4)
- 間接光計算の解説手順 (5)
- 間接光計算の解説手順 (6)
- 間接光計算の考え方
- 間接光計算の考え方 (2)
- 間接光計算の考え方 (3)
- 間接光計算の考え方 (4)
- 間接光計算の考え方 (5)
- 間接光計算の解説手順 (7)
- 問題提起
- 間接光計算の解説手順 (8)
- キーアイディア
- キーアイディア (2)
- キーアイディア (3)
- キーアイディア (4)
- キーアイディア (5)
- キーアイディア (6)
- 間接光計算の解説手順 (9)
- 間接光計算の解説手順 (10)
- を求める
- を求める (2)
- を求める (3)
- 最適な基底
- サンプリングベースの基底
- サンプルの選び方について
- サンプリング行列
- サンプリング行列 (2)
- サンプリング行列 (3)
- サンプリング行列 (4)
- サンプリング行列 (5)
- サンプリング行列 (6)
- サンプリング行列 (7)
- 特異値分解(Singular Value Decomposition)
- 特異値分解(Singular Value Decomposition) (2)
- 特異値分解(Singular Value Decomposition) (3)
- 特異値分解(Singular Value Decomposition) (4)
- 特異値分解(Singular Value Decomposition) (5)
- 基底による直接光の近似
- アプローチの比較
- ハイブリッド手法の計算手順
- 係数の数の比較
- ランタイムの計算処理
- 係数の計算方法
- ランタイムの計算処理 (2)
- 間接光計算の解説手順 (11)
- ショートデモ
- 間接光計算の解説手順 (12)
- 間接光計算の解説手順 (13)
- Light Probe
- Light Probe (2)
- Light Probeによるライティング
- Light Probeによるライティング (2)
- 間接光計算の解説手順 (14)
- Light Probeの計算
- 動的なLight Probe
- 動的なLight Probe (2)
- 間接光計算の解説手順 (15)
- デモ
- デモ詳細
- パフォーマンス
- まとめ
- 発表の流れ (5)
- シーン分割による高速化の解説手順
- シーン分割による高速化の解説手順 (2)
- 問題提起 (14)
- 問題提起 (24)
- 問題提起 (34)
- 問題提起 (44)
- シーン分割による高速化の解説手順 (3)
- シーン分割による高速化の解説手順 (4)
- キーアイディア (16)
- キーアイディア (26)
- キーアイディア (36)
- キーアイディア (46)
- キーアイディア (56)
- キーアイディア (66)
- シーン分割による高速化の解説手順 (5)
- 光の伝播行列の計算 (17)
- 光の伝播行列の計算 (27)
- 光の伝播行列の計算 (37)
- 光の伝播行列の計算 (47)
- 光の伝播行列の計算 (57)
- 光の伝播行列の計算 (67)
- 光の伝播行列の計算 (77)
- シーン分割による高速化の解説手順 (6)
- シーン分割による高速化の解説手順 (7)
- 多重反射への拡張
- シーン分割による高速化の解説手順 (8)
- モジュールの導入 (13)
- モジュールの導入 (23)
- モジュールの導入 (33)
- シーン分割による高速化の解説手順 (9)
- デモ (2)
- 考察
- 発表の流れ (6)
- 発表内容のまとめ
- 著作権について
- 最後に
- Appendix A 実装について
- Appendix A 前計算について
- Appendix A ランタイム
- Appendix A ランタイム 係数
- Appendix A ランタイム
- Appendix A ランタイム 最終パス
- Appendix A ランタイム Light Probe(1)
- Appendix A ランタイム Light Probe(2)
- Appendix B 後半の補足
- Appendix B 後半の補足 (2)
- Appendix C 記号の表記
-
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算
ndash キーアイディアの説明ndash 小領域間の伝播行列の計算
Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
bull ライトフィールドという概念を導入
光の伝播行列の計算 ( 17 )
ライトフィールドは任意の点群を通過する
光を体系的に記録するためのデータ構造
境界面に注目
CEDEC 2012
光の伝播行列の計算 ( 27 )
bull 光の伝播行列 P を三要素に分割1 光の出射行列 Pout2 光の通過行列 Pthrough3 光の入射行列 Pin
右の小領域 中央の小領域 左の小領域P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 37 )
bull 光の出射行列 Poutndash 小領域 rArr ライトフィールド
119819120783 出射ライトフィールドのサンプル数119821 伝播元の小領域の頂点数
iquest119819120783行iquest
⋮⋮
⋮4 5 9
6
8
CEDEC 2012
光の伝播行列の計算 ( 47 )
bull 光の通過行列 Pthroughndash ライトフィールド rArr ライトフィールド
119819120784 出射ライトフィールドのサンプル数119819120783入射ライトフィールドのサンプル数
iquest119819120784行iquest
⋮⋮
⋮5 8
2
5 ⋯
CEDEC 2012
光の伝播行列の計算 ( 57 )
bull 光の入射行列 Pinndash ライトフィールド rArr 小領域
119820伝播先の小領域の頂点数119819120784 入射ライトフィールドのサンプル数
iquest119820行iquest
⋮
2 5 6
1
5⋮
Pin 計算時にヘミキューブ法などを用いて立体角を考慮
CEDEC 2012
光の伝播行列の計算 ( 67 )
bull 全ての小領域間の光の伝播は三種類の行列の組み合わせで計算可能
P = Pin times Pout上記例ではは再利用不可能だがは共通
P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 77 )
bull 光の伝播の計算のまとめ
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
多重反射への拡張
bull 間接光計算を反復実行
⋮
間接光計算
間接光計算
間接光計算
直接光
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
モジュールの導入 ( 13 )
bull モジュール( = 再利用可能な汎用小領域)の導入
bull 上記のようなシーンは「回転」も考慮すれば5種の立方体モジュールの組合わせで構成可能
3 方向壁 2 方向壁 2 方向壁 1 方向壁 0 方向壁
CEDEC 2012
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
モジュールの導入 ( 23 )
通過行列は(直進 右折 左折)の三種類
ライトフィールドデータを一つの行列に格納
特異値分解
データ量の削減及び計算の高速化
詳しくは論文 51 節参照
CEDEC 2012
モジュールの導入 ( 33 )
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
メリットは多いがシーンの自由度とのトレードオフ
モジュールの使い所は要検討
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
デモ
CEDEC 2012
考察
bull ライトフィールドは本当に必要か
bull 小領域間の位置関係が固定ならば(恐らく)不要
rArr レイトレーシング法で伝播行列 P を直接計算 した方が効率的bull 小領域を動的に入れ替える場合は必要
P = Pin times Pthrough times Pout
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ 3 まとめ
CEDEC 2012
発表内容のまとめ
bull Modular Radiance Transfer 法を解説ndash 長所
bull とにかく高速bull 多重反射を含んだ間接光が扱えるbull 技術のコア部分は汎用的で応用の余地が高い
ndash 短所bull 前計算を含め使い方に癖がある ( 実験を通してノウハウを蓄積すれば余り問題にならない )
ゲームへの応用は十分可能
CEDEC 2012
本スライド内で引用した論文の図の著作権は全て論文著者に帰属します
その他の図スライド本体挿絵等の著作権は
シリコンスタジオ株式会社に帰属します
著作権について
CEDEC 2012
最後に
御清聴ありがとうございました
httpwwwsiliconstudiocojppresentationsindexhtml
スライドデモは弊社 HP で近日公開
制作協力 河野 駿介 辻 俊晶 古家 亙 後藤 晋也 京田 文人 三谷 健一郎
問い合わせ先 田村 nk-tamurasiliconstudiocojp 安田 re-yasudasiliconstudiocojp
シリコンスタジオは常に人材を求めています
ご興味ある方は弊社 HP をご覧ください
CEDEC 2012
Appendix A 実装について
bull 実装自体は様々なアプローチが可能bull ここではデモの実装でのアプローチを紹介
CEDEC 2012
Appendix A 前計算について
bull F の計算ndash メッシュの全頂点からキューブマップにレンダリングndash ピクセルには頂点 ID とウェイトを出力
bull 直接光サンプルの計算ndash 頂点カラーを Stream Out でバッファに出力ndash 頂点シャドウあり
bull Light Probe の計算ndash 各 Probe の中心からキューブマップにレンダリングndash の対応する基底ベクトル同士を足し合わせた
ベクトル ( 直接光 + 間接光 ) を頂点カラーとして使用
CEDEC 2012
Appendix A ランタイム
bull 直接光の結果を Stream Out でバッファに出力ndash 頂点シャドウありndash カラーバッファへの書き込み OFFndash 複数オブジェクトの場合は単一バッファにオフ
セットを変えて出力
119897119889
CEDEC 2012
Appendix A ランタイム 係数
bull Compute Shader で を計算ndash は極めて横長の行列 ( 行 ~100程度 列 頂点数 )ndash は GPU が少々苦手な処理ではあるものの
タイリングベースの実装で高速に処理可能
iquest
119897119889119960 lowast119861119889minus1
CEDEC 2012
Appendix A ランタイム
bull Compute Shader で を計算ndash は極めて縦長 ( の転置と同サイズ ) なので素直に実装可能
iquest
119861119894119899119889 119960119897119894119899 119889 lowast
CEDEC 2012
Appendix A ランタイム 最終パス
bull を頂点カラーとして入力としてピクセル単位の直接光のシェーディングと合成して最終結果を得る
iquest +
CEDEC 2012
Appendix A ランタイム Light Probe(1)
bull Compute Shader でを計算ndash は縦長 ( 行 頂点数 timesSH係数の数 列 ~100程度 )
iquest
119880119907119900119897 119960119897119907119900119897 lowast
CEDEC 2012
Appendix A ランタイム Light Probe(2)
bull Probe を用いて Dynamic Objects をライティングndash 各 Light Probe が SH を 9係数で保持するため
3D Texture ではなく Structured-Buffer で保持ndash Vertex Shader 内で自力 Tri-Linear 補間
iquest +
CEDEC 2012
Appendix B 後半の補足
bull 大規模なシーンでの光の伝播bull 小領域間の光の伝播は個別に総当たりで計算
rArr小領域間の光の伝播は距離によって大きく減衰
実際は大規模シーンでも概ね二つ隣の小領域まで考慮すれば十分
CEDEC 2012
Appendix B 後半の補足
bull 小領域の境界
bull 小領域の境界部分が不連続になる rArr 小領域の境界部分は補間の必要がある
CEDEC 2012
bull スライドと論文で表記が違う記号があります
Appendix C 記号の表記
スライドでの表記 論文での表記
b
- Slide 1
- 発表の流れ
- 発表の流れ (2)
- 発表の概要
- 解説技術の特徴
- 注意点
- 発表の流れ (3)
- 発表の流れ (4)
- 間接光の概要
- 間接光の概要 (2)
- 解説手法の計算概要
- 間接光計算の解説手順
- 間接光計算の解説手順 (2)
- 間接光計算の解説手順 (3)
- 間接光計算の解説手順 (4)
- 間接光計算の解説手順 (5)
- 間接光計算の解説手順 (6)
- 間接光計算の考え方
- 間接光計算の考え方 (2)
- 間接光計算の考え方 (3)
- 間接光計算の考え方 (4)
- 間接光計算の考え方 (5)
- 間接光計算の解説手順 (7)
- 問題提起
- 間接光計算の解説手順 (8)
- キーアイディア
- キーアイディア (2)
- キーアイディア (3)
- キーアイディア (4)
- キーアイディア (5)
- キーアイディア (6)
- 間接光計算の解説手順 (9)
- 間接光計算の解説手順 (10)
- を求める
- を求める (2)
- を求める (3)
- 最適な基底
- サンプリングベースの基底
- サンプルの選び方について
- サンプリング行列
- サンプリング行列 (2)
- サンプリング行列 (3)
- サンプリング行列 (4)
- サンプリング行列 (5)
- サンプリング行列 (6)
- サンプリング行列 (7)
- 特異値分解(Singular Value Decomposition)
- 特異値分解(Singular Value Decomposition) (2)
- 特異値分解(Singular Value Decomposition) (3)
- 特異値分解(Singular Value Decomposition) (4)
- 特異値分解(Singular Value Decomposition) (5)
- 基底による直接光の近似
- アプローチの比較
- ハイブリッド手法の計算手順
- 係数の数の比較
- ランタイムの計算処理
- 係数の計算方法
- ランタイムの計算処理 (2)
- 間接光計算の解説手順 (11)
- ショートデモ
- 間接光計算の解説手順 (12)
- 間接光計算の解説手順 (13)
- Light Probe
- Light Probe (2)
- Light Probeによるライティング
- Light Probeによるライティング (2)
- 間接光計算の解説手順 (14)
- Light Probeの計算
- 動的なLight Probe
- 動的なLight Probe (2)
- 間接光計算の解説手順 (15)
- デモ
- デモ詳細
- パフォーマンス
- まとめ
- 発表の流れ (5)
- シーン分割による高速化の解説手順
- シーン分割による高速化の解説手順 (2)
- 問題提起 (14)
- 問題提起 (24)
- 問題提起 (34)
- 問題提起 (44)
- シーン分割による高速化の解説手順 (3)
- シーン分割による高速化の解説手順 (4)
- キーアイディア (16)
- キーアイディア (26)
- キーアイディア (36)
- キーアイディア (46)
- キーアイディア (56)
- キーアイディア (66)
- シーン分割による高速化の解説手順 (5)
- 光の伝播行列の計算 (17)
- 光の伝播行列の計算 (27)
- 光の伝播行列の計算 (37)
- 光の伝播行列の計算 (47)
- 光の伝播行列の計算 (57)
- 光の伝播行列の計算 (67)
- 光の伝播行列の計算 (77)
- シーン分割による高速化の解説手順 (6)
- シーン分割による高速化の解説手順 (7)
- 多重反射への拡張
- シーン分割による高速化の解説手順 (8)
- モジュールの導入 (13)
- モジュールの導入 (23)
- モジュールの導入 (33)
- シーン分割による高速化の解説手順 (9)
- デモ (2)
- 考察
- 発表の流れ (6)
- 発表内容のまとめ
- 著作権について
- 最後に
- Appendix A 実装について
- Appendix A 前計算について
- Appendix A ランタイム
- Appendix A ランタイム 係数
- Appendix A ランタイム
- Appendix A ランタイム 最終パス
- Appendix A ランタイム Light Probe(1)
- Appendix A ランタイム Light Probe(2)
- Appendix B 後半の補足
- Appendix B 後半の補足 (2)
- Appendix C 記号の表記
-
CEDEC 2012
bull ライトフィールドという概念を導入
光の伝播行列の計算 ( 17 )
ライトフィールドは任意の点群を通過する
光を体系的に記録するためのデータ構造
境界面に注目
CEDEC 2012
光の伝播行列の計算 ( 27 )
bull 光の伝播行列 P を三要素に分割1 光の出射行列 Pout2 光の通過行列 Pthrough3 光の入射行列 Pin
右の小領域 中央の小領域 左の小領域P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 37 )
bull 光の出射行列 Poutndash 小領域 rArr ライトフィールド
119819120783 出射ライトフィールドのサンプル数119821 伝播元の小領域の頂点数
iquest119819120783行iquest
⋮⋮
⋮4 5 9
6
8
CEDEC 2012
光の伝播行列の計算 ( 47 )
bull 光の通過行列 Pthroughndash ライトフィールド rArr ライトフィールド
119819120784 出射ライトフィールドのサンプル数119819120783入射ライトフィールドのサンプル数
iquest119819120784行iquest
⋮⋮
⋮5 8
2
5 ⋯
CEDEC 2012
光の伝播行列の計算 ( 57 )
bull 光の入射行列 Pinndash ライトフィールド rArr 小領域
119820伝播先の小領域の頂点数119819120784 入射ライトフィールドのサンプル数
iquest119820行iquest
⋮
2 5 6
1
5⋮
Pin 計算時にヘミキューブ法などを用いて立体角を考慮
CEDEC 2012
光の伝播行列の計算 ( 67 )
bull 全ての小領域間の光の伝播は三種類の行列の組み合わせで計算可能
P = Pin times Pout上記例ではは再利用不可能だがは共通
P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 77 )
bull 光の伝播の計算のまとめ
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
多重反射への拡張
bull 間接光計算を反復実行
⋮
間接光計算
間接光計算
間接光計算
直接光
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
モジュールの導入 ( 13 )
bull モジュール( = 再利用可能な汎用小領域)の導入
bull 上記のようなシーンは「回転」も考慮すれば5種の立方体モジュールの組合わせで構成可能
3 方向壁 2 方向壁 2 方向壁 1 方向壁 0 方向壁
CEDEC 2012
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
モジュールの導入 ( 23 )
通過行列は(直進 右折 左折)の三種類
ライトフィールドデータを一つの行列に格納
特異値分解
データ量の削減及び計算の高速化
詳しくは論文 51 節参照
CEDEC 2012
モジュールの導入 ( 33 )
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
メリットは多いがシーンの自由度とのトレードオフ
モジュールの使い所は要検討
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
デモ
CEDEC 2012
考察
bull ライトフィールドは本当に必要か
bull 小領域間の位置関係が固定ならば(恐らく)不要
rArr レイトレーシング法で伝播行列 P を直接計算 した方が効率的bull 小領域を動的に入れ替える場合は必要
P = Pin times Pthrough times Pout
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ 3 まとめ
CEDEC 2012
発表内容のまとめ
bull Modular Radiance Transfer 法を解説ndash 長所
bull とにかく高速bull 多重反射を含んだ間接光が扱えるbull 技術のコア部分は汎用的で応用の余地が高い
ndash 短所bull 前計算を含め使い方に癖がある ( 実験を通してノウハウを蓄積すれば余り問題にならない )
ゲームへの応用は十分可能
CEDEC 2012
本スライド内で引用した論文の図の著作権は全て論文著者に帰属します
その他の図スライド本体挿絵等の著作権は
シリコンスタジオ株式会社に帰属します
著作権について
CEDEC 2012
最後に
御清聴ありがとうございました
httpwwwsiliconstudiocojppresentationsindexhtml
スライドデモは弊社 HP で近日公開
制作協力 河野 駿介 辻 俊晶 古家 亙 後藤 晋也 京田 文人 三谷 健一郎
問い合わせ先 田村 nk-tamurasiliconstudiocojp 安田 re-yasudasiliconstudiocojp
シリコンスタジオは常に人材を求めています
ご興味ある方は弊社 HP をご覧ください
CEDEC 2012
Appendix A 実装について
bull 実装自体は様々なアプローチが可能bull ここではデモの実装でのアプローチを紹介
CEDEC 2012
Appendix A 前計算について
bull F の計算ndash メッシュの全頂点からキューブマップにレンダリングndash ピクセルには頂点 ID とウェイトを出力
bull 直接光サンプルの計算ndash 頂点カラーを Stream Out でバッファに出力ndash 頂点シャドウあり
bull Light Probe の計算ndash 各 Probe の中心からキューブマップにレンダリングndash の対応する基底ベクトル同士を足し合わせた
ベクトル ( 直接光 + 間接光 ) を頂点カラーとして使用
CEDEC 2012
Appendix A ランタイム
bull 直接光の結果を Stream Out でバッファに出力ndash 頂点シャドウありndash カラーバッファへの書き込み OFFndash 複数オブジェクトの場合は単一バッファにオフ
セットを変えて出力
119897119889
CEDEC 2012
Appendix A ランタイム 係数
bull Compute Shader で を計算ndash は極めて横長の行列 ( 行 ~100程度 列 頂点数 )ndash は GPU が少々苦手な処理ではあるものの
タイリングベースの実装で高速に処理可能
iquest
119897119889119960 lowast119861119889minus1
CEDEC 2012
Appendix A ランタイム
bull Compute Shader で を計算ndash は極めて縦長 ( の転置と同サイズ ) なので素直に実装可能
iquest
119861119894119899119889 119960119897119894119899 119889 lowast
CEDEC 2012
Appendix A ランタイム 最終パス
bull を頂点カラーとして入力としてピクセル単位の直接光のシェーディングと合成して最終結果を得る
iquest +
CEDEC 2012
Appendix A ランタイム Light Probe(1)
bull Compute Shader でを計算ndash は縦長 ( 行 頂点数 timesSH係数の数 列 ~100程度 )
iquest
119880119907119900119897 119960119897119907119900119897 lowast
CEDEC 2012
Appendix A ランタイム Light Probe(2)
bull Probe を用いて Dynamic Objects をライティングndash 各 Light Probe が SH を 9係数で保持するため
3D Texture ではなく Structured-Buffer で保持ndash Vertex Shader 内で自力 Tri-Linear 補間
iquest +
CEDEC 2012
Appendix B 後半の補足
bull 大規模なシーンでの光の伝播bull 小領域間の光の伝播は個別に総当たりで計算
rArr小領域間の光の伝播は距離によって大きく減衰
実際は大規模シーンでも概ね二つ隣の小領域まで考慮すれば十分
CEDEC 2012
Appendix B 後半の補足
bull 小領域の境界
bull 小領域の境界部分が不連続になる rArr 小領域の境界部分は補間の必要がある
CEDEC 2012
bull スライドと論文で表記が違う記号があります
Appendix C 記号の表記
スライドでの表記 論文での表記
b
- Slide 1
- 発表の流れ
- 発表の流れ (2)
- 発表の概要
- 解説技術の特徴
- 注意点
- 発表の流れ (3)
- 発表の流れ (4)
- 間接光の概要
- 間接光の概要 (2)
- 解説手法の計算概要
- 間接光計算の解説手順
- 間接光計算の解説手順 (2)
- 間接光計算の解説手順 (3)
- 間接光計算の解説手順 (4)
- 間接光計算の解説手順 (5)
- 間接光計算の解説手順 (6)
- 間接光計算の考え方
- 間接光計算の考え方 (2)
- 間接光計算の考え方 (3)
- 間接光計算の考え方 (4)
- 間接光計算の考え方 (5)
- 間接光計算の解説手順 (7)
- 問題提起
- 間接光計算の解説手順 (8)
- キーアイディア
- キーアイディア (2)
- キーアイディア (3)
- キーアイディア (4)
- キーアイディア (5)
- キーアイディア (6)
- 間接光計算の解説手順 (9)
- 間接光計算の解説手順 (10)
- を求める
- を求める (2)
- を求める (3)
- 最適な基底
- サンプリングベースの基底
- サンプルの選び方について
- サンプリング行列
- サンプリング行列 (2)
- サンプリング行列 (3)
- サンプリング行列 (4)
- サンプリング行列 (5)
- サンプリング行列 (6)
- サンプリング行列 (7)
- 特異値分解(Singular Value Decomposition)
- 特異値分解(Singular Value Decomposition) (2)
- 特異値分解(Singular Value Decomposition) (3)
- 特異値分解(Singular Value Decomposition) (4)
- 特異値分解(Singular Value Decomposition) (5)
- 基底による直接光の近似
- アプローチの比較
- ハイブリッド手法の計算手順
- 係数の数の比較
- ランタイムの計算処理
- 係数の計算方法
- ランタイムの計算処理 (2)
- 間接光計算の解説手順 (11)
- ショートデモ
- 間接光計算の解説手順 (12)
- 間接光計算の解説手順 (13)
- Light Probe
- Light Probe (2)
- Light Probeによるライティング
- Light Probeによるライティング (2)
- 間接光計算の解説手順 (14)
- Light Probeの計算
- 動的なLight Probe
- 動的なLight Probe (2)
- 間接光計算の解説手順 (15)
- デモ
- デモ詳細
- パフォーマンス
- まとめ
- 発表の流れ (5)
- シーン分割による高速化の解説手順
- シーン分割による高速化の解説手順 (2)
- 問題提起 (14)
- 問題提起 (24)
- 問題提起 (34)
- 問題提起 (44)
- シーン分割による高速化の解説手順 (3)
- シーン分割による高速化の解説手順 (4)
- キーアイディア (16)
- キーアイディア (26)
- キーアイディア (36)
- キーアイディア (46)
- キーアイディア (56)
- キーアイディア (66)
- シーン分割による高速化の解説手順 (5)
- 光の伝播行列の計算 (17)
- 光の伝播行列の計算 (27)
- 光の伝播行列の計算 (37)
- 光の伝播行列の計算 (47)
- 光の伝播行列の計算 (57)
- 光の伝播行列の計算 (67)
- 光の伝播行列の計算 (77)
- シーン分割による高速化の解説手順 (6)
- シーン分割による高速化の解説手順 (7)
- 多重反射への拡張
- シーン分割による高速化の解説手順 (8)
- モジュールの導入 (13)
- モジュールの導入 (23)
- モジュールの導入 (33)
- シーン分割による高速化の解説手順 (9)
- デモ (2)
- 考察
- 発表の流れ (6)
- 発表内容のまとめ
- 著作権について
- 最後に
- Appendix A 実装について
- Appendix A 前計算について
- Appendix A ランタイム
- Appendix A ランタイム 係数
- Appendix A ランタイム
- Appendix A ランタイム 最終パス
- Appendix A ランタイム Light Probe(1)
- Appendix A ランタイム Light Probe(2)
- Appendix B 後半の補足
- Appendix B 後半の補足 (2)
- Appendix C 記号の表記
-
CEDEC 2012
光の伝播行列の計算 ( 27 )
bull 光の伝播行列 P を三要素に分割1 光の出射行列 Pout2 光の通過行列 Pthrough3 光の入射行列 Pin
右の小領域 中央の小領域 左の小領域P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 37 )
bull 光の出射行列 Poutndash 小領域 rArr ライトフィールド
119819120783 出射ライトフィールドのサンプル数119821 伝播元の小領域の頂点数
iquest119819120783行iquest
⋮⋮
⋮4 5 9
6
8
CEDEC 2012
光の伝播行列の計算 ( 47 )
bull 光の通過行列 Pthroughndash ライトフィールド rArr ライトフィールド
119819120784 出射ライトフィールドのサンプル数119819120783入射ライトフィールドのサンプル数
iquest119819120784行iquest
⋮⋮
⋮5 8
2
5 ⋯
CEDEC 2012
光の伝播行列の計算 ( 57 )
bull 光の入射行列 Pinndash ライトフィールド rArr 小領域
119820伝播先の小領域の頂点数119819120784 入射ライトフィールドのサンプル数
iquest119820行iquest
⋮
2 5 6
1
5⋮
Pin 計算時にヘミキューブ法などを用いて立体角を考慮
CEDEC 2012
光の伝播行列の計算 ( 67 )
bull 全ての小領域間の光の伝播は三種類の行列の組み合わせで計算可能
P = Pin times Pout上記例ではは再利用不可能だがは共通
P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 77 )
bull 光の伝播の計算のまとめ
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
多重反射への拡張
bull 間接光計算を反復実行
⋮
間接光計算
間接光計算
間接光計算
直接光
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
モジュールの導入 ( 13 )
bull モジュール( = 再利用可能な汎用小領域)の導入
bull 上記のようなシーンは「回転」も考慮すれば5種の立方体モジュールの組合わせで構成可能
3 方向壁 2 方向壁 2 方向壁 1 方向壁 0 方向壁
CEDEC 2012
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
モジュールの導入 ( 23 )
通過行列は(直進 右折 左折)の三種類
ライトフィールドデータを一つの行列に格納
特異値分解
データ量の削減及び計算の高速化
詳しくは論文 51 節参照
CEDEC 2012
モジュールの導入 ( 33 )
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
メリットは多いがシーンの自由度とのトレードオフ
モジュールの使い所は要検討
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
デモ
CEDEC 2012
考察
bull ライトフィールドは本当に必要か
bull 小領域間の位置関係が固定ならば(恐らく)不要
rArr レイトレーシング法で伝播行列 P を直接計算 した方が効率的bull 小領域を動的に入れ替える場合は必要
P = Pin times Pthrough times Pout
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ 3 まとめ
CEDEC 2012
発表内容のまとめ
bull Modular Radiance Transfer 法を解説ndash 長所
bull とにかく高速bull 多重反射を含んだ間接光が扱えるbull 技術のコア部分は汎用的で応用の余地が高い
ndash 短所bull 前計算を含め使い方に癖がある ( 実験を通してノウハウを蓄積すれば余り問題にならない )
ゲームへの応用は十分可能
CEDEC 2012
本スライド内で引用した論文の図の著作権は全て論文著者に帰属します
その他の図スライド本体挿絵等の著作権は
シリコンスタジオ株式会社に帰属します
著作権について
CEDEC 2012
最後に
御清聴ありがとうございました
httpwwwsiliconstudiocojppresentationsindexhtml
スライドデモは弊社 HP で近日公開
制作協力 河野 駿介 辻 俊晶 古家 亙 後藤 晋也 京田 文人 三谷 健一郎
問い合わせ先 田村 nk-tamurasiliconstudiocojp 安田 re-yasudasiliconstudiocojp
シリコンスタジオは常に人材を求めています
ご興味ある方は弊社 HP をご覧ください
CEDEC 2012
Appendix A 実装について
bull 実装自体は様々なアプローチが可能bull ここではデモの実装でのアプローチを紹介
CEDEC 2012
Appendix A 前計算について
bull F の計算ndash メッシュの全頂点からキューブマップにレンダリングndash ピクセルには頂点 ID とウェイトを出力
bull 直接光サンプルの計算ndash 頂点カラーを Stream Out でバッファに出力ndash 頂点シャドウあり
bull Light Probe の計算ndash 各 Probe の中心からキューブマップにレンダリングndash の対応する基底ベクトル同士を足し合わせた
ベクトル ( 直接光 + 間接光 ) を頂点カラーとして使用
CEDEC 2012
Appendix A ランタイム
bull 直接光の結果を Stream Out でバッファに出力ndash 頂点シャドウありndash カラーバッファへの書き込み OFFndash 複数オブジェクトの場合は単一バッファにオフ
セットを変えて出力
119897119889
CEDEC 2012
Appendix A ランタイム 係数
bull Compute Shader で を計算ndash は極めて横長の行列 ( 行 ~100程度 列 頂点数 )ndash は GPU が少々苦手な処理ではあるものの
タイリングベースの実装で高速に処理可能
iquest
119897119889119960 lowast119861119889minus1
CEDEC 2012
Appendix A ランタイム
bull Compute Shader で を計算ndash は極めて縦長 ( の転置と同サイズ ) なので素直に実装可能
iquest
119861119894119899119889 119960119897119894119899 119889 lowast
CEDEC 2012
Appendix A ランタイム 最終パス
bull を頂点カラーとして入力としてピクセル単位の直接光のシェーディングと合成して最終結果を得る
iquest +
CEDEC 2012
Appendix A ランタイム Light Probe(1)
bull Compute Shader でを計算ndash は縦長 ( 行 頂点数 timesSH係数の数 列 ~100程度 )
iquest
119880119907119900119897 119960119897119907119900119897 lowast
CEDEC 2012
Appendix A ランタイム Light Probe(2)
bull Probe を用いて Dynamic Objects をライティングndash 各 Light Probe が SH を 9係数で保持するため
3D Texture ではなく Structured-Buffer で保持ndash Vertex Shader 内で自力 Tri-Linear 補間
iquest +
CEDEC 2012
Appendix B 後半の補足
bull 大規模なシーンでの光の伝播bull 小領域間の光の伝播は個別に総当たりで計算
rArr小領域間の光の伝播は距離によって大きく減衰
実際は大規模シーンでも概ね二つ隣の小領域まで考慮すれば十分
CEDEC 2012
Appendix B 後半の補足
bull 小領域の境界
bull 小領域の境界部分が不連続になる rArr 小領域の境界部分は補間の必要がある
CEDEC 2012
bull スライドと論文で表記が違う記号があります
Appendix C 記号の表記
スライドでの表記 論文での表記
b
- Slide 1
- 発表の流れ
- 発表の流れ (2)
- 発表の概要
- 解説技術の特徴
- 注意点
- 発表の流れ (3)
- 発表の流れ (4)
- 間接光の概要
- 間接光の概要 (2)
- 解説手法の計算概要
- 間接光計算の解説手順
- 間接光計算の解説手順 (2)
- 間接光計算の解説手順 (3)
- 間接光計算の解説手順 (4)
- 間接光計算の解説手順 (5)
- 間接光計算の解説手順 (6)
- 間接光計算の考え方
- 間接光計算の考え方 (2)
- 間接光計算の考え方 (3)
- 間接光計算の考え方 (4)
- 間接光計算の考え方 (5)
- 間接光計算の解説手順 (7)
- 問題提起
- 間接光計算の解説手順 (8)
- キーアイディア
- キーアイディア (2)
- キーアイディア (3)
- キーアイディア (4)
- キーアイディア (5)
- キーアイディア (6)
- 間接光計算の解説手順 (9)
- 間接光計算の解説手順 (10)
- を求める
- を求める (2)
- を求める (3)
- 最適な基底
- サンプリングベースの基底
- サンプルの選び方について
- サンプリング行列
- サンプリング行列 (2)
- サンプリング行列 (3)
- サンプリング行列 (4)
- サンプリング行列 (5)
- サンプリング行列 (6)
- サンプリング行列 (7)
- 特異値分解(Singular Value Decomposition)
- 特異値分解(Singular Value Decomposition) (2)
- 特異値分解(Singular Value Decomposition) (3)
- 特異値分解(Singular Value Decomposition) (4)
- 特異値分解(Singular Value Decomposition) (5)
- 基底による直接光の近似
- アプローチの比較
- ハイブリッド手法の計算手順
- 係数の数の比較
- ランタイムの計算処理
- 係数の計算方法
- ランタイムの計算処理 (2)
- 間接光計算の解説手順 (11)
- ショートデモ
- 間接光計算の解説手順 (12)
- 間接光計算の解説手順 (13)
- Light Probe
- Light Probe (2)
- Light Probeによるライティング
- Light Probeによるライティング (2)
- 間接光計算の解説手順 (14)
- Light Probeの計算
- 動的なLight Probe
- 動的なLight Probe (2)
- 間接光計算の解説手順 (15)
- デモ
- デモ詳細
- パフォーマンス
- まとめ
- 発表の流れ (5)
- シーン分割による高速化の解説手順
- シーン分割による高速化の解説手順 (2)
- 問題提起 (14)
- 問題提起 (24)
- 問題提起 (34)
- 問題提起 (44)
- シーン分割による高速化の解説手順 (3)
- シーン分割による高速化の解説手順 (4)
- キーアイディア (16)
- キーアイディア (26)
- キーアイディア (36)
- キーアイディア (46)
- キーアイディア (56)
- キーアイディア (66)
- シーン分割による高速化の解説手順 (5)
- 光の伝播行列の計算 (17)
- 光の伝播行列の計算 (27)
- 光の伝播行列の計算 (37)
- 光の伝播行列の計算 (47)
- 光の伝播行列の計算 (57)
- 光の伝播行列の計算 (67)
- 光の伝播行列の計算 (77)
- シーン分割による高速化の解説手順 (6)
- シーン分割による高速化の解説手順 (7)
- 多重反射への拡張
- シーン分割による高速化の解説手順 (8)
- モジュールの導入 (13)
- モジュールの導入 (23)
- モジュールの導入 (33)
- シーン分割による高速化の解説手順 (9)
- デモ (2)
- 考察
- 発表の流れ (6)
- 発表内容のまとめ
- 著作権について
- 最後に
- Appendix A 実装について
- Appendix A 前計算について
- Appendix A ランタイム
- Appendix A ランタイム 係数
- Appendix A ランタイム
- Appendix A ランタイム 最終パス
- Appendix A ランタイム Light Probe(1)
- Appendix A ランタイム Light Probe(2)
- Appendix B 後半の補足
- Appendix B 後半の補足 (2)
- Appendix C 記号の表記
-
CEDEC 2012
光の伝播行列の計算 ( 37 )
bull 光の出射行列 Poutndash 小領域 rArr ライトフィールド
119819120783 出射ライトフィールドのサンプル数119821 伝播元の小領域の頂点数
iquest119819120783行iquest
⋮⋮
⋮4 5 9
6
8
CEDEC 2012
光の伝播行列の計算 ( 47 )
bull 光の通過行列 Pthroughndash ライトフィールド rArr ライトフィールド
119819120784 出射ライトフィールドのサンプル数119819120783入射ライトフィールドのサンプル数
iquest119819120784行iquest
⋮⋮
⋮5 8
2
5 ⋯
CEDEC 2012
光の伝播行列の計算 ( 57 )
bull 光の入射行列 Pinndash ライトフィールド rArr 小領域
119820伝播先の小領域の頂点数119819120784 入射ライトフィールドのサンプル数
iquest119820行iquest
⋮
2 5 6
1
5⋮
Pin 計算時にヘミキューブ法などを用いて立体角を考慮
CEDEC 2012
光の伝播行列の計算 ( 67 )
bull 全ての小領域間の光の伝播は三種類の行列の組み合わせで計算可能
P = Pin times Pout上記例ではは再利用不可能だがは共通
P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 77 )
bull 光の伝播の計算のまとめ
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
多重反射への拡張
bull 間接光計算を反復実行
⋮
間接光計算
間接光計算
間接光計算
直接光
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
モジュールの導入 ( 13 )
bull モジュール( = 再利用可能な汎用小領域)の導入
bull 上記のようなシーンは「回転」も考慮すれば5種の立方体モジュールの組合わせで構成可能
3 方向壁 2 方向壁 2 方向壁 1 方向壁 0 方向壁
CEDEC 2012
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
モジュールの導入 ( 23 )
通過行列は(直進 右折 左折)の三種類
ライトフィールドデータを一つの行列に格納
特異値分解
データ量の削減及び計算の高速化
詳しくは論文 51 節参照
CEDEC 2012
モジュールの導入 ( 33 )
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
メリットは多いがシーンの自由度とのトレードオフ
モジュールの使い所は要検討
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
デモ
CEDEC 2012
考察
bull ライトフィールドは本当に必要か
bull 小領域間の位置関係が固定ならば(恐らく)不要
rArr レイトレーシング法で伝播行列 P を直接計算 した方が効率的bull 小領域を動的に入れ替える場合は必要
P = Pin times Pthrough times Pout
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ 3 まとめ
CEDEC 2012
発表内容のまとめ
bull Modular Radiance Transfer 法を解説ndash 長所
bull とにかく高速bull 多重反射を含んだ間接光が扱えるbull 技術のコア部分は汎用的で応用の余地が高い
ndash 短所bull 前計算を含め使い方に癖がある ( 実験を通してノウハウを蓄積すれば余り問題にならない )
ゲームへの応用は十分可能
CEDEC 2012
本スライド内で引用した論文の図の著作権は全て論文著者に帰属します
その他の図スライド本体挿絵等の著作権は
シリコンスタジオ株式会社に帰属します
著作権について
CEDEC 2012
最後に
御清聴ありがとうございました
httpwwwsiliconstudiocojppresentationsindexhtml
スライドデモは弊社 HP で近日公開
制作協力 河野 駿介 辻 俊晶 古家 亙 後藤 晋也 京田 文人 三谷 健一郎
問い合わせ先 田村 nk-tamurasiliconstudiocojp 安田 re-yasudasiliconstudiocojp
シリコンスタジオは常に人材を求めています
ご興味ある方は弊社 HP をご覧ください
CEDEC 2012
Appendix A 実装について
bull 実装自体は様々なアプローチが可能bull ここではデモの実装でのアプローチを紹介
CEDEC 2012
Appendix A 前計算について
bull F の計算ndash メッシュの全頂点からキューブマップにレンダリングndash ピクセルには頂点 ID とウェイトを出力
bull 直接光サンプルの計算ndash 頂点カラーを Stream Out でバッファに出力ndash 頂点シャドウあり
bull Light Probe の計算ndash 各 Probe の中心からキューブマップにレンダリングndash の対応する基底ベクトル同士を足し合わせた
ベクトル ( 直接光 + 間接光 ) を頂点カラーとして使用
CEDEC 2012
Appendix A ランタイム
bull 直接光の結果を Stream Out でバッファに出力ndash 頂点シャドウありndash カラーバッファへの書き込み OFFndash 複数オブジェクトの場合は単一バッファにオフ
セットを変えて出力
119897119889
CEDEC 2012
Appendix A ランタイム 係数
bull Compute Shader で を計算ndash は極めて横長の行列 ( 行 ~100程度 列 頂点数 )ndash は GPU が少々苦手な処理ではあるものの
タイリングベースの実装で高速に処理可能
iquest
119897119889119960 lowast119861119889minus1
CEDEC 2012
Appendix A ランタイム
bull Compute Shader で を計算ndash は極めて縦長 ( の転置と同サイズ ) なので素直に実装可能
iquest
119861119894119899119889 119960119897119894119899 119889 lowast
CEDEC 2012
Appendix A ランタイム 最終パス
bull を頂点カラーとして入力としてピクセル単位の直接光のシェーディングと合成して最終結果を得る
iquest +
CEDEC 2012
Appendix A ランタイム Light Probe(1)
bull Compute Shader でを計算ndash は縦長 ( 行 頂点数 timesSH係数の数 列 ~100程度 )
iquest
119880119907119900119897 119960119897119907119900119897 lowast
CEDEC 2012
Appendix A ランタイム Light Probe(2)
bull Probe を用いて Dynamic Objects をライティングndash 各 Light Probe が SH を 9係数で保持するため
3D Texture ではなく Structured-Buffer で保持ndash Vertex Shader 内で自力 Tri-Linear 補間
iquest +
CEDEC 2012
Appendix B 後半の補足
bull 大規模なシーンでの光の伝播bull 小領域間の光の伝播は個別に総当たりで計算
rArr小領域間の光の伝播は距離によって大きく減衰
実際は大規模シーンでも概ね二つ隣の小領域まで考慮すれば十分
CEDEC 2012
Appendix B 後半の補足
bull 小領域の境界
bull 小領域の境界部分が不連続になる rArr 小領域の境界部分は補間の必要がある
CEDEC 2012
bull スライドと論文で表記が違う記号があります
Appendix C 記号の表記
スライドでの表記 論文での表記
b
- Slide 1
- 発表の流れ
- 発表の流れ (2)
- 発表の概要
- 解説技術の特徴
- 注意点
- 発表の流れ (3)
- 発表の流れ (4)
- 間接光の概要
- 間接光の概要 (2)
- 解説手法の計算概要
- 間接光計算の解説手順
- 間接光計算の解説手順 (2)
- 間接光計算の解説手順 (3)
- 間接光計算の解説手順 (4)
- 間接光計算の解説手順 (5)
- 間接光計算の解説手順 (6)
- 間接光計算の考え方
- 間接光計算の考え方 (2)
- 間接光計算の考え方 (3)
- 間接光計算の考え方 (4)
- 間接光計算の考え方 (5)
- 間接光計算の解説手順 (7)
- 問題提起
- 間接光計算の解説手順 (8)
- キーアイディア
- キーアイディア (2)
- キーアイディア (3)
- キーアイディア (4)
- キーアイディア (5)
- キーアイディア (6)
- 間接光計算の解説手順 (9)
- 間接光計算の解説手順 (10)
- を求める
- を求める (2)
- を求める (3)
- 最適な基底
- サンプリングベースの基底
- サンプルの選び方について
- サンプリング行列
- サンプリング行列 (2)
- サンプリング行列 (3)
- サンプリング行列 (4)
- サンプリング行列 (5)
- サンプリング行列 (6)
- サンプリング行列 (7)
- 特異値分解(Singular Value Decomposition)
- 特異値分解(Singular Value Decomposition) (2)
- 特異値分解(Singular Value Decomposition) (3)
- 特異値分解(Singular Value Decomposition) (4)
- 特異値分解(Singular Value Decomposition) (5)
- 基底による直接光の近似
- アプローチの比較
- ハイブリッド手法の計算手順
- 係数の数の比較
- ランタイムの計算処理
- 係数の計算方法
- ランタイムの計算処理 (2)
- 間接光計算の解説手順 (11)
- ショートデモ
- 間接光計算の解説手順 (12)
- 間接光計算の解説手順 (13)
- Light Probe
- Light Probe (2)
- Light Probeによるライティング
- Light Probeによるライティング (2)
- 間接光計算の解説手順 (14)
- Light Probeの計算
- 動的なLight Probe
- 動的なLight Probe (2)
- 間接光計算の解説手順 (15)
- デモ
- デモ詳細
- パフォーマンス
- まとめ
- 発表の流れ (5)
- シーン分割による高速化の解説手順
- シーン分割による高速化の解説手順 (2)
- 問題提起 (14)
- 問題提起 (24)
- 問題提起 (34)
- 問題提起 (44)
- シーン分割による高速化の解説手順 (3)
- シーン分割による高速化の解説手順 (4)
- キーアイディア (16)
- キーアイディア (26)
- キーアイディア (36)
- キーアイディア (46)
- キーアイディア (56)
- キーアイディア (66)
- シーン分割による高速化の解説手順 (5)
- 光の伝播行列の計算 (17)
- 光の伝播行列の計算 (27)
- 光の伝播行列の計算 (37)
- 光の伝播行列の計算 (47)
- 光の伝播行列の計算 (57)
- 光の伝播行列の計算 (67)
- 光の伝播行列の計算 (77)
- シーン分割による高速化の解説手順 (6)
- シーン分割による高速化の解説手順 (7)
- 多重反射への拡張
- シーン分割による高速化の解説手順 (8)
- モジュールの導入 (13)
- モジュールの導入 (23)
- モジュールの導入 (33)
- シーン分割による高速化の解説手順 (9)
- デモ (2)
- 考察
- 発表の流れ (6)
- 発表内容のまとめ
- 著作権について
- 最後に
- Appendix A 実装について
- Appendix A 前計算について
- Appendix A ランタイム
- Appendix A ランタイム 係数
- Appendix A ランタイム
- Appendix A ランタイム 最終パス
- Appendix A ランタイム Light Probe(1)
- Appendix A ランタイム Light Probe(2)
- Appendix B 後半の補足
- Appendix B 後半の補足 (2)
- Appendix C 記号の表記
-
CEDEC 2012
光の伝播行列の計算 ( 47 )
bull 光の通過行列 Pthroughndash ライトフィールド rArr ライトフィールド
119819120784 出射ライトフィールドのサンプル数119819120783入射ライトフィールドのサンプル数
iquest119819120784行iquest
⋮⋮
⋮5 8
2
5 ⋯
CEDEC 2012
光の伝播行列の計算 ( 57 )
bull 光の入射行列 Pinndash ライトフィールド rArr 小領域
119820伝播先の小領域の頂点数119819120784 入射ライトフィールドのサンプル数
iquest119820行iquest
⋮
2 5 6
1
5⋮
Pin 計算時にヘミキューブ法などを用いて立体角を考慮
CEDEC 2012
光の伝播行列の計算 ( 67 )
bull 全ての小領域間の光の伝播は三種類の行列の組み合わせで計算可能
P = Pin times Pout上記例ではは再利用不可能だがは共通
P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 77 )
bull 光の伝播の計算のまとめ
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
多重反射への拡張
bull 間接光計算を反復実行
⋮
間接光計算
間接光計算
間接光計算
直接光
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
モジュールの導入 ( 13 )
bull モジュール( = 再利用可能な汎用小領域)の導入
bull 上記のようなシーンは「回転」も考慮すれば5種の立方体モジュールの組合わせで構成可能
3 方向壁 2 方向壁 2 方向壁 1 方向壁 0 方向壁
CEDEC 2012
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
モジュールの導入 ( 23 )
通過行列は(直進 右折 左折)の三種類
ライトフィールドデータを一つの行列に格納
特異値分解
データ量の削減及び計算の高速化
詳しくは論文 51 節参照
CEDEC 2012
モジュールの導入 ( 33 )
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
メリットは多いがシーンの自由度とのトレードオフ
モジュールの使い所は要検討
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
デモ
CEDEC 2012
考察
bull ライトフィールドは本当に必要か
bull 小領域間の位置関係が固定ならば(恐らく)不要
rArr レイトレーシング法で伝播行列 P を直接計算 した方が効率的bull 小領域を動的に入れ替える場合は必要
P = Pin times Pthrough times Pout
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ 3 まとめ
CEDEC 2012
発表内容のまとめ
bull Modular Radiance Transfer 法を解説ndash 長所
bull とにかく高速bull 多重反射を含んだ間接光が扱えるbull 技術のコア部分は汎用的で応用の余地が高い
ndash 短所bull 前計算を含め使い方に癖がある ( 実験を通してノウハウを蓄積すれば余り問題にならない )
ゲームへの応用は十分可能
CEDEC 2012
本スライド内で引用した論文の図の著作権は全て論文著者に帰属します
その他の図スライド本体挿絵等の著作権は
シリコンスタジオ株式会社に帰属します
著作権について
CEDEC 2012
最後に
御清聴ありがとうございました
httpwwwsiliconstudiocojppresentationsindexhtml
スライドデモは弊社 HP で近日公開
制作協力 河野 駿介 辻 俊晶 古家 亙 後藤 晋也 京田 文人 三谷 健一郎
問い合わせ先 田村 nk-tamurasiliconstudiocojp 安田 re-yasudasiliconstudiocojp
シリコンスタジオは常に人材を求めています
ご興味ある方は弊社 HP をご覧ください
CEDEC 2012
Appendix A 実装について
bull 実装自体は様々なアプローチが可能bull ここではデモの実装でのアプローチを紹介
CEDEC 2012
Appendix A 前計算について
bull F の計算ndash メッシュの全頂点からキューブマップにレンダリングndash ピクセルには頂点 ID とウェイトを出力
bull 直接光サンプルの計算ndash 頂点カラーを Stream Out でバッファに出力ndash 頂点シャドウあり
bull Light Probe の計算ndash 各 Probe の中心からキューブマップにレンダリングndash の対応する基底ベクトル同士を足し合わせた
ベクトル ( 直接光 + 間接光 ) を頂点カラーとして使用
CEDEC 2012
Appendix A ランタイム
bull 直接光の結果を Stream Out でバッファに出力ndash 頂点シャドウありndash カラーバッファへの書き込み OFFndash 複数オブジェクトの場合は単一バッファにオフ
セットを変えて出力
119897119889
CEDEC 2012
Appendix A ランタイム 係数
bull Compute Shader で を計算ndash は極めて横長の行列 ( 行 ~100程度 列 頂点数 )ndash は GPU が少々苦手な処理ではあるものの
タイリングベースの実装で高速に処理可能
iquest
119897119889119960 lowast119861119889minus1
CEDEC 2012
Appendix A ランタイム
bull Compute Shader で を計算ndash は極めて縦長 ( の転置と同サイズ ) なので素直に実装可能
iquest
119861119894119899119889 119960119897119894119899 119889 lowast
CEDEC 2012
Appendix A ランタイム 最終パス
bull を頂点カラーとして入力としてピクセル単位の直接光のシェーディングと合成して最終結果を得る
iquest +
CEDEC 2012
Appendix A ランタイム Light Probe(1)
bull Compute Shader でを計算ndash は縦長 ( 行 頂点数 timesSH係数の数 列 ~100程度 )
iquest
119880119907119900119897 119960119897119907119900119897 lowast
CEDEC 2012
Appendix A ランタイム Light Probe(2)
bull Probe を用いて Dynamic Objects をライティングndash 各 Light Probe が SH を 9係数で保持するため
3D Texture ではなく Structured-Buffer で保持ndash Vertex Shader 内で自力 Tri-Linear 補間
iquest +
CEDEC 2012
Appendix B 後半の補足
bull 大規模なシーンでの光の伝播bull 小領域間の光の伝播は個別に総当たりで計算
rArr小領域間の光の伝播は距離によって大きく減衰
実際は大規模シーンでも概ね二つ隣の小領域まで考慮すれば十分
CEDEC 2012
Appendix B 後半の補足
bull 小領域の境界
bull 小領域の境界部分が不連続になる rArr 小領域の境界部分は補間の必要がある
CEDEC 2012
bull スライドと論文で表記が違う記号があります
Appendix C 記号の表記
スライドでの表記 論文での表記
b
- Slide 1
- 発表の流れ
- 発表の流れ (2)
- 発表の概要
- 解説技術の特徴
- 注意点
- 発表の流れ (3)
- 発表の流れ (4)
- 間接光の概要
- 間接光の概要 (2)
- 解説手法の計算概要
- 間接光計算の解説手順
- 間接光計算の解説手順 (2)
- 間接光計算の解説手順 (3)
- 間接光計算の解説手順 (4)
- 間接光計算の解説手順 (5)
- 間接光計算の解説手順 (6)
- 間接光計算の考え方
- 間接光計算の考え方 (2)
- 間接光計算の考え方 (3)
- 間接光計算の考え方 (4)
- 間接光計算の考え方 (5)
- 間接光計算の解説手順 (7)
- 問題提起
- 間接光計算の解説手順 (8)
- キーアイディア
- キーアイディア (2)
- キーアイディア (3)
- キーアイディア (4)
- キーアイディア (5)
- キーアイディア (6)
- 間接光計算の解説手順 (9)
- 間接光計算の解説手順 (10)
- を求める
- を求める (2)
- を求める (3)
- 最適な基底
- サンプリングベースの基底
- サンプルの選び方について
- サンプリング行列
- サンプリング行列 (2)
- サンプリング行列 (3)
- サンプリング行列 (4)
- サンプリング行列 (5)
- サンプリング行列 (6)
- サンプリング行列 (7)
- 特異値分解(Singular Value Decomposition)
- 特異値分解(Singular Value Decomposition) (2)
- 特異値分解(Singular Value Decomposition) (3)
- 特異値分解(Singular Value Decomposition) (4)
- 特異値分解(Singular Value Decomposition) (5)
- 基底による直接光の近似
- アプローチの比較
- ハイブリッド手法の計算手順
- 係数の数の比較
- ランタイムの計算処理
- 係数の計算方法
- ランタイムの計算処理 (2)
- 間接光計算の解説手順 (11)
- ショートデモ
- 間接光計算の解説手順 (12)
- 間接光計算の解説手順 (13)
- Light Probe
- Light Probe (2)
- Light Probeによるライティング
- Light Probeによるライティング (2)
- 間接光計算の解説手順 (14)
- Light Probeの計算
- 動的なLight Probe
- 動的なLight Probe (2)
- 間接光計算の解説手順 (15)
- デモ
- デモ詳細
- パフォーマンス
- まとめ
- 発表の流れ (5)
- シーン分割による高速化の解説手順
- シーン分割による高速化の解説手順 (2)
- 問題提起 (14)
- 問題提起 (24)
- 問題提起 (34)
- 問題提起 (44)
- シーン分割による高速化の解説手順 (3)
- シーン分割による高速化の解説手順 (4)
- キーアイディア (16)
- キーアイディア (26)
- キーアイディア (36)
- キーアイディア (46)
- キーアイディア (56)
- キーアイディア (66)
- シーン分割による高速化の解説手順 (5)
- 光の伝播行列の計算 (17)
- 光の伝播行列の計算 (27)
- 光の伝播行列の計算 (37)
- 光の伝播行列の計算 (47)
- 光の伝播行列の計算 (57)
- 光の伝播行列の計算 (67)
- 光の伝播行列の計算 (77)
- シーン分割による高速化の解説手順 (6)
- シーン分割による高速化の解説手順 (7)
- 多重反射への拡張
- シーン分割による高速化の解説手順 (8)
- モジュールの導入 (13)
- モジュールの導入 (23)
- モジュールの導入 (33)
- シーン分割による高速化の解説手順 (9)
- デモ (2)
- 考察
- 発表の流れ (6)
- 発表内容のまとめ
- 著作権について
- 最後に
- Appendix A 実装について
- Appendix A 前計算について
- Appendix A ランタイム
- Appendix A ランタイム 係数
- Appendix A ランタイム
- Appendix A ランタイム 最終パス
- Appendix A ランタイム Light Probe(1)
- Appendix A ランタイム Light Probe(2)
- Appendix B 後半の補足
- Appendix B 後半の補足 (2)
- Appendix C 記号の表記
-
CEDEC 2012
光の伝播行列の計算 ( 57 )
bull 光の入射行列 Pinndash ライトフィールド rArr 小領域
119820伝播先の小領域の頂点数119819120784 入射ライトフィールドのサンプル数
iquest119820行iquest
⋮
2 5 6
1
5⋮
Pin 計算時にヘミキューブ法などを用いて立体角を考慮
CEDEC 2012
光の伝播行列の計算 ( 67 )
bull 全ての小領域間の光の伝播は三種類の行列の組み合わせで計算可能
P = Pin times Pout上記例ではは再利用不可能だがは共通
P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 77 )
bull 光の伝播の計算のまとめ
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
多重反射への拡張
bull 間接光計算を反復実行
⋮
間接光計算
間接光計算
間接光計算
直接光
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
モジュールの導入 ( 13 )
bull モジュール( = 再利用可能な汎用小領域)の導入
bull 上記のようなシーンは「回転」も考慮すれば5種の立方体モジュールの組合わせで構成可能
3 方向壁 2 方向壁 2 方向壁 1 方向壁 0 方向壁
CEDEC 2012
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
モジュールの導入 ( 23 )
通過行列は(直進 右折 左折)の三種類
ライトフィールドデータを一つの行列に格納
特異値分解
データ量の削減及び計算の高速化
詳しくは論文 51 節参照
CEDEC 2012
モジュールの導入 ( 33 )
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
メリットは多いがシーンの自由度とのトレードオフ
モジュールの使い所は要検討
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
デモ
CEDEC 2012
考察
bull ライトフィールドは本当に必要か
bull 小領域間の位置関係が固定ならば(恐らく)不要
rArr レイトレーシング法で伝播行列 P を直接計算 した方が効率的bull 小領域を動的に入れ替える場合は必要
P = Pin times Pthrough times Pout
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ 3 まとめ
CEDEC 2012
発表内容のまとめ
bull Modular Radiance Transfer 法を解説ndash 長所
bull とにかく高速bull 多重反射を含んだ間接光が扱えるbull 技術のコア部分は汎用的で応用の余地が高い
ndash 短所bull 前計算を含め使い方に癖がある ( 実験を通してノウハウを蓄積すれば余り問題にならない )
ゲームへの応用は十分可能
CEDEC 2012
本スライド内で引用した論文の図の著作権は全て論文著者に帰属します
その他の図スライド本体挿絵等の著作権は
シリコンスタジオ株式会社に帰属します
著作権について
CEDEC 2012
最後に
御清聴ありがとうございました
httpwwwsiliconstudiocojppresentationsindexhtml
スライドデモは弊社 HP で近日公開
制作協力 河野 駿介 辻 俊晶 古家 亙 後藤 晋也 京田 文人 三谷 健一郎
問い合わせ先 田村 nk-tamurasiliconstudiocojp 安田 re-yasudasiliconstudiocojp
シリコンスタジオは常に人材を求めています
ご興味ある方は弊社 HP をご覧ください
CEDEC 2012
Appendix A 実装について
bull 実装自体は様々なアプローチが可能bull ここではデモの実装でのアプローチを紹介
CEDEC 2012
Appendix A 前計算について
bull F の計算ndash メッシュの全頂点からキューブマップにレンダリングndash ピクセルには頂点 ID とウェイトを出力
bull 直接光サンプルの計算ndash 頂点カラーを Stream Out でバッファに出力ndash 頂点シャドウあり
bull Light Probe の計算ndash 各 Probe の中心からキューブマップにレンダリングndash の対応する基底ベクトル同士を足し合わせた
ベクトル ( 直接光 + 間接光 ) を頂点カラーとして使用
CEDEC 2012
Appendix A ランタイム
bull 直接光の結果を Stream Out でバッファに出力ndash 頂点シャドウありndash カラーバッファへの書き込み OFFndash 複数オブジェクトの場合は単一バッファにオフ
セットを変えて出力
119897119889
CEDEC 2012
Appendix A ランタイム 係数
bull Compute Shader で を計算ndash は極めて横長の行列 ( 行 ~100程度 列 頂点数 )ndash は GPU が少々苦手な処理ではあるものの
タイリングベースの実装で高速に処理可能
iquest
119897119889119960 lowast119861119889minus1
CEDEC 2012
Appendix A ランタイム
bull Compute Shader で を計算ndash は極めて縦長 ( の転置と同サイズ ) なので素直に実装可能
iquest
119861119894119899119889 119960119897119894119899 119889 lowast
CEDEC 2012
Appendix A ランタイム 最終パス
bull を頂点カラーとして入力としてピクセル単位の直接光のシェーディングと合成して最終結果を得る
iquest +
CEDEC 2012
Appendix A ランタイム Light Probe(1)
bull Compute Shader でを計算ndash は縦長 ( 行 頂点数 timesSH係数の数 列 ~100程度 )
iquest
119880119907119900119897 119960119897119907119900119897 lowast
CEDEC 2012
Appendix A ランタイム Light Probe(2)
bull Probe を用いて Dynamic Objects をライティングndash 各 Light Probe が SH を 9係数で保持するため
3D Texture ではなく Structured-Buffer で保持ndash Vertex Shader 内で自力 Tri-Linear 補間
iquest +
CEDEC 2012
Appendix B 後半の補足
bull 大規模なシーンでの光の伝播bull 小領域間の光の伝播は個別に総当たりで計算
rArr小領域間の光の伝播は距離によって大きく減衰
実際は大規模シーンでも概ね二つ隣の小領域まで考慮すれば十分
CEDEC 2012
Appendix B 後半の補足
bull 小領域の境界
bull 小領域の境界部分が不連続になる rArr 小領域の境界部分は補間の必要がある
CEDEC 2012
bull スライドと論文で表記が違う記号があります
Appendix C 記号の表記
スライドでの表記 論文での表記
b
- Slide 1
- 発表の流れ
- 発表の流れ (2)
- 発表の概要
- 解説技術の特徴
- 注意点
- 発表の流れ (3)
- 発表の流れ (4)
- 間接光の概要
- 間接光の概要 (2)
- 解説手法の計算概要
- 間接光計算の解説手順
- 間接光計算の解説手順 (2)
- 間接光計算の解説手順 (3)
- 間接光計算の解説手順 (4)
- 間接光計算の解説手順 (5)
- 間接光計算の解説手順 (6)
- 間接光計算の考え方
- 間接光計算の考え方 (2)
- 間接光計算の考え方 (3)
- 間接光計算の考え方 (4)
- 間接光計算の考え方 (5)
- 間接光計算の解説手順 (7)
- 問題提起
- 間接光計算の解説手順 (8)
- キーアイディア
- キーアイディア (2)
- キーアイディア (3)
- キーアイディア (4)
- キーアイディア (5)
- キーアイディア (6)
- 間接光計算の解説手順 (9)
- 間接光計算の解説手順 (10)
- を求める
- を求める (2)
- を求める (3)
- 最適な基底
- サンプリングベースの基底
- サンプルの選び方について
- サンプリング行列
- サンプリング行列 (2)
- サンプリング行列 (3)
- サンプリング行列 (4)
- サンプリング行列 (5)
- サンプリング行列 (6)
- サンプリング行列 (7)
- 特異値分解(Singular Value Decomposition)
- 特異値分解(Singular Value Decomposition) (2)
- 特異値分解(Singular Value Decomposition) (3)
- 特異値分解(Singular Value Decomposition) (4)
- 特異値分解(Singular Value Decomposition) (5)
- 基底による直接光の近似
- アプローチの比較
- ハイブリッド手法の計算手順
- 係数の数の比較
- ランタイムの計算処理
- 係数の計算方法
- ランタイムの計算処理 (2)
- 間接光計算の解説手順 (11)
- ショートデモ
- 間接光計算の解説手順 (12)
- 間接光計算の解説手順 (13)
- Light Probe
- Light Probe (2)
- Light Probeによるライティング
- Light Probeによるライティング (2)
- 間接光計算の解説手順 (14)
- Light Probeの計算
- 動的なLight Probe
- 動的なLight Probe (2)
- 間接光計算の解説手順 (15)
- デモ
- デモ詳細
- パフォーマンス
- まとめ
- 発表の流れ (5)
- シーン分割による高速化の解説手順
- シーン分割による高速化の解説手順 (2)
- 問題提起 (14)
- 問題提起 (24)
- 問題提起 (34)
- 問題提起 (44)
- シーン分割による高速化の解説手順 (3)
- シーン分割による高速化の解説手順 (4)
- キーアイディア (16)
- キーアイディア (26)
- キーアイディア (36)
- キーアイディア (46)
- キーアイディア (56)
- キーアイディア (66)
- シーン分割による高速化の解説手順 (5)
- 光の伝播行列の計算 (17)
- 光の伝播行列の計算 (27)
- 光の伝播行列の計算 (37)
- 光の伝播行列の計算 (47)
- 光の伝播行列の計算 (57)
- 光の伝播行列の計算 (67)
- 光の伝播行列の計算 (77)
- シーン分割による高速化の解説手順 (6)
- シーン分割による高速化の解説手順 (7)
- 多重反射への拡張
- シーン分割による高速化の解説手順 (8)
- モジュールの導入 (13)
- モジュールの導入 (23)
- モジュールの導入 (33)
- シーン分割による高速化の解説手順 (9)
- デモ (2)
- 考察
- 発表の流れ (6)
- 発表内容のまとめ
- 著作権について
- 最後に
- Appendix A 実装について
- Appendix A 前計算について
- Appendix A ランタイム
- Appendix A ランタイム 係数
- Appendix A ランタイム
- Appendix A ランタイム 最終パス
- Appendix A ランタイム Light Probe(1)
- Appendix A ランタイム Light Probe(2)
- Appendix B 後半の補足
- Appendix B 後半の補足 (2)
- Appendix C 記号の表記
-
CEDEC 2012
光の伝播行列の計算 ( 67 )
bull 全ての小領域間の光の伝播は三種類の行列の組み合わせで計算可能
P = Pin times Pout上記例ではは再利用不可能だがは共通
P = Pin times Pthrough times Pout
CEDEC 2012
光の伝播行列の計算 ( 77 )
bull 光の伝播の計算のまとめ
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
多重反射への拡張
bull 間接光計算を反復実行
⋮
間接光計算
間接光計算
間接光計算
直接光
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
モジュールの導入 ( 13 )
bull モジュール( = 再利用可能な汎用小領域)の導入
bull 上記のようなシーンは「回転」も考慮すれば5種の立方体モジュールの組合わせで構成可能
3 方向壁 2 方向壁 2 方向壁 1 方向壁 0 方向壁
CEDEC 2012
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
モジュールの導入 ( 23 )
通過行列は(直進 右折 左折)の三種類
ライトフィールドデータを一つの行列に格納
特異値分解
データ量の削減及び計算の高速化
詳しくは論文 51 節参照
CEDEC 2012
モジュールの導入 ( 33 )
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
メリットは多いがシーンの自由度とのトレードオフ
モジュールの使い所は要検討
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
デモ
CEDEC 2012
考察
bull ライトフィールドは本当に必要か
bull 小領域間の位置関係が固定ならば(恐らく)不要
rArr レイトレーシング法で伝播行列 P を直接計算 した方が効率的bull 小領域を動的に入れ替える場合は必要
P = Pin times Pthrough times Pout
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ 3 まとめ
CEDEC 2012
発表内容のまとめ
bull Modular Radiance Transfer 法を解説ndash 長所
bull とにかく高速bull 多重反射を含んだ間接光が扱えるbull 技術のコア部分は汎用的で応用の余地が高い
ndash 短所bull 前計算を含め使い方に癖がある ( 実験を通してノウハウを蓄積すれば余り問題にならない )
ゲームへの応用は十分可能
CEDEC 2012
本スライド内で引用した論文の図の著作権は全て論文著者に帰属します
その他の図スライド本体挿絵等の著作権は
シリコンスタジオ株式会社に帰属します
著作権について
CEDEC 2012
最後に
御清聴ありがとうございました
httpwwwsiliconstudiocojppresentationsindexhtml
スライドデモは弊社 HP で近日公開
制作協力 河野 駿介 辻 俊晶 古家 亙 後藤 晋也 京田 文人 三谷 健一郎
問い合わせ先 田村 nk-tamurasiliconstudiocojp 安田 re-yasudasiliconstudiocojp
シリコンスタジオは常に人材を求めています
ご興味ある方は弊社 HP をご覧ください
CEDEC 2012
Appendix A 実装について
bull 実装自体は様々なアプローチが可能bull ここではデモの実装でのアプローチを紹介
CEDEC 2012
Appendix A 前計算について
bull F の計算ndash メッシュの全頂点からキューブマップにレンダリングndash ピクセルには頂点 ID とウェイトを出力
bull 直接光サンプルの計算ndash 頂点カラーを Stream Out でバッファに出力ndash 頂点シャドウあり
bull Light Probe の計算ndash 各 Probe の中心からキューブマップにレンダリングndash の対応する基底ベクトル同士を足し合わせた
ベクトル ( 直接光 + 間接光 ) を頂点カラーとして使用
CEDEC 2012
Appendix A ランタイム
bull 直接光の結果を Stream Out でバッファに出力ndash 頂点シャドウありndash カラーバッファへの書き込み OFFndash 複数オブジェクトの場合は単一バッファにオフ
セットを変えて出力
119897119889
CEDEC 2012
Appendix A ランタイム 係数
bull Compute Shader で を計算ndash は極めて横長の行列 ( 行 ~100程度 列 頂点数 )ndash は GPU が少々苦手な処理ではあるものの
タイリングベースの実装で高速に処理可能
iquest
119897119889119960 lowast119861119889minus1
CEDEC 2012
Appendix A ランタイム
bull Compute Shader で を計算ndash は極めて縦長 ( の転置と同サイズ ) なので素直に実装可能
iquest
119861119894119899119889 119960119897119894119899 119889 lowast
CEDEC 2012
Appendix A ランタイム 最終パス
bull を頂点カラーとして入力としてピクセル単位の直接光のシェーディングと合成して最終結果を得る
iquest +
CEDEC 2012
Appendix A ランタイム Light Probe(1)
bull Compute Shader でを計算ndash は縦長 ( 行 頂点数 timesSH係数の数 列 ~100程度 )
iquest
119880119907119900119897 119960119897119907119900119897 lowast
CEDEC 2012
Appendix A ランタイム Light Probe(2)
bull Probe を用いて Dynamic Objects をライティングndash 各 Light Probe が SH を 9係数で保持するため
3D Texture ではなく Structured-Buffer で保持ndash Vertex Shader 内で自力 Tri-Linear 補間
iquest +
CEDEC 2012
Appendix B 後半の補足
bull 大規模なシーンでの光の伝播bull 小領域間の光の伝播は個別に総当たりで計算
rArr小領域間の光の伝播は距離によって大きく減衰
実際は大規模シーンでも概ね二つ隣の小領域まで考慮すれば十分
CEDEC 2012
Appendix B 後半の補足
bull 小領域の境界
bull 小領域の境界部分が不連続になる rArr 小領域の境界部分は補間の必要がある
CEDEC 2012
bull スライドと論文で表記が違う記号があります
Appendix C 記号の表記
スライドでの表記 論文での表記
b
- Slide 1
- 発表の流れ
- 発表の流れ (2)
- 発表の概要
- 解説技術の特徴
- 注意点
- 発表の流れ (3)
- 発表の流れ (4)
- 間接光の概要
- 間接光の概要 (2)
- 解説手法の計算概要
- 間接光計算の解説手順
- 間接光計算の解説手順 (2)
- 間接光計算の解説手順 (3)
- 間接光計算の解説手順 (4)
- 間接光計算の解説手順 (5)
- 間接光計算の解説手順 (6)
- 間接光計算の考え方
- 間接光計算の考え方 (2)
- 間接光計算の考え方 (3)
- 間接光計算の考え方 (4)
- 間接光計算の考え方 (5)
- 間接光計算の解説手順 (7)
- 問題提起
- 間接光計算の解説手順 (8)
- キーアイディア
- キーアイディア (2)
- キーアイディア (3)
- キーアイディア (4)
- キーアイディア (5)
- キーアイディア (6)
- 間接光計算の解説手順 (9)
- 間接光計算の解説手順 (10)
- を求める
- を求める (2)
- を求める (3)
- 最適な基底
- サンプリングベースの基底
- サンプルの選び方について
- サンプリング行列
- サンプリング行列 (2)
- サンプリング行列 (3)
- サンプリング行列 (4)
- サンプリング行列 (5)
- サンプリング行列 (6)
- サンプリング行列 (7)
- 特異値分解(Singular Value Decomposition)
- 特異値分解(Singular Value Decomposition) (2)
- 特異値分解(Singular Value Decomposition) (3)
- 特異値分解(Singular Value Decomposition) (4)
- 特異値分解(Singular Value Decomposition) (5)
- 基底による直接光の近似
- アプローチの比較
- ハイブリッド手法の計算手順
- 係数の数の比較
- ランタイムの計算処理
- 係数の計算方法
- ランタイムの計算処理 (2)
- 間接光計算の解説手順 (11)
- ショートデモ
- 間接光計算の解説手順 (12)
- 間接光計算の解説手順 (13)
- Light Probe
- Light Probe (2)
- Light Probeによるライティング
- Light Probeによるライティング (2)
- 間接光計算の解説手順 (14)
- Light Probeの計算
- 動的なLight Probe
- 動的なLight Probe (2)
- 間接光計算の解説手順 (15)
- デモ
- デモ詳細
- パフォーマンス
- まとめ
- 発表の流れ (5)
- シーン分割による高速化の解説手順
- シーン分割による高速化の解説手順 (2)
- 問題提起 (14)
- 問題提起 (24)
- 問題提起 (34)
- 問題提起 (44)
- シーン分割による高速化の解説手順 (3)
- シーン分割による高速化の解説手順 (4)
- キーアイディア (16)
- キーアイディア (26)
- キーアイディア (36)
- キーアイディア (46)
- キーアイディア (56)
- キーアイディア (66)
- シーン分割による高速化の解説手順 (5)
- 光の伝播行列の計算 (17)
- 光の伝播行列の計算 (27)
- 光の伝播行列の計算 (37)
- 光の伝播行列の計算 (47)
- 光の伝播行列の計算 (57)
- 光の伝播行列の計算 (67)
- 光の伝播行列の計算 (77)
- シーン分割による高速化の解説手順 (6)
- シーン分割による高速化の解説手順 (7)
- 多重反射への拡張
- シーン分割による高速化の解説手順 (8)
- モジュールの導入 (13)
- モジュールの導入 (23)
- モジュールの導入 (33)
- シーン分割による高速化の解説手順 (9)
- デモ (2)
- 考察
- 発表の流れ (6)
- 発表内容のまとめ
- 著作権について
- 最後に
- Appendix A 実装について
- Appendix A 前計算について
- Appendix A ランタイム
- Appendix A ランタイム 係数
- Appendix A ランタイム
- Appendix A ランタイム 最終パス
- Appendix A ランタイム Light Probe(1)
- Appendix A ランタイム Light Probe(2)
- Appendix B 後半の補足
- Appendix B 後半の補足 (2)
- Appendix C 記号の表記
-
CEDEC 2012
光の伝播行列の計算 ( 77 )
bull 光の伝播の計算のまとめ
119960120783 +119960120784 +119960120785≑ [ 119913119953120783120783
119913119953120783120784
⋮119913119953
120783119924
] [ 119913119953120784120783
119913119953120784120784
⋮119913119953
120784119924
] [ 119913119953120785120783
119913119953120785120784
⋮119913119953
120785119924
]
[ 119913119941120784120783
119913119941120784120784
⋮119913119941
120784119925] [ 119913119941
120785120783
119913119941120785120784
⋮119913119941
120785119925]
times119823 times119823 times119823times119823
[ 119956120783119956120784⋮119956119925]
[ 119941120783
119941120784
⋮119941119924
]
119960120783 +119960120784 +119960120785≑ [ 119913119941120783120783
119913119941120783120784
⋮119913119941
120783119925]
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
多重反射への拡張
bull 間接光計算を反復実行
⋮
間接光計算
間接光計算
間接光計算
直接光
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
モジュールの導入 ( 13 )
bull モジュール( = 再利用可能な汎用小領域)の導入
bull 上記のようなシーンは「回転」も考慮すれば5種の立方体モジュールの組合わせで構成可能
3 方向壁 2 方向壁 2 方向壁 1 方向壁 0 方向壁
CEDEC 2012
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
モジュールの導入 ( 23 )
通過行列は(直進 右折 左折)の三種類
ライトフィールドデータを一つの行列に格納
特異値分解
データ量の削減及び計算の高速化
詳しくは論文 51 節参照
CEDEC 2012
モジュールの導入 ( 33 )
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
メリットは多いがシーンの自由度とのトレードオフ
モジュールの使い所は要検討
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
デモ
CEDEC 2012
考察
bull ライトフィールドは本当に必要か
bull 小領域間の位置関係が固定ならば(恐らく)不要
rArr レイトレーシング法で伝播行列 P を直接計算 した方が効率的bull 小領域を動的に入れ替える場合は必要
P = Pin times Pthrough times Pout
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ 3 まとめ
CEDEC 2012
発表内容のまとめ
bull Modular Radiance Transfer 法を解説ndash 長所
bull とにかく高速bull 多重反射を含んだ間接光が扱えるbull 技術のコア部分は汎用的で応用の余地が高い
ndash 短所bull 前計算を含め使い方に癖がある ( 実験を通してノウハウを蓄積すれば余り問題にならない )
ゲームへの応用は十分可能
CEDEC 2012
本スライド内で引用した論文の図の著作権は全て論文著者に帰属します
その他の図スライド本体挿絵等の著作権は
シリコンスタジオ株式会社に帰属します
著作権について
CEDEC 2012
最後に
御清聴ありがとうございました
httpwwwsiliconstudiocojppresentationsindexhtml
スライドデモは弊社 HP で近日公開
制作協力 河野 駿介 辻 俊晶 古家 亙 後藤 晋也 京田 文人 三谷 健一郎
問い合わせ先 田村 nk-tamurasiliconstudiocojp 安田 re-yasudasiliconstudiocojp
シリコンスタジオは常に人材を求めています
ご興味ある方は弊社 HP をご覧ください
CEDEC 2012
Appendix A 実装について
bull 実装自体は様々なアプローチが可能bull ここではデモの実装でのアプローチを紹介
CEDEC 2012
Appendix A 前計算について
bull F の計算ndash メッシュの全頂点からキューブマップにレンダリングndash ピクセルには頂点 ID とウェイトを出力
bull 直接光サンプルの計算ndash 頂点カラーを Stream Out でバッファに出力ndash 頂点シャドウあり
bull Light Probe の計算ndash 各 Probe の中心からキューブマップにレンダリングndash の対応する基底ベクトル同士を足し合わせた
ベクトル ( 直接光 + 間接光 ) を頂点カラーとして使用
CEDEC 2012
Appendix A ランタイム
bull 直接光の結果を Stream Out でバッファに出力ndash 頂点シャドウありndash カラーバッファへの書き込み OFFndash 複数オブジェクトの場合は単一バッファにオフ
セットを変えて出力
119897119889
CEDEC 2012
Appendix A ランタイム 係数
bull Compute Shader で を計算ndash は極めて横長の行列 ( 行 ~100程度 列 頂点数 )ndash は GPU が少々苦手な処理ではあるものの
タイリングベースの実装で高速に処理可能
iquest
119897119889119960 lowast119861119889minus1
CEDEC 2012
Appendix A ランタイム
bull Compute Shader で を計算ndash は極めて縦長 ( の転置と同サイズ ) なので素直に実装可能
iquest
119861119894119899119889 119960119897119894119899 119889 lowast
CEDEC 2012
Appendix A ランタイム 最終パス
bull を頂点カラーとして入力としてピクセル単位の直接光のシェーディングと合成して最終結果を得る
iquest +
CEDEC 2012
Appendix A ランタイム Light Probe(1)
bull Compute Shader でを計算ndash は縦長 ( 行 頂点数 timesSH係数の数 列 ~100程度 )
iquest
119880119907119900119897 119960119897119907119900119897 lowast
CEDEC 2012
Appendix A ランタイム Light Probe(2)
bull Probe を用いて Dynamic Objects をライティングndash 各 Light Probe が SH を 9係数で保持するため
3D Texture ではなく Structured-Buffer で保持ndash Vertex Shader 内で自力 Tri-Linear 補間
iquest +
CEDEC 2012
Appendix B 後半の補足
bull 大規模なシーンでの光の伝播bull 小領域間の光の伝播は個別に総当たりで計算
rArr小領域間の光の伝播は距離によって大きく減衰
実際は大規模シーンでも概ね二つ隣の小領域まで考慮すれば十分
CEDEC 2012
Appendix B 後半の補足
bull 小領域の境界
bull 小領域の境界部分が不連続になる rArr 小領域の境界部分は補間の必要がある
CEDEC 2012
bull スライドと論文で表記が違う記号があります
Appendix C 記号の表記
スライドでの表記 論文での表記
b
- Slide 1
- 発表の流れ
- 発表の流れ (2)
- 発表の概要
- 解説技術の特徴
- 注意点
- 発表の流れ (3)
- 発表の流れ (4)
- 間接光の概要
- 間接光の概要 (2)
- 解説手法の計算概要
- 間接光計算の解説手順
- 間接光計算の解説手順 (2)
- 間接光計算の解説手順 (3)
- 間接光計算の解説手順 (4)
- 間接光計算の解説手順 (5)
- 間接光計算の解説手順 (6)
- 間接光計算の考え方
- 間接光計算の考え方 (2)
- 間接光計算の考え方 (3)
- 間接光計算の考え方 (4)
- 間接光計算の考え方 (5)
- 間接光計算の解説手順 (7)
- 問題提起
- 間接光計算の解説手順 (8)
- キーアイディア
- キーアイディア (2)
- キーアイディア (3)
- キーアイディア (4)
- キーアイディア (5)
- キーアイディア (6)
- 間接光計算の解説手順 (9)
- 間接光計算の解説手順 (10)
- を求める
- を求める (2)
- を求める (3)
- 最適な基底
- サンプリングベースの基底
- サンプルの選び方について
- サンプリング行列
- サンプリング行列 (2)
- サンプリング行列 (3)
- サンプリング行列 (4)
- サンプリング行列 (5)
- サンプリング行列 (6)
- サンプリング行列 (7)
- 特異値分解(Singular Value Decomposition)
- 特異値分解(Singular Value Decomposition) (2)
- 特異値分解(Singular Value Decomposition) (3)
- 特異値分解(Singular Value Decomposition) (4)
- 特異値分解(Singular Value Decomposition) (5)
- 基底による直接光の近似
- アプローチの比較
- ハイブリッド手法の計算手順
- 係数の数の比較
- ランタイムの計算処理
- 係数の計算方法
- ランタイムの計算処理 (2)
- 間接光計算の解説手順 (11)
- ショートデモ
- 間接光計算の解説手順 (12)
- 間接光計算の解説手順 (13)
- Light Probe
- Light Probe (2)
- Light Probeによるライティング
- Light Probeによるライティング (2)
- 間接光計算の解説手順 (14)
- Light Probeの計算
- 動的なLight Probe
- 動的なLight Probe (2)
- 間接光計算の解説手順 (15)
- デモ
- デモ詳細
- パフォーマンス
- まとめ
- 発表の流れ (5)
- シーン分割による高速化の解説手順
- シーン分割による高速化の解説手順 (2)
- 問題提起 (14)
- 問題提起 (24)
- 問題提起 (34)
- 問題提起 (44)
- シーン分割による高速化の解説手順 (3)
- シーン分割による高速化の解説手順 (4)
- キーアイディア (16)
- キーアイディア (26)
- キーアイディア (36)
- キーアイディア (46)
- キーアイディア (56)
- キーアイディア (66)
- シーン分割による高速化の解説手順 (5)
- 光の伝播行列の計算 (17)
- 光の伝播行列の計算 (27)
- 光の伝播行列の計算 (37)
- 光の伝播行列の計算 (47)
- 光の伝播行列の計算 (57)
- 光の伝播行列の計算 (67)
- 光の伝播行列の計算 (77)
- シーン分割による高速化の解説手順 (6)
- シーン分割による高速化の解説手順 (7)
- 多重反射への拡張
- シーン分割による高速化の解説手順 (8)
- モジュールの導入 (13)
- モジュールの導入 (23)
- モジュールの導入 (33)
- シーン分割による高速化の解説手順 (9)
- デモ (2)
- 考察
- 発表の流れ (6)
- 発表内容のまとめ
- 著作権について
- 最後に
- Appendix A 実装について
- Appendix A 前計算について
- Appendix A ランタイム
- Appendix A ランタイム 係数
- Appendix A ランタイム
- Appendix A ランタイム 最終パス
- Appendix A ランタイム Light Probe(1)
- Appendix A ランタイム Light Probe(2)
- Appendix B 後半の補足
- Appendix B 後半の補足 (2)
- Appendix C 記号の表記
-
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
多重反射への拡張
bull 間接光計算を反復実行
⋮
間接光計算
間接光計算
間接光計算
直接光
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
モジュールの導入 ( 13 )
bull モジュール( = 再利用可能な汎用小領域)の導入
bull 上記のようなシーンは「回転」も考慮すれば5種の立方体モジュールの組合わせで構成可能
3 方向壁 2 方向壁 2 方向壁 1 方向壁 0 方向壁
CEDEC 2012
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
モジュールの導入 ( 23 )
通過行列は(直進 右折 左折)の三種類
ライトフィールドデータを一つの行列に格納
特異値分解
データ量の削減及び計算の高速化
詳しくは論文 51 節参照
CEDEC 2012
モジュールの導入 ( 33 )
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
メリットは多いがシーンの自由度とのトレードオフ
モジュールの使い所は要検討
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
デモ
CEDEC 2012
考察
bull ライトフィールドは本当に必要か
bull 小領域間の位置関係が固定ならば(恐らく)不要
rArr レイトレーシング法で伝播行列 P を直接計算 した方が効率的bull 小領域を動的に入れ替える場合は必要
P = Pin times Pthrough times Pout
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ 3 まとめ
CEDEC 2012
発表内容のまとめ
bull Modular Radiance Transfer 法を解説ndash 長所
bull とにかく高速bull 多重反射を含んだ間接光が扱えるbull 技術のコア部分は汎用的で応用の余地が高い
ndash 短所bull 前計算を含め使い方に癖がある ( 実験を通してノウハウを蓄積すれば余り問題にならない )
ゲームへの応用は十分可能
CEDEC 2012
本スライド内で引用した論文の図の著作権は全て論文著者に帰属します
その他の図スライド本体挿絵等の著作権は
シリコンスタジオ株式会社に帰属します
著作権について
CEDEC 2012
最後に
御清聴ありがとうございました
httpwwwsiliconstudiocojppresentationsindexhtml
スライドデモは弊社 HP で近日公開
制作協力 河野 駿介 辻 俊晶 古家 亙 後藤 晋也 京田 文人 三谷 健一郎
問い合わせ先 田村 nk-tamurasiliconstudiocojp 安田 re-yasudasiliconstudiocojp
シリコンスタジオは常に人材を求めています
ご興味ある方は弊社 HP をご覧ください
CEDEC 2012
Appendix A 実装について
bull 実装自体は様々なアプローチが可能bull ここではデモの実装でのアプローチを紹介
CEDEC 2012
Appendix A 前計算について
bull F の計算ndash メッシュの全頂点からキューブマップにレンダリングndash ピクセルには頂点 ID とウェイトを出力
bull 直接光サンプルの計算ndash 頂点カラーを Stream Out でバッファに出力ndash 頂点シャドウあり
bull Light Probe の計算ndash 各 Probe の中心からキューブマップにレンダリングndash の対応する基底ベクトル同士を足し合わせた
ベクトル ( 直接光 + 間接光 ) を頂点カラーとして使用
CEDEC 2012
Appendix A ランタイム
bull 直接光の結果を Stream Out でバッファに出力ndash 頂点シャドウありndash カラーバッファへの書き込み OFFndash 複数オブジェクトの場合は単一バッファにオフ
セットを変えて出力
119897119889
CEDEC 2012
Appendix A ランタイム 係数
bull Compute Shader で を計算ndash は極めて横長の行列 ( 行 ~100程度 列 頂点数 )ndash は GPU が少々苦手な処理ではあるものの
タイリングベースの実装で高速に処理可能
iquest
119897119889119960 lowast119861119889minus1
CEDEC 2012
Appendix A ランタイム
bull Compute Shader で を計算ndash は極めて縦長 ( の転置と同サイズ ) なので素直に実装可能
iquest
119861119894119899119889 119960119897119894119899 119889 lowast
CEDEC 2012
Appendix A ランタイム 最終パス
bull を頂点カラーとして入力としてピクセル単位の直接光のシェーディングと合成して最終結果を得る
iquest +
CEDEC 2012
Appendix A ランタイム Light Probe(1)
bull Compute Shader でを計算ndash は縦長 ( 行 頂点数 timesSH係数の数 列 ~100程度 )
iquest
119880119907119900119897 119960119897119907119900119897 lowast
CEDEC 2012
Appendix A ランタイム Light Probe(2)
bull Probe を用いて Dynamic Objects をライティングndash 各 Light Probe が SH を 9係数で保持するため
3D Texture ではなく Structured-Buffer で保持ndash Vertex Shader 内で自力 Tri-Linear 補間
iquest +
CEDEC 2012
Appendix B 後半の補足
bull 大規模なシーンでの光の伝播bull 小領域間の光の伝播は個別に総当たりで計算
rArr小領域間の光の伝播は距離によって大きく減衰
実際は大規模シーンでも概ね二つ隣の小領域まで考慮すれば十分
CEDEC 2012
Appendix B 後半の補足
bull 小領域の境界
bull 小領域の境界部分が不連続になる rArr 小領域の境界部分は補間の必要がある
CEDEC 2012
bull スライドと論文で表記が違う記号があります
Appendix C 記号の表記
スライドでの表記 論文での表記
b
- Slide 1
- 発表の流れ
- 発表の流れ (2)
- 発表の概要
- 解説技術の特徴
- 注意点
- 発表の流れ (3)
- 発表の流れ (4)
- 間接光の概要
- 間接光の概要 (2)
- 解説手法の計算概要
- 間接光計算の解説手順
- 間接光計算の解説手順 (2)
- 間接光計算の解説手順 (3)
- 間接光計算の解説手順 (4)
- 間接光計算の解説手順 (5)
- 間接光計算の解説手順 (6)
- 間接光計算の考え方
- 間接光計算の考え方 (2)
- 間接光計算の考え方 (3)
- 間接光計算の考え方 (4)
- 間接光計算の考え方 (5)
- 間接光計算の解説手順 (7)
- 問題提起
- 間接光計算の解説手順 (8)
- キーアイディア
- キーアイディア (2)
- キーアイディア (3)
- キーアイディア (4)
- キーアイディア (5)
- キーアイディア (6)
- 間接光計算の解説手順 (9)
- 間接光計算の解説手順 (10)
- を求める
- を求める (2)
- を求める (3)
- 最適な基底
- サンプリングベースの基底
- サンプルの選び方について
- サンプリング行列
- サンプリング行列 (2)
- サンプリング行列 (3)
- サンプリング行列 (4)
- サンプリング行列 (5)
- サンプリング行列 (6)
- サンプリング行列 (7)
- 特異値分解(Singular Value Decomposition)
- 特異値分解(Singular Value Decomposition) (2)
- 特異値分解(Singular Value Decomposition) (3)
- 特異値分解(Singular Value Decomposition) (4)
- 特異値分解(Singular Value Decomposition) (5)
- 基底による直接光の近似
- アプローチの比較
- ハイブリッド手法の計算手順
- 係数の数の比較
- ランタイムの計算処理
- 係数の計算方法
- ランタイムの計算処理 (2)
- 間接光計算の解説手順 (11)
- ショートデモ
- 間接光計算の解説手順 (12)
- 間接光計算の解説手順 (13)
- Light Probe
- Light Probe (2)
- Light Probeによるライティング
- Light Probeによるライティング (2)
- 間接光計算の解説手順 (14)
- Light Probeの計算
- 動的なLight Probe
- 動的なLight Probe (2)
- 間接光計算の解説手順 (15)
- デモ
- デモ詳細
- パフォーマンス
- まとめ
- 発表の流れ (5)
- シーン分割による高速化の解説手順
- シーン分割による高速化の解説手順 (2)
- 問題提起 (14)
- 問題提起 (24)
- 問題提起 (34)
- 問題提起 (44)
- シーン分割による高速化の解説手順 (3)
- シーン分割による高速化の解説手順 (4)
- キーアイディア (16)
- キーアイディア (26)
- キーアイディア (36)
- キーアイディア (46)
- キーアイディア (56)
- キーアイディア (66)
- シーン分割による高速化の解説手順 (5)
- 光の伝播行列の計算 (17)
- 光の伝播行列の計算 (27)
- 光の伝播行列の計算 (37)
- 光の伝播行列の計算 (47)
- 光の伝播行列の計算 (57)
- 光の伝播行列の計算 (67)
- 光の伝播行列の計算 (77)
- シーン分割による高速化の解説手順 (6)
- シーン分割による高速化の解説手順 (7)
- 多重反射への拡張
- シーン分割による高速化の解説手順 (8)
- モジュールの導入 (13)
- モジュールの導入 (23)
- モジュールの導入 (33)
- シーン分割による高速化の解説手順 (9)
- デモ (2)
- 考察
- 発表の流れ (6)
- 発表内容のまとめ
- 著作権について
- 最後に
- Appendix A 実装について
- Appendix A 前計算について
- Appendix A ランタイム
- Appendix A ランタイム 係数
- Appendix A ランタイム
- Appendix A ランタイム 最終パス
- Appendix A ランタイム Light Probe(1)
- Appendix A ランタイム Light Probe(2)
- Appendix B 後半の補足
- Appendix B 後半の補足 (2)
- Appendix C 記号の表記
-
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
多重反射への拡張
bull 間接光計算を反復実行
⋮
間接光計算
間接光計算
間接光計算
直接光
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
モジュールの導入 ( 13 )
bull モジュール( = 再利用可能な汎用小領域)の導入
bull 上記のようなシーンは「回転」も考慮すれば5種の立方体モジュールの組合わせで構成可能
3 方向壁 2 方向壁 2 方向壁 1 方向壁 0 方向壁
CEDEC 2012
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
モジュールの導入 ( 23 )
通過行列は(直進 右折 左折)の三種類
ライトフィールドデータを一つの行列に格納
特異値分解
データ量の削減及び計算の高速化
詳しくは論文 51 節参照
CEDEC 2012
モジュールの導入 ( 33 )
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
メリットは多いがシーンの自由度とのトレードオフ
モジュールの使い所は要検討
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
デモ
CEDEC 2012
考察
bull ライトフィールドは本当に必要か
bull 小領域間の位置関係が固定ならば(恐らく)不要
rArr レイトレーシング法で伝播行列 P を直接計算 した方が効率的bull 小領域を動的に入れ替える場合は必要
P = Pin times Pthrough times Pout
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ 3 まとめ
CEDEC 2012
発表内容のまとめ
bull Modular Radiance Transfer 法を解説ndash 長所
bull とにかく高速bull 多重反射を含んだ間接光が扱えるbull 技術のコア部分は汎用的で応用の余地が高い
ndash 短所bull 前計算を含め使い方に癖がある ( 実験を通してノウハウを蓄積すれば余り問題にならない )
ゲームへの応用は十分可能
CEDEC 2012
本スライド内で引用した論文の図の著作権は全て論文著者に帰属します
その他の図スライド本体挿絵等の著作権は
シリコンスタジオ株式会社に帰属します
著作権について
CEDEC 2012
最後に
御清聴ありがとうございました
httpwwwsiliconstudiocojppresentationsindexhtml
スライドデモは弊社 HP で近日公開
制作協力 河野 駿介 辻 俊晶 古家 亙 後藤 晋也 京田 文人 三谷 健一郎
問い合わせ先 田村 nk-tamurasiliconstudiocojp 安田 re-yasudasiliconstudiocojp
シリコンスタジオは常に人材を求めています
ご興味ある方は弊社 HP をご覧ください
CEDEC 2012
Appendix A 実装について
bull 実装自体は様々なアプローチが可能bull ここではデモの実装でのアプローチを紹介
CEDEC 2012
Appendix A 前計算について
bull F の計算ndash メッシュの全頂点からキューブマップにレンダリングndash ピクセルには頂点 ID とウェイトを出力
bull 直接光サンプルの計算ndash 頂点カラーを Stream Out でバッファに出力ndash 頂点シャドウあり
bull Light Probe の計算ndash 各 Probe の中心からキューブマップにレンダリングndash の対応する基底ベクトル同士を足し合わせた
ベクトル ( 直接光 + 間接光 ) を頂点カラーとして使用
CEDEC 2012
Appendix A ランタイム
bull 直接光の結果を Stream Out でバッファに出力ndash 頂点シャドウありndash カラーバッファへの書き込み OFFndash 複数オブジェクトの場合は単一バッファにオフ
セットを変えて出力
119897119889
CEDEC 2012
Appendix A ランタイム 係数
bull Compute Shader で を計算ndash は極めて横長の行列 ( 行 ~100程度 列 頂点数 )ndash は GPU が少々苦手な処理ではあるものの
タイリングベースの実装で高速に処理可能
iquest
119897119889119960 lowast119861119889minus1
CEDEC 2012
Appendix A ランタイム
bull Compute Shader で を計算ndash は極めて縦長 ( の転置と同サイズ ) なので素直に実装可能
iquest
119861119894119899119889 119960119897119894119899 119889 lowast
CEDEC 2012
Appendix A ランタイム 最終パス
bull を頂点カラーとして入力としてピクセル単位の直接光のシェーディングと合成して最終結果を得る
iquest +
CEDEC 2012
Appendix A ランタイム Light Probe(1)
bull Compute Shader でを計算ndash は縦長 ( 行 頂点数 timesSH係数の数 列 ~100程度 )
iquest
119880119907119900119897 119960119897119907119900119897 lowast
CEDEC 2012
Appendix A ランタイム Light Probe(2)
bull Probe を用いて Dynamic Objects をライティングndash 各 Light Probe が SH を 9係数で保持するため
3D Texture ではなく Structured-Buffer で保持ndash Vertex Shader 内で自力 Tri-Linear 補間
iquest +
CEDEC 2012
Appendix B 後半の補足
bull 大規模なシーンでの光の伝播bull 小領域間の光の伝播は個別に総当たりで計算
rArr小領域間の光の伝播は距離によって大きく減衰
実際は大規模シーンでも概ね二つ隣の小領域まで考慮すれば十分
CEDEC 2012
Appendix B 後半の補足
bull 小領域の境界
bull 小領域の境界部分が不連続になる rArr 小領域の境界部分は補間の必要がある
CEDEC 2012
bull スライドと論文で表記が違う記号があります
Appendix C 記号の表記
スライドでの表記 論文での表記
b
- Slide 1
- 発表の流れ
- 発表の流れ (2)
- 発表の概要
- 解説技術の特徴
- 注意点
- 発表の流れ (3)
- 発表の流れ (4)
- 間接光の概要
- 間接光の概要 (2)
- 解説手法の計算概要
- 間接光計算の解説手順
- 間接光計算の解説手順 (2)
- 間接光計算の解説手順 (3)
- 間接光計算の解説手順 (4)
- 間接光計算の解説手順 (5)
- 間接光計算の解説手順 (6)
- 間接光計算の考え方
- 間接光計算の考え方 (2)
- 間接光計算の考え方 (3)
- 間接光計算の考え方 (4)
- 間接光計算の考え方 (5)
- 間接光計算の解説手順 (7)
- 問題提起
- 間接光計算の解説手順 (8)
- キーアイディア
- キーアイディア (2)
- キーアイディア (3)
- キーアイディア (4)
- キーアイディア (5)
- キーアイディア (6)
- 間接光計算の解説手順 (9)
- 間接光計算の解説手順 (10)
- を求める
- を求める (2)
- を求める (3)
- 最適な基底
- サンプリングベースの基底
- サンプルの選び方について
- サンプリング行列
- サンプリング行列 (2)
- サンプリング行列 (3)
- サンプリング行列 (4)
- サンプリング行列 (5)
- サンプリング行列 (6)
- サンプリング行列 (7)
- 特異値分解(Singular Value Decomposition)
- 特異値分解(Singular Value Decomposition) (2)
- 特異値分解(Singular Value Decomposition) (3)
- 特異値分解(Singular Value Decomposition) (4)
- 特異値分解(Singular Value Decomposition) (5)
- 基底による直接光の近似
- アプローチの比較
- ハイブリッド手法の計算手順
- 係数の数の比較
- ランタイムの計算処理
- 係数の計算方法
- ランタイムの計算処理 (2)
- 間接光計算の解説手順 (11)
- ショートデモ
- 間接光計算の解説手順 (12)
- 間接光計算の解説手順 (13)
- Light Probe
- Light Probe (2)
- Light Probeによるライティング
- Light Probeによるライティング (2)
- 間接光計算の解説手順 (14)
- Light Probeの計算
- 動的なLight Probe
- 動的なLight Probe (2)
- 間接光計算の解説手順 (15)
- デモ
- デモ詳細
- パフォーマンス
- まとめ
- 発表の流れ (5)
- シーン分割による高速化の解説手順
- シーン分割による高速化の解説手順 (2)
- 問題提起 (14)
- 問題提起 (24)
- 問題提起 (34)
- 問題提起 (44)
- シーン分割による高速化の解説手順 (3)
- シーン分割による高速化の解説手順 (4)
- キーアイディア (16)
- キーアイディア (26)
- キーアイディア (36)
- キーアイディア (46)
- キーアイディア (56)
- キーアイディア (66)
- シーン分割による高速化の解説手順 (5)
- 光の伝播行列の計算 (17)
- 光の伝播行列の計算 (27)
- 光の伝播行列の計算 (37)
- 光の伝播行列の計算 (47)
- 光の伝播行列の計算 (57)
- 光の伝播行列の計算 (67)
- 光の伝播行列の計算 (77)
- シーン分割による高速化の解説手順 (6)
- シーン分割による高速化の解説手順 (7)
- 多重反射への拡張
- シーン分割による高速化の解説手順 (8)
- モジュールの導入 (13)
- モジュールの導入 (23)
- モジュールの導入 (33)
- シーン分割による高速化の解説手順 (9)
- デモ (2)
- 考察
- 発表の流れ (6)
- 発表内容のまとめ
- 著作権について
- 最後に
- Appendix A 実装について
- Appendix A 前計算について
- Appendix A ランタイム
- Appendix A ランタイム 係数
- Appendix A ランタイム
- Appendix A ランタイム 最終パス
- Appendix A ランタイム Light Probe(1)
- Appendix A ランタイム Light Probe(2)
- Appendix B 後半の補足
- Appendix B 後半の補足 (2)
- Appendix C 記号の表記
-
CEDEC 2012
多重反射への拡張
bull 間接光計算を反復実行
⋮
間接光計算
間接光計算
間接光計算
直接光
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
モジュールの導入 ( 13 )
bull モジュール( = 再利用可能な汎用小領域)の導入
bull 上記のようなシーンは「回転」も考慮すれば5種の立方体モジュールの組合わせで構成可能
3 方向壁 2 方向壁 2 方向壁 1 方向壁 0 方向壁
CEDEC 2012
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
モジュールの導入 ( 23 )
通過行列は(直進 右折 左折)の三種類
ライトフィールドデータを一つの行列に格納
特異値分解
データ量の削減及び計算の高速化
詳しくは論文 51 節参照
CEDEC 2012
モジュールの導入 ( 33 )
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
メリットは多いがシーンの自由度とのトレードオフ
モジュールの使い所は要検討
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
デモ
CEDEC 2012
考察
bull ライトフィールドは本当に必要か
bull 小領域間の位置関係が固定ならば(恐らく)不要
rArr レイトレーシング法で伝播行列 P を直接計算 した方が効率的bull 小領域を動的に入れ替える場合は必要
P = Pin times Pthrough times Pout
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ 3 まとめ
CEDEC 2012
発表内容のまとめ
bull Modular Radiance Transfer 法を解説ndash 長所
bull とにかく高速bull 多重反射を含んだ間接光が扱えるbull 技術のコア部分は汎用的で応用の余地が高い
ndash 短所bull 前計算を含め使い方に癖がある ( 実験を通してノウハウを蓄積すれば余り問題にならない )
ゲームへの応用は十分可能
CEDEC 2012
本スライド内で引用した論文の図の著作権は全て論文著者に帰属します
その他の図スライド本体挿絵等の著作権は
シリコンスタジオ株式会社に帰属します
著作権について
CEDEC 2012
最後に
御清聴ありがとうございました
httpwwwsiliconstudiocojppresentationsindexhtml
スライドデモは弊社 HP で近日公開
制作協力 河野 駿介 辻 俊晶 古家 亙 後藤 晋也 京田 文人 三谷 健一郎
問い合わせ先 田村 nk-tamurasiliconstudiocojp 安田 re-yasudasiliconstudiocojp
シリコンスタジオは常に人材を求めています
ご興味ある方は弊社 HP をご覧ください
CEDEC 2012
Appendix A 実装について
bull 実装自体は様々なアプローチが可能bull ここではデモの実装でのアプローチを紹介
CEDEC 2012
Appendix A 前計算について
bull F の計算ndash メッシュの全頂点からキューブマップにレンダリングndash ピクセルには頂点 ID とウェイトを出力
bull 直接光サンプルの計算ndash 頂点カラーを Stream Out でバッファに出力ndash 頂点シャドウあり
bull Light Probe の計算ndash 各 Probe の中心からキューブマップにレンダリングndash の対応する基底ベクトル同士を足し合わせた
ベクトル ( 直接光 + 間接光 ) を頂点カラーとして使用
CEDEC 2012
Appendix A ランタイム
bull 直接光の結果を Stream Out でバッファに出力ndash 頂点シャドウありndash カラーバッファへの書き込み OFFndash 複数オブジェクトの場合は単一バッファにオフ
セットを変えて出力
119897119889
CEDEC 2012
Appendix A ランタイム 係数
bull Compute Shader で を計算ndash は極めて横長の行列 ( 行 ~100程度 列 頂点数 )ndash は GPU が少々苦手な処理ではあるものの
タイリングベースの実装で高速に処理可能
iquest
119897119889119960 lowast119861119889minus1
CEDEC 2012
Appendix A ランタイム
bull Compute Shader で を計算ndash は極めて縦長 ( の転置と同サイズ ) なので素直に実装可能
iquest
119861119894119899119889 119960119897119894119899 119889 lowast
CEDEC 2012
Appendix A ランタイム 最終パス
bull を頂点カラーとして入力としてピクセル単位の直接光のシェーディングと合成して最終結果を得る
iquest +
CEDEC 2012
Appendix A ランタイム Light Probe(1)
bull Compute Shader でを計算ndash は縦長 ( 行 頂点数 timesSH係数の数 列 ~100程度 )
iquest
119880119907119900119897 119960119897119907119900119897 lowast
CEDEC 2012
Appendix A ランタイム Light Probe(2)
bull Probe を用いて Dynamic Objects をライティングndash 各 Light Probe が SH を 9係数で保持するため
3D Texture ではなく Structured-Buffer で保持ndash Vertex Shader 内で自力 Tri-Linear 補間
iquest +
CEDEC 2012
Appendix B 後半の補足
bull 大規模なシーンでの光の伝播bull 小領域間の光の伝播は個別に総当たりで計算
rArr小領域間の光の伝播は距離によって大きく減衰
実際は大規模シーンでも概ね二つ隣の小領域まで考慮すれば十分
CEDEC 2012
Appendix B 後半の補足
bull 小領域の境界
bull 小領域の境界部分が不連続になる rArr 小領域の境界部分は補間の必要がある
CEDEC 2012
bull スライドと論文で表記が違う記号があります
Appendix C 記号の表記
スライドでの表記 論文での表記
b
- Slide 1
- 発表の流れ
- 発表の流れ (2)
- 発表の概要
- 解説技術の特徴
- 注意点
- 発表の流れ (3)
- 発表の流れ (4)
- 間接光の概要
- 間接光の概要 (2)
- 解説手法の計算概要
- 間接光計算の解説手順
- 間接光計算の解説手順 (2)
- 間接光計算の解説手順 (3)
- 間接光計算の解説手順 (4)
- 間接光計算の解説手順 (5)
- 間接光計算の解説手順 (6)
- 間接光計算の考え方
- 間接光計算の考え方 (2)
- 間接光計算の考え方 (3)
- 間接光計算の考え方 (4)
- 間接光計算の考え方 (5)
- 間接光計算の解説手順 (7)
- 問題提起
- 間接光計算の解説手順 (8)
- キーアイディア
- キーアイディア (2)
- キーアイディア (3)
- キーアイディア (4)
- キーアイディア (5)
- キーアイディア (6)
- 間接光計算の解説手順 (9)
- 間接光計算の解説手順 (10)
- を求める
- を求める (2)
- を求める (3)
- 最適な基底
- サンプリングベースの基底
- サンプルの選び方について
- サンプリング行列
- サンプリング行列 (2)
- サンプリング行列 (3)
- サンプリング行列 (4)
- サンプリング行列 (5)
- サンプリング行列 (6)
- サンプリング行列 (7)
- 特異値分解(Singular Value Decomposition)
- 特異値分解(Singular Value Decomposition) (2)
- 特異値分解(Singular Value Decomposition) (3)
- 特異値分解(Singular Value Decomposition) (4)
- 特異値分解(Singular Value Decomposition) (5)
- 基底による直接光の近似
- アプローチの比較
- ハイブリッド手法の計算手順
- 係数の数の比較
- ランタイムの計算処理
- 係数の計算方法
- ランタイムの計算処理 (2)
- 間接光計算の解説手順 (11)
- ショートデモ
- 間接光計算の解説手順 (12)
- 間接光計算の解説手順 (13)
- Light Probe
- Light Probe (2)
- Light Probeによるライティング
- Light Probeによるライティング (2)
- 間接光計算の解説手順 (14)
- Light Probeの計算
- 動的なLight Probe
- 動的なLight Probe (2)
- 間接光計算の解説手順 (15)
- デモ
- デモ詳細
- パフォーマンス
- まとめ
- 発表の流れ (5)
- シーン分割による高速化の解説手順
- シーン分割による高速化の解説手順 (2)
- 問題提起 (14)
- 問題提起 (24)
- 問題提起 (34)
- 問題提起 (44)
- シーン分割による高速化の解説手順 (3)
- シーン分割による高速化の解説手順 (4)
- キーアイディア (16)
- キーアイディア (26)
- キーアイディア (36)
- キーアイディア (46)
- キーアイディア (56)
- キーアイディア (66)
- シーン分割による高速化の解説手順 (5)
- 光の伝播行列の計算 (17)
- 光の伝播行列の計算 (27)
- 光の伝播行列の計算 (37)
- 光の伝播行列の計算 (47)
- 光の伝播行列の計算 (57)
- 光の伝播行列の計算 (67)
- 光の伝播行列の計算 (77)
- シーン分割による高速化の解説手順 (6)
- シーン分割による高速化の解説手順 (7)
- 多重反射への拡張
- シーン分割による高速化の解説手順 (8)
- モジュールの導入 (13)
- モジュールの導入 (23)
- モジュールの導入 (33)
- シーン分割による高速化の解説手順 (9)
- デモ (2)
- 考察
- 発表の流れ (6)
- 発表内容のまとめ
- 著作権について
- 最後に
- Appendix A 実装について
- Appendix A 前計算について
- Appendix A ランタイム
- Appendix A ランタイム 係数
- Appendix A ランタイム
- Appendix A ランタイム 最終パス
- Appendix A ランタイム Light Probe(1)
- Appendix A ランタイム Light Probe(2)
- Appendix B 後半の補足
- Appendix B 後半の補足 (2)
- Appendix C 記号の表記
-
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張
ndash 多重反射への拡張ndash モジュール導入による更なる効率化
Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
モジュールの導入 ( 13 )
bull モジュール( = 再利用可能な汎用小領域)の導入
bull 上記のようなシーンは「回転」も考慮すれば5種の立方体モジュールの組合わせで構成可能
3 方向壁 2 方向壁 2 方向壁 1 方向壁 0 方向壁
CEDEC 2012
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
モジュールの導入 ( 23 )
通過行列は(直進 右折 左折)の三種類
ライトフィールドデータを一つの行列に格納
特異値分解
データ量の削減及び計算の高速化
詳しくは論文 51 節参照
CEDEC 2012
モジュールの導入 ( 33 )
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
メリットは多いがシーンの自由度とのトレードオフ
モジュールの使い所は要検討
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
デモ
CEDEC 2012
考察
bull ライトフィールドは本当に必要か
bull 小領域間の位置関係が固定ならば(恐らく)不要
rArr レイトレーシング法で伝播行列 P を直接計算 した方が効率的bull 小領域を動的に入れ替える場合は必要
P = Pin times Pthrough times Pout
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ 3 まとめ
CEDEC 2012
発表内容のまとめ
bull Modular Radiance Transfer 法を解説ndash 長所
bull とにかく高速bull 多重反射を含んだ間接光が扱えるbull 技術のコア部分は汎用的で応用の余地が高い
ndash 短所bull 前計算を含め使い方に癖がある ( 実験を通してノウハウを蓄積すれば余り問題にならない )
ゲームへの応用は十分可能
CEDEC 2012
本スライド内で引用した論文の図の著作権は全て論文著者に帰属します
その他の図スライド本体挿絵等の著作権は
シリコンスタジオ株式会社に帰属します
著作権について
CEDEC 2012
最後に
御清聴ありがとうございました
httpwwwsiliconstudiocojppresentationsindexhtml
スライドデモは弊社 HP で近日公開
制作協力 河野 駿介 辻 俊晶 古家 亙 後藤 晋也 京田 文人 三谷 健一郎
問い合わせ先 田村 nk-tamurasiliconstudiocojp 安田 re-yasudasiliconstudiocojp
シリコンスタジオは常に人材を求めています
ご興味ある方は弊社 HP をご覧ください
CEDEC 2012
Appendix A 実装について
bull 実装自体は様々なアプローチが可能bull ここではデモの実装でのアプローチを紹介
CEDEC 2012
Appendix A 前計算について
bull F の計算ndash メッシュの全頂点からキューブマップにレンダリングndash ピクセルには頂点 ID とウェイトを出力
bull 直接光サンプルの計算ndash 頂点カラーを Stream Out でバッファに出力ndash 頂点シャドウあり
bull Light Probe の計算ndash 各 Probe の中心からキューブマップにレンダリングndash の対応する基底ベクトル同士を足し合わせた
ベクトル ( 直接光 + 間接光 ) を頂点カラーとして使用
CEDEC 2012
Appendix A ランタイム
bull 直接光の結果を Stream Out でバッファに出力ndash 頂点シャドウありndash カラーバッファへの書き込み OFFndash 複数オブジェクトの場合は単一バッファにオフ
セットを変えて出力
119897119889
CEDEC 2012
Appendix A ランタイム 係数
bull Compute Shader で を計算ndash は極めて横長の行列 ( 行 ~100程度 列 頂点数 )ndash は GPU が少々苦手な処理ではあるものの
タイリングベースの実装で高速に処理可能
iquest
119897119889119960 lowast119861119889minus1
CEDEC 2012
Appendix A ランタイム
bull Compute Shader で を計算ndash は極めて縦長 ( の転置と同サイズ ) なので素直に実装可能
iquest
119861119894119899119889 119960119897119894119899 119889 lowast
CEDEC 2012
Appendix A ランタイム 最終パス
bull を頂点カラーとして入力としてピクセル単位の直接光のシェーディングと合成して最終結果を得る
iquest +
CEDEC 2012
Appendix A ランタイム Light Probe(1)
bull Compute Shader でを計算ndash は縦長 ( 行 頂点数 timesSH係数の数 列 ~100程度 )
iquest
119880119907119900119897 119960119897119907119900119897 lowast
CEDEC 2012
Appendix A ランタイム Light Probe(2)
bull Probe を用いて Dynamic Objects をライティングndash 各 Light Probe が SH を 9係数で保持するため
3D Texture ではなく Structured-Buffer で保持ndash Vertex Shader 内で自力 Tri-Linear 補間
iquest +
CEDEC 2012
Appendix B 後半の補足
bull 大規模なシーンでの光の伝播bull 小領域間の光の伝播は個別に総当たりで計算
rArr小領域間の光の伝播は距離によって大きく減衰
実際は大規模シーンでも概ね二つ隣の小領域まで考慮すれば十分
CEDEC 2012
Appendix B 後半の補足
bull 小領域の境界
bull 小領域の境界部分が不連続になる rArr 小領域の境界部分は補間の必要がある
CEDEC 2012
bull スライドと論文で表記が違う記号があります
Appendix C 記号の表記
スライドでの表記 論文での表記
b
- Slide 1
- 発表の流れ
- 発表の流れ (2)
- 発表の概要
- 解説技術の特徴
- 注意点
- 発表の流れ (3)
- 発表の流れ (4)
- 間接光の概要
- 間接光の概要 (2)
- 解説手法の計算概要
- 間接光計算の解説手順
- 間接光計算の解説手順 (2)
- 間接光計算の解説手順 (3)
- 間接光計算の解説手順 (4)
- 間接光計算の解説手順 (5)
- 間接光計算の解説手順 (6)
- 間接光計算の考え方
- 間接光計算の考え方 (2)
- 間接光計算の考え方 (3)
- 間接光計算の考え方 (4)
- 間接光計算の考え方 (5)
- 間接光計算の解説手順 (7)
- 問題提起
- 間接光計算の解説手順 (8)
- キーアイディア
- キーアイディア (2)
- キーアイディア (3)
- キーアイディア (4)
- キーアイディア (5)
- キーアイディア (6)
- 間接光計算の解説手順 (9)
- 間接光計算の解説手順 (10)
- を求める
- を求める (2)
- を求める (3)
- 最適な基底
- サンプリングベースの基底
- サンプルの選び方について
- サンプリング行列
- サンプリング行列 (2)
- サンプリング行列 (3)
- サンプリング行列 (4)
- サンプリング行列 (5)
- サンプリング行列 (6)
- サンプリング行列 (7)
- 特異値分解(Singular Value Decomposition)
- 特異値分解(Singular Value Decomposition) (2)
- 特異値分解(Singular Value Decomposition) (3)
- 特異値分解(Singular Value Decomposition) (4)
- 特異値分解(Singular Value Decomposition) (5)
- 基底による直接光の近似
- アプローチの比較
- ハイブリッド手法の計算手順
- 係数の数の比較
- ランタイムの計算処理
- 係数の計算方法
- ランタイムの計算処理 (2)
- 間接光計算の解説手順 (11)
- ショートデモ
- 間接光計算の解説手順 (12)
- 間接光計算の解説手順 (13)
- Light Probe
- Light Probe (2)
- Light Probeによるライティング
- Light Probeによるライティング (2)
- 間接光計算の解説手順 (14)
- Light Probeの計算
- 動的なLight Probe
- 動的なLight Probe (2)
- 間接光計算の解説手順 (15)
- デモ
- デモ詳細
- パフォーマンス
- まとめ
- 発表の流れ (5)
- シーン分割による高速化の解説手順
- シーン分割による高速化の解説手順 (2)
- 問題提起 (14)
- 問題提起 (24)
- 問題提起 (34)
- 問題提起 (44)
- シーン分割による高速化の解説手順 (3)
- シーン分割による高速化の解説手順 (4)
- キーアイディア (16)
- キーアイディア (26)
- キーアイディア (36)
- キーアイディア (46)
- キーアイディア (56)
- キーアイディア (66)
- シーン分割による高速化の解説手順 (5)
- 光の伝播行列の計算 (17)
- 光の伝播行列の計算 (27)
- 光の伝播行列の計算 (37)
- 光の伝播行列の計算 (47)
- 光の伝播行列の計算 (57)
- 光の伝播行列の計算 (67)
- 光の伝播行列の計算 (77)
- シーン分割による高速化の解説手順 (6)
- シーン分割による高速化の解説手順 (7)
- 多重反射への拡張
- シーン分割による高速化の解説手順 (8)
- モジュールの導入 (13)
- モジュールの導入 (23)
- モジュールの導入 (33)
- シーン分割による高速化の解説手順 (9)
- デモ (2)
- 考察
- 発表の流れ (6)
- 発表内容のまとめ
- 著作権について
- 最後に
- Appendix A 実装について
- Appendix A 前計算について
- Appendix A ランタイム
- Appendix A ランタイム 係数
- Appendix A ランタイム
- Appendix A ランタイム 最終パス
- Appendix A ランタイム Light Probe(1)
- Appendix A ランタイム Light Probe(2)
- Appendix B 後半の補足
- Appendix B 後半の補足 (2)
- Appendix C 記号の表記
-
CEDEC 2012
モジュールの導入 ( 13 )
bull モジュール( = 再利用可能な汎用小領域)の導入
bull 上記のようなシーンは「回転」も考慮すれば5種の立方体モジュールの組合わせで構成可能
3 方向壁 2 方向壁 2 方向壁 1 方向壁 0 方向壁
CEDEC 2012
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
モジュールの導入 ( 23 )
通過行列は(直進 右折 左折)の三種類
ライトフィールドデータを一つの行列に格納
特異値分解
データ量の削減及び計算の高速化
詳しくは論文 51 節参照
CEDEC 2012
モジュールの導入 ( 33 )
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
メリットは多いがシーンの自由度とのトレードオフ
モジュールの使い所は要検討
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
デモ
CEDEC 2012
考察
bull ライトフィールドは本当に必要か
bull 小領域間の位置関係が固定ならば(恐らく)不要
rArr レイトレーシング法で伝播行列 P を直接計算 した方が効率的bull 小領域を動的に入れ替える場合は必要
P = Pin times Pthrough times Pout
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ 3 まとめ
CEDEC 2012
発表内容のまとめ
bull Modular Radiance Transfer 法を解説ndash 長所
bull とにかく高速bull 多重反射を含んだ間接光が扱えるbull 技術のコア部分は汎用的で応用の余地が高い
ndash 短所bull 前計算を含め使い方に癖がある ( 実験を通してノウハウを蓄積すれば余り問題にならない )
ゲームへの応用は十分可能
CEDEC 2012
本スライド内で引用した論文の図の著作権は全て論文著者に帰属します
その他の図スライド本体挿絵等の著作権は
シリコンスタジオ株式会社に帰属します
著作権について
CEDEC 2012
最後に
御清聴ありがとうございました
httpwwwsiliconstudiocojppresentationsindexhtml
スライドデモは弊社 HP で近日公開
制作協力 河野 駿介 辻 俊晶 古家 亙 後藤 晋也 京田 文人 三谷 健一郎
問い合わせ先 田村 nk-tamurasiliconstudiocojp 安田 re-yasudasiliconstudiocojp
シリコンスタジオは常に人材を求めています
ご興味ある方は弊社 HP をご覧ください
CEDEC 2012
Appendix A 実装について
bull 実装自体は様々なアプローチが可能bull ここではデモの実装でのアプローチを紹介
CEDEC 2012
Appendix A 前計算について
bull F の計算ndash メッシュの全頂点からキューブマップにレンダリングndash ピクセルには頂点 ID とウェイトを出力
bull 直接光サンプルの計算ndash 頂点カラーを Stream Out でバッファに出力ndash 頂点シャドウあり
bull Light Probe の計算ndash 各 Probe の中心からキューブマップにレンダリングndash の対応する基底ベクトル同士を足し合わせた
ベクトル ( 直接光 + 間接光 ) を頂点カラーとして使用
CEDEC 2012
Appendix A ランタイム
bull 直接光の結果を Stream Out でバッファに出力ndash 頂点シャドウありndash カラーバッファへの書き込み OFFndash 複数オブジェクトの場合は単一バッファにオフ
セットを変えて出力
119897119889
CEDEC 2012
Appendix A ランタイム 係数
bull Compute Shader で を計算ndash は極めて横長の行列 ( 行 ~100程度 列 頂点数 )ndash は GPU が少々苦手な処理ではあるものの
タイリングベースの実装で高速に処理可能
iquest
119897119889119960 lowast119861119889minus1
CEDEC 2012
Appendix A ランタイム
bull Compute Shader で を計算ndash は極めて縦長 ( の転置と同サイズ ) なので素直に実装可能
iquest
119861119894119899119889 119960119897119894119899 119889 lowast
CEDEC 2012
Appendix A ランタイム 最終パス
bull を頂点カラーとして入力としてピクセル単位の直接光のシェーディングと合成して最終結果を得る
iquest +
CEDEC 2012
Appendix A ランタイム Light Probe(1)
bull Compute Shader でを計算ndash は縦長 ( 行 頂点数 timesSH係数の数 列 ~100程度 )
iquest
119880119907119900119897 119960119897119907119900119897 lowast
CEDEC 2012
Appendix A ランタイム Light Probe(2)
bull Probe を用いて Dynamic Objects をライティングndash 各 Light Probe が SH を 9係数で保持するため
3D Texture ではなく Structured-Buffer で保持ndash Vertex Shader 内で自力 Tri-Linear 補間
iquest +
CEDEC 2012
Appendix B 後半の補足
bull 大規模なシーンでの光の伝播bull 小領域間の光の伝播は個別に総当たりで計算
rArr小領域間の光の伝播は距離によって大きく減衰
実際は大規模シーンでも概ね二つ隣の小領域まで考慮すれば十分
CEDEC 2012
Appendix B 後半の補足
bull 小領域の境界
bull 小領域の境界部分が不連続になる rArr 小領域の境界部分は補間の必要がある
CEDEC 2012
bull スライドと論文で表記が違う記号があります
Appendix C 記号の表記
スライドでの表記 論文での表記
b
- Slide 1
- 発表の流れ
- 発表の流れ (2)
- 発表の概要
- 解説技術の特徴
- 注意点
- 発表の流れ (3)
- 発表の流れ (4)
- 間接光の概要
- 間接光の概要 (2)
- 解説手法の計算概要
- 間接光計算の解説手順
- 間接光計算の解説手順 (2)
- 間接光計算の解説手順 (3)
- 間接光計算の解説手順 (4)
- 間接光計算の解説手順 (5)
- 間接光計算の解説手順 (6)
- 間接光計算の考え方
- 間接光計算の考え方 (2)
- 間接光計算の考え方 (3)
- 間接光計算の考え方 (4)
- 間接光計算の考え方 (5)
- 間接光計算の解説手順 (7)
- 問題提起
- 間接光計算の解説手順 (8)
- キーアイディア
- キーアイディア (2)
- キーアイディア (3)
- キーアイディア (4)
- キーアイディア (5)
- キーアイディア (6)
- 間接光計算の解説手順 (9)
- 間接光計算の解説手順 (10)
- を求める
- を求める (2)
- を求める (3)
- 最適な基底
- サンプリングベースの基底
- サンプルの選び方について
- サンプリング行列
- サンプリング行列 (2)
- サンプリング行列 (3)
- サンプリング行列 (4)
- サンプリング行列 (5)
- サンプリング行列 (6)
- サンプリング行列 (7)
- 特異値分解(Singular Value Decomposition)
- 特異値分解(Singular Value Decomposition) (2)
- 特異値分解(Singular Value Decomposition) (3)
- 特異値分解(Singular Value Decomposition) (4)
- 特異値分解(Singular Value Decomposition) (5)
- 基底による直接光の近似
- アプローチの比較
- ハイブリッド手法の計算手順
- 係数の数の比較
- ランタイムの計算処理
- 係数の計算方法
- ランタイムの計算処理 (2)
- 間接光計算の解説手順 (11)
- ショートデモ
- 間接光計算の解説手順 (12)
- 間接光計算の解説手順 (13)
- Light Probe
- Light Probe (2)
- Light Probeによるライティング
- Light Probeによるライティング (2)
- 間接光計算の解説手順 (14)
- Light Probeの計算
- 動的なLight Probe
- 動的なLight Probe (2)
- 間接光計算の解説手順 (15)
- デモ
- デモ詳細
- パフォーマンス
- まとめ
- 発表の流れ (5)
- シーン分割による高速化の解説手順
- シーン分割による高速化の解説手順 (2)
- 問題提起 (14)
- 問題提起 (24)
- 問題提起 (34)
- 問題提起 (44)
- シーン分割による高速化の解説手順 (3)
- シーン分割による高速化の解説手順 (4)
- キーアイディア (16)
- キーアイディア (26)
- キーアイディア (36)
- キーアイディア (46)
- キーアイディア (56)
- キーアイディア (66)
- シーン分割による高速化の解説手順 (5)
- 光の伝播行列の計算 (17)
- 光の伝播行列の計算 (27)
- 光の伝播行列の計算 (37)
- 光の伝播行列の計算 (47)
- 光の伝播行列の計算 (57)
- 光の伝播行列の計算 (67)
- 光の伝播行列の計算 (77)
- シーン分割による高速化の解説手順 (6)
- シーン分割による高速化の解説手順 (7)
- 多重反射への拡張
- シーン分割による高速化の解説手順 (8)
- モジュールの導入 (13)
- モジュールの導入 (23)
- モジュールの導入 (33)
- シーン分割による高速化の解説手順 (9)
- デモ (2)
- 考察
- 発表の流れ (6)
- 発表内容のまとめ
- 著作権について
- 最後に
- Appendix A 実装について
- Appendix A 前計算について
- Appendix A ランタイム
- Appendix A ランタイム 係数
- Appendix A ランタイム
- Appendix A ランタイム 最終パス
- Appendix A ランタイム Light Probe(1)
- Appendix A ランタイム Light Probe(2)
- Appendix B 後半の補足
- Appendix B 後半の補足 (2)
- Appendix C 記号の表記
-
CEDEC 2012
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
モジュールの導入 ( 23 )
通過行列は(直進 右折 左折)の三種類
ライトフィールドデータを一つの行列に格納
特異値分解
データ量の削減及び計算の高速化
詳しくは論文 51 節参照
CEDEC 2012
モジュールの導入 ( 33 )
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
メリットは多いがシーンの自由度とのトレードオフ
モジュールの使い所は要検討
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
デモ
CEDEC 2012
考察
bull ライトフィールドは本当に必要か
bull 小領域間の位置関係が固定ならば(恐らく)不要
rArr レイトレーシング法で伝播行列 P を直接計算 した方が効率的bull 小領域を動的に入れ替える場合は必要
P = Pin times Pthrough times Pout
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ 3 まとめ
CEDEC 2012
発表内容のまとめ
bull Modular Radiance Transfer 法を解説ndash 長所
bull とにかく高速bull 多重反射を含んだ間接光が扱えるbull 技術のコア部分は汎用的で応用の余地が高い
ndash 短所bull 前計算を含め使い方に癖がある ( 実験を通してノウハウを蓄積すれば余り問題にならない )
ゲームへの応用は十分可能
CEDEC 2012
本スライド内で引用した論文の図の著作権は全て論文著者に帰属します
その他の図スライド本体挿絵等の著作権は
シリコンスタジオ株式会社に帰属します
著作権について
CEDEC 2012
最後に
御清聴ありがとうございました
httpwwwsiliconstudiocojppresentationsindexhtml
スライドデモは弊社 HP で近日公開
制作協力 河野 駿介 辻 俊晶 古家 亙 後藤 晋也 京田 文人 三谷 健一郎
問い合わせ先 田村 nk-tamurasiliconstudiocojp 安田 re-yasudasiliconstudiocojp
シリコンスタジオは常に人材を求めています
ご興味ある方は弊社 HP をご覧ください
CEDEC 2012
Appendix A 実装について
bull 実装自体は様々なアプローチが可能bull ここではデモの実装でのアプローチを紹介
CEDEC 2012
Appendix A 前計算について
bull F の計算ndash メッシュの全頂点からキューブマップにレンダリングndash ピクセルには頂点 ID とウェイトを出力
bull 直接光サンプルの計算ndash 頂点カラーを Stream Out でバッファに出力ndash 頂点シャドウあり
bull Light Probe の計算ndash 各 Probe の中心からキューブマップにレンダリングndash の対応する基底ベクトル同士を足し合わせた
ベクトル ( 直接光 + 間接光 ) を頂点カラーとして使用
CEDEC 2012
Appendix A ランタイム
bull 直接光の結果を Stream Out でバッファに出力ndash 頂点シャドウありndash カラーバッファへの書き込み OFFndash 複数オブジェクトの場合は単一バッファにオフ
セットを変えて出力
119897119889
CEDEC 2012
Appendix A ランタイム 係数
bull Compute Shader で を計算ndash は極めて横長の行列 ( 行 ~100程度 列 頂点数 )ndash は GPU が少々苦手な処理ではあるものの
タイリングベースの実装で高速に処理可能
iquest
119897119889119960 lowast119861119889minus1
CEDEC 2012
Appendix A ランタイム
bull Compute Shader で を計算ndash は極めて縦長 ( の転置と同サイズ ) なので素直に実装可能
iquest
119861119894119899119889 119960119897119894119899 119889 lowast
CEDEC 2012
Appendix A ランタイム 最終パス
bull を頂点カラーとして入力としてピクセル単位の直接光のシェーディングと合成して最終結果を得る
iquest +
CEDEC 2012
Appendix A ランタイム Light Probe(1)
bull Compute Shader でを計算ndash は縦長 ( 行 頂点数 timesSH係数の数 列 ~100程度 )
iquest
119880119907119900119897 119960119897119907119900119897 lowast
CEDEC 2012
Appendix A ランタイム Light Probe(2)
bull Probe を用いて Dynamic Objects をライティングndash 各 Light Probe が SH を 9係数で保持するため
3D Texture ではなく Structured-Buffer で保持ndash Vertex Shader 内で自力 Tri-Linear 補間
iquest +
CEDEC 2012
Appendix B 後半の補足
bull 大規模なシーンでの光の伝播bull 小領域間の光の伝播は個別に総当たりで計算
rArr小領域間の光の伝播は距離によって大きく減衰
実際は大規模シーンでも概ね二つ隣の小領域まで考慮すれば十分
CEDEC 2012
Appendix B 後半の補足
bull 小領域の境界
bull 小領域の境界部分が不連続になる rArr 小領域の境界部分は補間の必要がある
CEDEC 2012
bull スライドと論文で表記が違う記号があります
Appendix C 記号の表記
スライドでの表記 論文での表記
b
- Slide 1
- 発表の流れ
- 発表の流れ (2)
- 発表の概要
- 解説技術の特徴
- 注意点
- 発表の流れ (3)
- 発表の流れ (4)
- 間接光の概要
- 間接光の概要 (2)
- 解説手法の計算概要
- 間接光計算の解説手順
- 間接光計算の解説手順 (2)
- 間接光計算の解説手順 (3)
- 間接光計算の解説手順 (4)
- 間接光計算の解説手順 (5)
- 間接光計算の解説手順 (6)
- 間接光計算の考え方
- 間接光計算の考え方 (2)
- 間接光計算の考え方 (3)
- 間接光計算の考え方 (4)
- 間接光計算の考え方 (5)
- 間接光計算の解説手順 (7)
- 問題提起
- 間接光計算の解説手順 (8)
- キーアイディア
- キーアイディア (2)
- キーアイディア (3)
- キーアイディア (4)
- キーアイディア (5)
- キーアイディア (6)
- 間接光計算の解説手順 (9)
- 間接光計算の解説手順 (10)
- を求める
- を求める (2)
- を求める (3)
- 最適な基底
- サンプリングベースの基底
- サンプルの選び方について
- サンプリング行列
- サンプリング行列 (2)
- サンプリング行列 (3)
- サンプリング行列 (4)
- サンプリング行列 (5)
- サンプリング行列 (6)
- サンプリング行列 (7)
- 特異値分解(Singular Value Decomposition)
- 特異値分解(Singular Value Decomposition) (2)
- 特異値分解(Singular Value Decomposition) (3)
- 特異値分解(Singular Value Decomposition) (4)
- 特異値分解(Singular Value Decomposition) (5)
- 基底による直接光の近似
- アプローチの比較
- ハイブリッド手法の計算手順
- 係数の数の比較
- ランタイムの計算処理
- 係数の計算方法
- ランタイムの計算処理 (2)
- 間接光計算の解説手順 (11)
- ショートデモ
- 間接光計算の解説手順 (12)
- 間接光計算の解説手順 (13)
- Light Probe
- Light Probe (2)
- Light Probeによるライティング
- Light Probeによるライティング (2)
- 間接光計算の解説手順 (14)
- Light Probeの計算
- 動的なLight Probe
- 動的なLight Probe (2)
- 間接光計算の解説手順 (15)
- デモ
- デモ詳細
- パフォーマンス
- まとめ
- 発表の流れ (5)
- シーン分割による高速化の解説手順
- シーン分割による高速化の解説手順 (2)
- 問題提起 (14)
- 問題提起 (24)
- 問題提起 (34)
- 問題提起 (44)
- シーン分割による高速化の解説手順 (3)
- シーン分割による高速化の解説手順 (4)
- キーアイディア (16)
- キーアイディア (26)
- キーアイディア (36)
- キーアイディア (46)
- キーアイディア (56)
- キーアイディア (66)
- シーン分割による高速化の解説手順 (5)
- 光の伝播行列の計算 (17)
- 光の伝播行列の計算 (27)
- 光の伝播行列の計算 (37)
- 光の伝播行列の計算 (47)
- 光の伝播行列の計算 (57)
- 光の伝播行列の計算 (67)
- 光の伝播行列の計算 (77)
- シーン分割による高速化の解説手順 (6)
- シーン分割による高速化の解説手順 (7)
- 多重反射への拡張
- シーン分割による高速化の解説手順 (8)
- モジュールの導入 (13)
- モジュールの導入 (23)
- モジュールの導入 (33)
- シーン分割による高速化の解説手順 (9)
- デモ (2)
- 考察
- 発表の流れ (6)
- 発表内容のまとめ
- 著作権について
- 最後に
- Appendix A 実装について
- Appendix A 前計算について
- Appendix A ランタイム
- Appendix A ランタイム 係数
- Appendix A ランタイム
- Appendix A ランタイム 最終パス
- Appendix A ランタイム Light Probe(1)
- Appendix A ランタイム Light Probe(2)
- Appendix B 後半の補足
- Appendix B 後半の補足 (2)
- Appendix C 記号の表記
-
CEDEC 2012
モジュールの導入 ( 33 )
bull 立方体モジュールのメリット1 データ量及び前計算時間の削減2 再利用可能な光の通過行列が導入可能3 ライトフィールド用の基底が導入可能
メリットは多いがシーンの自由度とのトレードオフ
モジュールの使い所は要検討
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
デモ
CEDEC 2012
考察
bull ライトフィールドは本当に必要か
bull 小領域間の位置関係が固定ならば(恐らく)不要
rArr レイトレーシング法で伝播行列 P を直接計算 した方が効率的bull 小領域を動的に入れ替える場合は必要
P = Pin times Pthrough times Pout
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ 3 まとめ
CEDEC 2012
発表内容のまとめ
bull Modular Radiance Transfer 法を解説ndash 長所
bull とにかく高速bull 多重反射を含んだ間接光が扱えるbull 技術のコア部分は汎用的で応用の余地が高い
ndash 短所bull 前計算を含め使い方に癖がある ( 実験を通してノウハウを蓄積すれば余り問題にならない )
ゲームへの応用は十分可能
CEDEC 2012
本スライド内で引用した論文の図の著作権は全て論文著者に帰属します
その他の図スライド本体挿絵等の著作権は
シリコンスタジオ株式会社に帰属します
著作権について
CEDEC 2012
最後に
御清聴ありがとうございました
httpwwwsiliconstudiocojppresentationsindexhtml
スライドデモは弊社 HP で近日公開
制作協力 河野 駿介 辻 俊晶 古家 亙 後藤 晋也 京田 文人 三谷 健一郎
問い合わせ先 田村 nk-tamurasiliconstudiocojp 安田 re-yasudasiliconstudiocojp
シリコンスタジオは常に人材を求めています
ご興味ある方は弊社 HP をご覧ください
CEDEC 2012
Appendix A 実装について
bull 実装自体は様々なアプローチが可能bull ここではデモの実装でのアプローチを紹介
CEDEC 2012
Appendix A 前計算について
bull F の計算ndash メッシュの全頂点からキューブマップにレンダリングndash ピクセルには頂点 ID とウェイトを出力
bull 直接光サンプルの計算ndash 頂点カラーを Stream Out でバッファに出力ndash 頂点シャドウあり
bull Light Probe の計算ndash 各 Probe の中心からキューブマップにレンダリングndash の対応する基底ベクトル同士を足し合わせた
ベクトル ( 直接光 + 間接光 ) を頂点カラーとして使用
CEDEC 2012
Appendix A ランタイム
bull 直接光の結果を Stream Out でバッファに出力ndash 頂点シャドウありndash カラーバッファへの書き込み OFFndash 複数オブジェクトの場合は単一バッファにオフ
セットを変えて出力
119897119889
CEDEC 2012
Appendix A ランタイム 係数
bull Compute Shader で を計算ndash は極めて横長の行列 ( 行 ~100程度 列 頂点数 )ndash は GPU が少々苦手な処理ではあるものの
タイリングベースの実装で高速に処理可能
iquest
119897119889119960 lowast119861119889minus1
CEDEC 2012
Appendix A ランタイム
bull Compute Shader で を計算ndash は極めて縦長 ( の転置と同サイズ ) なので素直に実装可能
iquest
119861119894119899119889 119960119897119894119899 119889 lowast
CEDEC 2012
Appendix A ランタイム 最終パス
bull を頂点カラーとして入力としてピクセル単位の直接光のシェーディングと合成して最終結果を得る
iquest +
CEDEC 2012
Appendix A ランタイム Light Probe(1)
bull Compute Shader でを計算ndash は縦長 ( 行 頂点数 timesSH係数の数 列 ~100程度 )
iquest
119880119907119900119897 119960119897119907119900119897 lowast
CEDEC 2012
Appendix A ランタイム Light Probe(2)
bull Probe を用いて Dynamic Objects をライティングndash 各 Light Probe が SH を 9係数で保持するため
3D Texture ではなく Structured-Buffer で保持ndash Vertex Shader 内で自力 Tri-Linear 補間
iquest +
CEDEC 2012
Appendix B 後半の補足
bull 大規模なシーンでの光の伝播bull 小領域間の光の伝播は個別に総当たりで計算
rArr小領域間の光の伝播は距離によって大きく減衰
実際は大規模シーンでも概ね二つ隣の小領域まで考慮すれば十分
CEDEC 2012
Appendix B 後半の補足
bull 小領域の境界
bull 小領域の境界部分が不連続になる rArr 小領域の境界部分は補間の必要がある
CEDEC 2012
bull スライドと論文で表記が違う記号があります
Appendix C 記号の表記
スライドでの表記 論文での表記
b
- Slide 1
- 発表の流れ
- 発表の流れ (2)
- 発表の概要
- 解説技術の特徴
- 注意点
- 発表の流れ (3)
- 発表の流れ (4)
- 間接光の概要
- 間接光の概要 (2)
- 解説手法の計算概要
- 間接光計算の解説手順
- 間接光計算の解説手順 (2)
- 間接光計算の解説手順 (3)
- 間接光計算の解説手順 (4)
- 間接光計算の解説手順 (5)
- 間接光計算の解説手順 (6)
- 間接光計算の考え方
- 間接光計算の考え方 (2)
- 間接光計算の考え方 (3)
- 間接光計算の考え方 (4)
- 間接光計算の考え方 (5)
- 間接光計算の解説手順 (7)
- 問題提起
- 間接光計算の解説手順 (8)
- キーアイディア
- キーアイディア (2)
- キーアイディア (3)
- キーアイディア (4)
- キーアイディア (5)
- キーアイディア (6)
- 間接光計算の解説手順 (9)
- 間接光計算の解説手順 (10)
- を求める
- を求める (2)
- を求める (3)
- 最適な基底
- サンプリングベースの基底
- サンプルの選び方について
- サンプリング行列
- サンプリング行列 (2)
- サンプリング行列 (3)
- サンプリング行列 (4)
- サンプリング行列 (5)
- サンプリング行列 (6)
- サンプリング行列 (7)
- 特異値分解(Singular Value Decomposition)
- 特異値分解(Singular Value Decomposition) (2)
- 特異値分解(Singular Value Decomposition) (3)
- 特異値分解(Singular Value Decomposition) (4)
- 特異値分解(Singular Value Decomposition) (5)
- 基底による直接光の近似
- アプローチの比較
- ハイブリッド手法の計算手順
- 係数の数の比較
- ランタイムの計算処理
- 係数の計算方法
- ランタイムの計算処理 (2)
- 間接光計算の解説手順 (11)
- ショートデモ
- 間接光計算の解説手順 (12)
- 間接光計算の解説手順 (13)
- Light Probe
- Light Probe (2)
- Light Probeによるライティング
- Light Probeによるライティング (2)
- 間接光計算の解説手順 (14)
- Light Probeの計算
- 動的なLight Probe
- 動的なLight Probe (2)
- 間接光計算の解説手順 (15)
- デモ
- デモ詳細
- パフォーマンス
- まとめ
- 発表の流れ (5)
- シーン分割による高速化の解説手順
- シーン分割による高速化の解説手順 (2)
- 問題提起 (14)
- 問題提起 (24)
- 問題提起 (34)
- 問題提起 (44)
- シーン分割による高速化の解説手順 (3)
- シーン分割による高速化の解説手順 (4)
- キーアイディア (16)
- キーアイディア (26)
- キーアイディア (36)
- キーアイディア (46)
- キーアイディア (56)
- キーアイディア (66)
- シーン分割による高速化の解説手順 (5)
- 光の伝播行列の計算 (17)
- 光の伝播行列の計算 (27)
- 光の伝播行列の計算 (37)
- 光の伝播行列の計算 (47)
- 光の伝播行列の計算 (57)
- 光の伝播行列の計算 (67)
- 光の伝播行列の計算 (77)
- シーン分割による高速化の解説手順 (6)
- シーン分割による高速化の解説手順 (7)
- 多重反射への拡張
- シーン分割による高速化の解説手順 (8)
- モジュールの導入 (13)
- モジュールの導入 (23)
- モジュールの導入 (33)
- シーン分割による高速化の解説手順 (9)
- デモ (2)
- 考察
- 発表の流れ (6)
- 発表内容のまとめ
- 著作権について
- 最後に
- Appendix A 実装について
- Appendix A 前計算について
- Appendix A ランタイム
- Appendix A ランタイム 係数
- Appendix A ランタイム
- Appendix A ランタイム 最終パス
- Appendix A ランタイム Light Probe(1)
- Appendix A ランタイム Light Probe(2)
- Appendix B 後半の補足
- Appendix B 後半の補足 (2)
- Appendix C 記号の表記
-
CEDEC 2012
Step1 問題提起 Step2 小領域間の光の伝播の計算 Step3 手法の拡張 Step4 デモ及び考察
シーン分割による高速化の解説手順
CEDEC 2012
デモ
CEDEC 2012
考察
bull ライトフィールドは本当に必要か
bull 小領域間の位置関係が固定ならば(恐らく)不要
rArr レイトレーシング法で伝播行列 P を直接計算 した方が効率的bull 小領域を動的に入れ替える場合は必要
P = Pin times Pthrough times Pout
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ 3 まとめ
CEDEC 2012
発表内容のまとめ
bull Modular Radiance Transfer 法を解説ndash 長所
bull とにかく高速bull 多重反射を含んだ間接光が扱えるbull 技術のコア部分は汎用的で応用の余地が高い
ndash 短所bull 前計算を含め使い方に癖がある ( 実験を通してノウハウを蓄積すれば余り問題にならない )
ゲームへの応用は十分可能
CEDEC 2012
本スライド内で引用した論文の図の著作権は全て論文著者に帰属します
その他の図スライド本体挿絵等の著作権は
シリコンスタジオ株式会社に帰属します
著作権について
CEDEC 2012
最後に
御清聴ありがとうございました
httpwwwsiliconstudiocojppresentationsindexhtml
スライドデモは弊社 HP で近日公開
制作協力 河野 駿介 辻 俊晶 古家 亙 後藤 晋也 京田 文人 三谷 健一郎
問い合わせ先 田村 nk-tamurasiliconstudiocojp 安田 re-yasudasiliconstudiocojp
シリコンスタジオは常に人材を求めています
ご興味ある方は弊社 HP をご覧ください
CEDEC 2012
Appendix A 実装について
bull 実装自体は様々なアプローチが可能bull ここではデモの実装でのアプローチを紹介
CEDEC 2012
Appendix A 前計算について
bull F の計算ndash メッシュの全頂点からキューブマップにレンダリングndash ピクセルには頂点 ID とウェイトを出力
bull 直接光サンプルの計算ndash 頂点カラーを Stream Out でバッファに出力ndash 頂点シャドウあり
bull Light Probe の計算ndash 各 Probe の中心からキューブマップにレンダリングndash の対応する基底ベクトル同士を足し合わせた
ベクトル ( 直接光 + 間接光 ) を頂点カラーとして使用
CEDEC 2012
Appendix A ランタイム
bull 直接光の結果を Stream Out でバッファに出力ndash 頂点シャドウありndash カラーバッファへの書き込み OFFndash 複数オブジェクトの場合は単一バッファにオフ
セットを変えて出力
119897119889
CEDEC 2012
Appendix A ランタイム 係数
bull Compute Shader で を計算ndash は極めて横長の行列 ( 行 ~100程度 列 頂点数 )ndash は GPU が少々苦手な処理ではあるものの
タイリングベースの実装で高速に処理可能
iquest
119897119889119960 lowast119861119889minus1
CEDEC 2012
Appendix A ランタイム
bull Compute Shader で を計算ndash は極めて縦長 ( の転置と同サイズ ) なので素直に実装可能
iquest
119861119894119899119889 119960119897119894119899 119889 lowast
CEDEC 2012
Appendix A ランタイム 最終パス
bull を頂点カラーとして入力としてピクセル単位の直接光のシェーディングと合成して最終結果を得る
iquest +
CEDEC 2012
Appendix A ランタイム Light Probe(1)
bull Compute Shader でを計算ndash は縦長 ( 行 頂点数 timesSH係数の数 列 ~100程度 )
iquest
119880119907119900119897 119960119897119907119900119897 lowast
CEDEC 2012
Appendix A ランタイム Light Probe(2)
bull Probe を用いて Dynamic Objects をライティングndash 各 Light Probe が SH を 9係数で保持するため
3D Texture ではなく Structured-Buffer で保持ndash Vertex Shader 内で自力 Tri-Linear 補間
iquest +
CEDEC 2012
Appendix B 後半の補足
bull 大規模なシーンでの光の伝播bull 小領域間の光の伝播は個別に総当たりで計算
rArr小領域間の光の伝播は距離によって大きく減衰
実際は大規模シーンでも概ね二つ隣の小領域まで考慮すれば十分
CEDEC 2012
Appendix B 後半の補足
bull 小領域の境界
bull 小領域の境界部分が不連続になる rArr 小領域の境界部分は補間の必要がある
CEDEC 2012
bull スライドと論文で表記が違う記号があります
Appendix C 記号の表記
スライドでの表記 論文での表記
b
- Slide 1
- 発表の流れ
- 発表の流れ (2)
- 発表の概要
- 解説技術の特徴
- 注意点
- 発表の流れ (3)
- 発表の流れ (4)
- 間接光の概要
- 間接光の概要 (2)
- 解説手法の計算概要
- 間接光計算の解説手順
- 間接光計算の解説手順 (2)
- 間接光計算の解説手順 (3)
- 間接光計算の解説手順 (4)
- 間接光計算の解説手順 (5)
- 間接光計算の解説手順 (6)
- 間接光計算の考え方
- 間接光計算の考え方 (2)
- 間接光計算の考え方 (3)
- 間接光計算の考え方 (4)
- 間接光計算の考え方 (5)
- 間接光計算の解説手順 (7)
- 問題提起
- 間接光計算の解説手順 (8)
- キーアイディア
- キーアイディア (2)
- キーアイディア (3)
- キーアイディア (4)
- キーアイディア (5)
- キーアイディア (6)
- 間接光計算の解説手順 (9)
- 間接光計算の解説手順 (10)
- を求める
- を求める (2)
- を求める (3)
- 最適な基底
- サンプリングベースの基底
- サンプルの選び方について
- サンプリング行列
- サンプリング行列 (2)
- サンプリング行列 (3)
- サンプリング行列 (4)
- サンプリング行列 (5)
- サンプリング行列 (6)
- サンプリング行列 (7)
- 特異値分解(Singular Value Decomposition)
- 特異値分解(Singular Value Decomposition) (2)
- 特異値分解(Singular Value Decomposition) (3)
- 特異値分解(Singular Value Decomposition) (4)
- 特異値分解(Singular Value Decomposition) (5)
- 基底による直接光の近似
- アプローチの比較
- ハイブリッド手法の計算手順
- 係数の数の比較
- ランタイムの計算処理
- 係数の計算方法
- ランタイムの計算処理 (2)
- 間接光計算の解説手順 (11)
- ショートデモ
- 間接光計算の解説手順 (12)
- 間接光計算の解説手順 (13)
- Light Probe
- Light Probe (2)
- Light Probeによるライティング
- Light Probeによるライティング (2)
- 間接光計算の解説手順 (14)
- Light Probeの計算
- 動的なLight Probe
- 動的なLight Probe (2)
- 間接光計算の解説手順 (15)
- デモ
- デモ詳細
- パフォーマンス
- まとめ
- 発表の流れ (5)
- シーン分割による高速化の解説手順
- シーン分割による高速化の解説手順 (2)
- 問題提起 (14)
- 問題提起 (24)
- 問題提起 (34)
- 問題提起 (44)
- シーン分割による高速化の解説手順 (3)
- シーン分割による高速化の解説手順 (4)
- キーアイディア (16)
- キーアイディア (26)
- キーアイディア (36)
- キーアイディア (46)
- キーアイディア (56)
- キーアイディア (66)
- シーン分割による高速化の解説手順 (5)
- 光の伝播行列の計算 (17)
- 光の伝播行列の計算 (27)
- 光の伝播行列の計算 (37)
- 光の伝播行列の計算 (47)
- 光の伝播行列の計算 (57)
- 光の伝播行列の計算 (67)
- 光の伝播行列の計算 (77)
- シーン分割による高速化の解説手順 (6)
- シーン分割による高速化の解説手順 (7)
- 多重反射への拡張
- シーン分割による高速化の解説手順 (8)
- モジュールの導入 (13)
- モジュールの導入 (23)
- モジュールの導入 (33)
- シーン分割による高速化の解説手順 (9)
- デモ (2)
- 考察
- 発表の流れ (6)
- 発表内容のまとめ
- 著作権について
- 最後に
- Appendix A 実装について
- Appendix A 前計算について
- Appendix A ランタイム
- Appendix A ランタイム 係数
- Appendix A ランタイム
- Appendix A ランタイム 最終パス
- Appendix A ランタイム Light Probe(1)
- Appendix A ランタイム Light Probe(2)
- Appendix B 後半の補足
- Appendix B 後半の補足 (2)
- Appendix C 記号の表記
-
CEDEC 2012
デモ
CEDEC 2012
考察
bull ライトフィールドは本当に必要か
bull 小領域間の位置関係が固定ならば(恐らく)不要
rArr レイトレーシング法で伝播行列 P を直接計算 した方が効率的bull 小領域を動的に入れ替える場合は必要
P = Pin times Pthrough times Pout
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ 3 まとめ
CEDEC 2012
発表内容のまとめ
bull Modular Radiance Transfer 法を解説ndash 長所
bull とにかく高速bull 多重反射を含んだ間接光が扱えるbull 技術のコア部分は汎用的で応用の余地が高い
ndash 短所bull 前計算を含め使い方に癖がある ( 実験を通してノウハウを蓄積すれば余り問題にならない )
ゲームへの応用は十分可能
CEDEC 2012
本スライド内で引用した論文の図の著作権は全て論文著者に帰属します
その他の図スライド本体挿絵等の著作権は
シリコンスタジオ株式会社に帰属します
著作権について
CEDEC 2012
最後に
御清聴ありがとうございました
httpwwwsiliconstudiocojppresentationsindexhtml
スライドデモは弊社 HP で近日公開
制作協力 河野 駿介 辻 俊晶 古家 亙 後藤 晋也 京田 文人 三谷 健一郎
問い合わせ先 田村 nk-tamurasiliconstudiocojp 安田 re-yasudasiliconstudiocojp
シリコンスタジオは常に人材を求めています
ご興味ある方は弊社 HP をご覧ください
CEDEC 2012
Appendix A 実装について
bull 実装自体は様々なアプローチが可能bull ここではデモの実装でのアプローチを紹介
CEDEC 2012
Appendix A 前計算について
bull F の計算ndash メッシュの全頂点からキューブマップにレンダリングndash ピクセルには頂点 ID とウェイトを出力
bull 直接光サンプルの計算ndash 頂点カラーを Stream Out でバッファに出力ndash 頂点シャドウあり
bull Light Probe の計算ndash 各 Probe の中心からキューブマップにレンダリングndash の対応する基底ベクトル同士を足し合わせた
ベクトル ( 直接光 + 間接光 ) を頂点カラーとして使用
CEDEC 2012
Appendix A ランタイム
bull 直接光の結果を Stream Out でバッファに出力ndash 頂点シャドウありndash カラーバッファへの書き込み OFFndash 複数オブジェクトの場合は単一バッファにオフ
セットを変えて出力
119897119889
CEDEC 2012
Appendix A ランタイム 係数
bull Compute Shader で を計算ndash は極めて横長の行列 ( 行 ~100程度 列 頂点数 )ndash は GPU が少々苦手な処理ではあるものの
タイリングベースの実装で高速に処理可能
iquest
119897119889119960 lowast119861119889minus1
CEDEC 2012
Appendix A ランタイム
bull Compute Shader で を計算ndash は極めて縦長 ( の転置と同サイズ ) なので素直に実装可能
iquest
119861119894119899119889 119960119897119894119899 119889 lowast
CEDEC 2012
Appendix A ランタイム 最終パス
bull を頂点カラーとして入力としてピクセル単位の直接光のシェーディングと合成して最終結果を得る
iquest +
CEDEC 2012
Appendix A ランタイム Light Probe(1)
bull Compute Shader でを計算ndash は縦長 ( 行 頂点数 timesSH係数の数 列 ~100程度 )
iquest
119880119907119900119897 119960119897119907119900119897 lowast
CEDEC 2012
Appendix A ランタイム Light Probe(2)
bull Probe を用いて Dynamic Objects をライティングndash 各 Light Probe が SH を 9係数で保持するため
3D Texture ではなく Structured-Buffer で保持ndash Vertex Shader 内で自力 Tri-Linear 補間
iquest +
CEDEC 2012
Appendix B 後半の補足
bull 大規模なシーンでの光の伝播bull 小領域間の光の伝播は個別に総当たりで計算
rArr小領域間の光の伝播は距離によって大きく減衰
実際は大規模シーンでも概ね二つ隣の小領域まで考慮すれば十分
CEDEC 2012
Appendix B 後半の補足
bull 小領域の境界
bull 小領域の境界部分が不連続になる rArr 小領域の境界部分は補間の必要がある
CEDEC 2012
bull スライドと論文で表記が違う記号があります
Appendix C 記号の表記
スライドでの表記 論文での表記
b
- Slide 1
- 発表の流れ
- 発表の流れ (2)
- 発表の概要
- 解説技術の特徴
- 注意点
- 発表の流れ (3)
- 発表の流れ (4)
- 間接光の概要
- 間接光の概要 (2)
- 解説手法の計算概要
- 間接光計算の解説手順
- 間接光計算の解説手順 (2)
- 間接光計算の解説手順 (3)
- 間接光計算の解説手順 (4)
- 間接光計算の解説手順 (5)
- 間接光計算の解説手順 (6)
- 間接光計算の考え方
- 間接光計算の考え方 (2)
- 間接光計算の考え方 (3)
- 間接光計算の考え方 (4)
- 間接光計算の考え方 (5)
- 間接光計算の解説手順 (7)
- 問題提起
- 間接光計算の解説手順 (8)
- キーアイディア
- キーアイディア (2)
- キーアイディア (3)
- キーアイディア (4)
- キーアイディア (5)
- キーアイディア (6)
- 間接光計算の解説手順 (9)
- 間接光計算の解説手順 (10)
- を求める
- を求める (2)
- を求める (3)
- 最適な基底
- サンプリングベースの基底
- サンプルの選び方について
- サンプリング行列
- サンプリング行列 (2)
- サンプリング行列 (3)
- サンプリング行列 (4)
- サンプリング行列 (5)
- サンプリング行列 (6)
- サンプリング行列 (7)
- 特異値分解(Singular Value Decomposition)
- 特異値分解(Singular Value Decomposition) (2)
- 特異値分解(Singular Value Decomposition) (3)
- 特異値分解(Singular Value Decomposition) (4)
- 特異値分解(Singular Value Decomposition) (5)
- 基底による直接光の近似
- アプローチの比較
- ハイブリッド手法の計算手順
- 係数の数の比較
- ランタイムの計算処理
- 係数の計算方法
- ランタイムの計算処理 (2)
- 間接光計算の解説手順 (11)
- ショートデモ
- 間接光計算の解説手順 (12)
- 間接光計算の解説手順 (13)
- Light Probe
- Light Probe (2)
- Light Probeによるライティング
- Light Probeによるライティング (2)
- 間接光計算の解説手順 (14)
- Light Probeの計算
- 動的なLight Probe
- 動的なLight Probe (2)
- 間接光計算の解説手順 (15)
- デモ
- デモ詳細
- パフォーマンス
- まとめ
- 発表の流れ (5)
- シーン分割による高速化の解説手順
- シーン分割による高速化の解説手順 (2)
- 問題提起 (14)
- 問題提起 (24)
- 問題提起 (34)
- 問題提起 (44)
- シーン分割による高速化の解説手順 (3)
- シーン分割による高速化の解説手順 (4)
- キーアイディア (16)
- キーアイディア (26)
- キーアイディア (36)
- キーアイディア (46)
- キーアイディア (56)
- キーアイディア (66)
- シーン分割による高速化の解説手順 (5)
- 光の伝播行列の計算 (17)
- 光の伝播行列の計算 (27)
- 光の伝播行列の計算 (37)
- 光の伝播行列の計算 (47)
- 光の伝播行列の計算 (57)
- 光の伝播行列の計算 (67)
- 光の伝播行列の計算 (77)
- シーン分割による高速化の解説手順 (6)
- シーン分割による高速化の解説手順 (7)
- 多重反射への拡張
- シーン分割による高速化の解説手順 (8)
- モジュールの導入 (13)
- モジュールの導入 (23)
- モジュールの導入 (33)
- シーン分割による高速化の解説手順 (9)
- デモ (2)
- 考察
- 発表の流れ (6)
- 発表内容のまとめ
- 著作権について
- 最後に
- Appendix A 実装について
- Appendix A 前計算について
- Appendix A ランタイム
- Appendix A ランタイム 係数
- Appendix A ランタイム
- Appendix A ランタイム 最終パス
- Appendix A ランタイム Light Probe(1)
- Appendix A ランタイム Light Probe(2)
- Appendix B 後半の補足
- Appendix B 後半の補足 (2)
- Appendix C 記号の表記
-
CEDEC 2012
考察
bull ライトフィールドは本当に必要か
bull 小領域間の位置関係が固定ならば(恐らく)不要
rArr レイトレーシング法で伝播行列 P を直接計算 した方が効率的bull 小領域を動的に入れ替える場合は必要
P = Pin times Pthrough times Pout
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ 3 まとめ
CEDEC 2012
発表内容のまとめ
bull Modular Radiance Transfer 法を解説ndash 長所
bull とにかく高速bull 多重反射を含んだ間接光が扱えるbull 技術のコア部分は汎用的で応用の余地が高い
ndash 短所bull 前計算を含め使い方に癖がある ( 実験を通してノウハウを蓄積すれば余り問題にならない )
ゲームへの応用は十分可能
CEDEC 2012
本スライド内で引用した論文の図の著作権は全て論文著者に帰属します
その他の図スライド本体挿絵等の著作権は
シリコンスタジオ株式会社に帰属します
著作権について
CEDEC 2012
最後に
御清聴ありがとうございました
httpwwwsiliconstudiocojppresentationsindexhtml
スライドデモは弊社 HP で近日公開
制作協力 河野 駿介 辻 俊晶 古家 亙 後藤 晋也 京田 文人 三谷 健一郎
問い合わせ先 田村 nk-tamurasiliconstudiocojp 安田 re-yasudasiliconstudiocojp
シリコンスタジオは常に人材を求めています
ご興味ある方は弊社 HP をご覧ください
CEDEC 2012
Appendix A 実装について
bull 実装自体は様々なアプローチが可能bull ここではデモの実装でのアプローチを紹介
CEDEC 2012
Appendix A 前計算について
bull F の計算ndash メッシュの全頂点からキューブマップにレンダリングndash ピクセルには頂点 ID とウェイトを出力
bull 直接光サンプルの計算ndash 頂点カラーを Stream Out でバッファに出力ndash 頂点シャドウあり
bull Light Probe の計算ndash 各 Probe の中心からキューブマップにレンダリングndash の対応する基底ベクトル同士を足し合わせた
ベクトル ( 直接光 + 間接光 ) を頂点カラーとして使用
CEDEC 2012
Appendix A ランタイム
bull 直接光の結果を Stream Out でバッファに出力ndash 頂点シャドウありndash カラーバッファへの書き込み OFFndash 複数オブジェクトの場合は単一バッファにオフ
セットを変えて出力
119897119889
CEDEC 2012
Appendix A ランタイム 係数
bull Compute Shader で を計算ndash は極めて横長の行列 ( 行 ~100程度 列 頂点数 )ndash は GPU が少々苦手な処理ではあるものの
タイリングベースの実装で高速に処理可能
iquest
119897119889119960 lowast119861119889minus1
CEDEC 2012
Appendix A ランタイム
bull Compute Shader で を計算ndash は極めて縦長 ( の転置と同サイズ ) なので素直に実装可能
iquest
119861119894119899119889 119960119897119894119899 119889 lowast
CEDEC 2012
Appendix A ランタイム 最終パス
bull を頂点カラーとして入力としてピクセル単位の直接光のシェーディングと合成して最終結果を得る
iquest +
CEDEC 2012
Appendix A ランタイム Light Probe(1)
bull Compute Shader でを計算ndash は縦長 ( 行 頂点数 timesSH係数の数 列 ~100程度 )
iquest
119880119907119900119897 119960119897119907119900119897 lowast
CEDEC 2012
Appendix A ランタイム Light Probe(2)
bull Probe を用いて Dynamic Objects をライティングndash 各 Light Probe が SH を 9係数で保持するため
3D Texture ではなく Structured-Buffer で保持ndash Vertex Shader 内で自力 Tri-Linear 補間
iquest +
CEDEC 2012
Appendix B 後半の補足
bull 大規模なシーンでの光の伝播bull 小領域間の光の伝播は個別に総当たりで計算
rArr小領域間の光の伝播は距離によって大きく減衰
実際は大規模シーンでも概ね二つ隣の小領域まで考慮すれば十分
CEDEC 2012
Appendix B 後半の補足
bull 小領域の境界
bull 小領域の境界部分が不連続になる rArr 小領域の境界部分は補間の必要がある
CEDEC 2012
bull スライドと論文で表記が違う記号があります
Appendix C 記号の表記
スライドでの表記 論文での表記
b
- Slide 1
- 発表の流れ
- 発表の流れ (2)
- 発表の概要
- 解説技術の特徴
- 注意点
- 発表の流れ (3)
- 発表の流れ (4)
- 間接光の概要
- 間接光の概要 (2)
- 解説手法の計算概要
- 間接光計算の解説手順
- 間接光計算の解説手順 (2)
- 間接光計算の解説手順 (3)
- 間接光計算の解説手順 (4)
- 間接光計算の解説手順 (5)
- 間接光計算の解説手順 (6)
- 間接光計算の考え方
- 間接光計算の考え方 (2)
- 間接光計算の考え方 (3)
- 間接光計算の考え方 (4)
- 間接光計算の考え方 (5)
- 間接光計算の解説手順 (7)
- 問題提起
- 間接光計算の解説手順 (8)
- キーアイディア
- キーアイディア (2)
- キーアイディア (3)
- キーアイディア (4)
- キーアイディア (5)
- キーアイディア (6)
- 間接光計算の解説手順 (9)
- 間接光計算の解説手順 (10)
- を求める
- を求める (2)
- を求める (3)
- 最適な基底
- サンプリングベースの基底
- サンプルの選び方について
- サンプリング行列
- サンプリング行列 (2)
- サンプリング行列 (3)
- サンプリング行列 (4)
- サンプリング行列 (5)
- サンプリング行列 (6)
- サンプリング行列 (7)
- 特異値分解(Singular Value Decomposition)
- 特異値分解(Singular Value Decomposition) (2)
- 特異値分解(Singular Value Decomposition) (3)
- 特異値分解(Singular Value Decomposition) (4)
- 特異値分解(Singular Value Decomposition) (5)
- 基底による直接光の近似
- アプローチの比較
- ハイブリッド手法の計算手順
- 係数の数の比較
- ランタイムの計算処理
- 係数の計算方法
- ランタイムの計算処理 (2)
- 間接光計算の解説手順 (11)
- ショートデモ
- 間接光計算の解説手順 (12)
- 間接光計算の解説手順 (13)
- Light Probe
- Light Probe (2)
- Light Probeによるライティング
- Light Probeによるライティング (2)
- 間接光計算の解説手順 (14)
- Light Probeの計算
- 動的なLight Probe
- 動的なLight Probe (2)
- 間接光計算の解説手順 (15)
- デモ
- デモ詳細
- パフォーマンス
- まとめ
- 発表の流れ (5)
- シーン分割による高速化の解説手順
- シーン分割による高速化の解説手順 (2)
- 問題提起 (14)
- 問題提起 (24)
- 問題提起 (34)
- 問題提起 (44)
- シーン分割による高速化の解説手順 (3)
- シーン分割による高速化の解説手順 (4)
- キーアイディア (16)
- キーアイディア (26)
- キーアイディア (36)
- キーアイディア (46)
- キーアイディア (56)
- キーアイディア (66)
- シーン分割による高速化の解説手順 (5)
- 光の伝播行列の計算 (17)
- 光の伝播行列の計算 (27)
- 光の伝播行列の計算 (37)
- 光の伝播行列の計算 (47)
- 光の伝播行列の計算 (57)
- 光の伝播行列の計算 (67)
- 光の伝播行列の計算 (77)
- シーン分割による高速化の解説手順 (6)
- シーン分割による高速化の解説手順 (7)
- 多重反射への拡張
- シーン分割による高速化の解説手順 (8)
- モジュールの導入 (13)
- モジュールの導入 (23)
- モジュールの導入 (33)
- シーン分割による高速化の解説手順 (9)
- デモ (2)
- 考察
- 発表の流れ (6)
- 発表内容のまとめ
- 著作権について
- 最後に
- Appendix A 実装について
- Appendix A 前計算について
- Appendix A ランタイム
- Appendix A ランタイム 係数
- Appendix A ランタイム
- Appendix A ランタイム 最終パス
- Appendix A ランタイム Light Probe(1)
- Appendix A ランタイム Light Probe(2)
- Appendix B 後半の補足
- Appendix B 後半の補足 (2)
- Appendix C 記号の表記
-
CEDEC 2012
発表の流れ
1 発表の概要 2 技術紹介 + デモ 3 まとめ
CEDEC 2012
発表内容のまとめ
bull Modular Radiance Transfer 法を解説ndash 長所
bull とにかく高速bull 多重反射を含んだ間接光が扱えるbull 技術のコア部分は汎用的で応用の余地が高い
ndash 短所bull 前計算を含め使い方に癖がある ( 実験を通してノウハウを蓄積すれば余り問題にならない )
ゲームへの応用は十分可能
CEDEC 2012
本スライド内で引用した論文の図の著作権は全て論文著者に帰属します
その他の図スライド本体挿絵等の著作権は
シリコンスタジオ株式会社に帰属します
著作権について
CEDEC 2012
最後に
御清聴ありがとうございました
httpwwwsiliconstudiocojppresentationsindexhtml
スライドデモは弊社 HP で近日公開
制作協力 河野 駿介 辻 俊晶 古家 亙 後藤 晋也 京田 文人 三谷 健一郎
問い合わせ先 田村 nk-tamurasiliconstudiocojp 安田 re-yasudasiliconstudiocojp
シリコンスタジオは常に人材を求めています
ご興味ある方は弊社 HP をご覧ください
CEDEC 2012
Appendix A 実装について
bull 実装自体は様々なアプローチが可能bull ここではデモの実装でのアプローチを紹介
CEDEC 2012
Appendix A 前計算について
bull F の計算ndash メッシュの全頂点からキューブマップにレンダリングndash ピクセルには頂点 ID とウェイトを出力
bull 直接光サンプルの計算ndash 頂点カラーを Stream Out でバッファに出力ndash 頂点シャドウあり
bull Light Probe の計算ndash 各 Probe の中心からキューブマップにレンダリングndash の対応する基底ベクトル同士を足し合わせた
ベクトル ( 直接光 + 間接光 ) を頂点カラーとして使用
CEDEC 2012
Appendix A ランタイム
bull 直接光の結果を Stream Out でバッファに出力ndash 頂点シャドウありndash カラーバッファへの書き込み OFFndash 複数オブジェクトの場合は単一バッファにオフ
セットを変えて出力
119897119889
CEDEC 2012
Appendix A ランタイム 係数
bull Compute Shader で を計算ndash は極めて横長の行列 ( 行 ~100程度 列 頂点数 )ndash は GPU が少々苦手な処理ではあるものの
タイリングベースの実装で高速に処理可能
iquest
119897119889119960 lowast119861119889minus1
CEDEC 2012
Appendix A ランタイム
bull Compute Shader で を計算ndash は極めて縦長 ( の転置と同サイズ ) なので素直に実装可能
iquest
119861119894119899119889 119960119897119894119899 119889 lowast
CEDEC 2012
Appendix A ランタイム 最終パス
bull を頂点カラーとして入力としてピクセル単位の直接光のシェーディングと合成して最終結果を得る
iquest +
CEDEC 2012
Appendix A ランタイム Light Probe(1)
bull Compute Shader でを計算ndash は縦長 ( 行 頂点数 timesSH係数の数 列 ~100程度 )
iquest
119880119907119900119897 119960119897119907119900119897 lowast
CEDEC 2012
Appendix A ランタイム Light Probe(2)
bull Probe を用いて Dynamic Objects をライティングndash 各 Light Probe が SH を 9係数で保持するため
3D Texture ではなく Structured-Buffer で保持ndash Vertex Shader 内で自力 Tri-Linear 補間
iquest +
CEDEC 2012
Appendix B 後半の補足
bull 大規模なシーンでの光の伝播bull 小領域間の光の伝播は個別に総当たりで計算
rArr小領域間の光の伝播は距離によって大きく減衰
実際は大規模シーンでも概ね二つ隣の小領域まで考慮すれば十分
CEDEC 2012
Appendix B 後半の補足
bull 小領域の境界
bull 小領域の境界部分が不連続になる rArr 小領域の境界部分は補間の必要がある
CEDEC 2012
bull スライドと論文で表記が違う記号があります
Appendix C 記号の表記
スライドでの表記 論文での表記
b
- Slide 1
- 発表の流れ
- 発表の流れ (2)
- 発表の概要
- 解説技術の特徴
- 注意点
- 発表の流れ (3)
- 発表の流れ (4)
- 間接光の概要
- 間接光の概要 (2)
- 解説手法の計算概要
- 間接光計算の解説手順
- 間接光計算の解説手順 (2)
- 間接光計算の解説手順 (3)
- 間接光計算の解説手順 (4)
- 間接光計算の解説手順 (5)
- 間接光計算の解説手順 (6)
- 間接光計算の考え方
- 間接光計算の考え方 (2)
- 間接光計算の考え方 (3)
- 間接光計算の考え方 (4)
- 間接光計算の考え方 (5)
- 間接光計算の解説手順 (7)
- 問題提起
- 間接光計算の解説手順 (8)
- キーアイディア
- キーアイディア (2)
- キーアイディア (3)
- キーアイディア (4)
- キーアイディア (5)
- キーアイディア (6)
- 間接光計算の解説手順 (9)
- 間接光計算の解説手順 (10)
- を求める
- を求める (2)
- を求める (3)
- 最適な基底
- サンプリングベースの基底
- サンプルの選び方について
- サンプリング行列
- サンプリング行列 (2)
- サンプリング行列 (3)
- サンプリング行列 (4)
- サンプリング行列 (5)
- サンプリング行列 (6)
- サンプリング行列 (7)
- 特異値分解(Singular Value Decomposition)
- 特異値分解(Singular Value Decomposition) (2)
- 特異値分解(Singular Value Decomposition) (3)
- 特異値分解(Singular Value Decomposition) (4)
- 特異値分解(Singular Value Decomposition) (5)
- 基底による直接光の近似
- アプローチの比較
- ハイブリッド手法の計算手順
- 係数の数の比較
- ランタイムの計算処理
- 係数の計算方法
- ランタイムの計算処理 (2)
- 間接光計算の解説手順 (11)
- ショートデモ
- 間接光計算の解説手順 (12)
- 間接光計算の解説手順 (13)
- Light Probe
- Light Probe (2)
- Light Probeによるライティング
- Light Probeによるライティング (2)
- 間接光計算の解説手順 (14)
- Light Probeの計算
- 動的なLight Probe
- 動的なLight Probe (2)
- 間接光計算の解説手順 (15)
- デモ
- デモ詳細
- パフォーマンス
- まとめ
- 発表の流れ (5)
- シーン分割による高速化の解説手順
- シーン分割による高速化の解説手順 (2)
- 問題提起 (14)
- 問題提起 (24)
- 問題提起 (34)
- 問題提起 (44)
- シーン分割による高速化の解説手順 (3)
- シーン分割による高速化の解説手順 (4)
- キーアイディア (16)
- キーアイディア (26)
- キーアイディア (36)
- キーアイディア (46)
- キーアイディア (56)
- キーアイディア (66)
- シーン分割による高速化の解説手順 (5)
- 光の伝播行列の計算 (17)
- 光の伝播行列の計算 (27)
- 光の伝播行列の計算 (37)
- 光の伝播行列の計算 (47)
- 光の伝播行列の計算 (57)
- 光の伝播行列の計算 (67)
- 光の伝播行列の計算 (77)
- シーン分割による高速化の解説手順 (6)
- シーン分割による高速化の解説手順 (7)
- 多重反射への拡張
- シーン分割による高速化の解説手順 (8)
- モジュールの導入 (13)
- モジュールの導入 (23)
- モジュールの導入 (33)
- シーン分割による高速化の解説手順 (9)
- デモ (2)
- 考察
- 発表の流れ (6)
- 発表内容のまとめ
- 著作権について
- 最後に
- Appendix A 実装について
- Appendix A 前計算について
- Appendix A ランタイム
- Appendix A ランタイム 係数
- Appendix A ランタイム
- Appendix A ランタイム 最終パス
- Appendix A ランタイム Light Probe(1)
- Appendix A ランタイム Light Probe(2)
- Appendix B 後半の補足
- Appendix B 後半の補足 (2)
- Appendix C 記号の表記
-
CEDEC 2012
発表内容のまとめ
bull Modular Radiance Transfer 法を解説ndash 長所
bull とにかく高速bull 多重反射を含んだ間接光が扱えるbull 技術のコア部分は汎用的で応用の余地が高い
ndash 短所bull 前計算を含め使い方に癖がある ( 実験を通してノウハウを蓄積すれば余り問題にならない )
ゲームへの応用は十分可能
CEDEC 2012
本スライド内で引用した論文の図の著作権は全て論文著者に帰属します
その他の図スライド本体挿絵等の著作権は
シリコンスタジオ株式会社に帰属します
著作権について
CEDEC 2012
最後に
御清聴ありがとうございました
httpwwwsiliconstudiocojppresentationsindexhtml
スライドデモは弊社 HP で近日公開
制作協力 河野 駿介 辻 俊晶 古家 亙 後藤 晋也 京田 文人 三谷 健一郎
問い合わせ先 田村 nk-tamurasiliconstudiocojp 安田 re-yasudasiliconstudiocojp
シリコンスタジオは常に人材を求めています
ご興味ある方は弊社 HP をご覧ください
CEDEC 2012
Appendix A 実装について
bull 実装自体は様々なアプローチが可能bull ここではデモの実装でのアプローチを紹介
CEDEC 2012
Appendix A 前計算について
bull F の計算ndash メッシュの全頂点からキューブマップにレンダリングndash ピクセルには頂点 ID とウェイトを出力
bull 直接光サンプルの計算ndash 頂点カラーを Stream Out でバッファに出力ndash 頂点シャドウあり
bull Light Probe の計算ndash 各 Probe の中心からキューブマップにレンダリングndash の対応する基底ベクトル同士を足し合わせた
ベクトル ( 直接光 + 間接光 ) を頂点カラーとして使用
CEDEC 2012
Appendix A ランタイム
bull 直接光の結果を Stream Out でバッファに出力ndash 頂点シャドウありndash カラーバッファへの書き込み OFFndash 複数オブジェクトの場合は単一バッファにオフ
セットを変えて出力
119897119889
CEDEC 2012
Appendix A ランタイム 係数
bull Compute Shader で を計算ndash は極めて横長の行列 ( 行 ~100程度 列 頂点数 )ndash は GPU が少々苦手な処理ではあるものの
タイリングベースの実装で高速に処理可能
iquest
119897119889119960 lowast119861119889minus1
CEDEC 2012
Appendix A ランタイム
bull Compute Shader で を計算ndash は極めて縦長 ( の転置と同サイズ ) なので素直に実装可能
iquest
119861119894119899119889 119960119897119894119899 119889 lowast
CEDEC 2012
Appendix A ランタイム 最終パス
bull を頂点カラーとして入力としてピクセル単位の直接光のシェーディングと合成して最終結果を得る
iquest +
CEDEC 2012
Appendix A ランタイム Light Probe(1)
bull Compute Shader でを計算ndash は縦長 ( 行 頂点数 timesSH係数の数 列 ~100程度 )
iquest
119880119907119900119897 119960119897119907119900119897 lowast
CEDEC 2012
Appendix A ランタイム Light Probe(2)
bull Probe を用いて Dynamic Objects をライティングndash 各 Light Probe が SH を 9係数で保持するため
3D Texture ではなく Structured-Buffer で保持ndash Vertex Shader 内で自力 Tri-Linear 補間
iquest +
CEDEC 2012
Appendix B 後半の補足
bull 大規模なシーンでの光の伝播bull 小領域間の光の伝播は個別に総当たりで計算
rArr小領域間の光の伝播は距離によって大きく減衰
実際は大規模シーンでも概ね二つ隣の小領域まで考慮すれば十分
CEDEC 2012
Appendix B 後半の補足
bull 小領域の境界
bull 小領域の境界部分が不連続になる rArr 小領域の境界部分は補間の必要がある
CEDEC 2012
bull スライドと論文で表記が違う記号があります
Appendix C 記号の表記
スライドでの表記 論文での表記
b
- Slide 1
- 発表の流れ
- 発表の流れ (2)
- 発表の概要
- 解説技術の特徴
- 注意点
- 発表の流れ (3)
- 発表の流れ (4)
- 間接光の概要
- 間接光の概要 (2)
- 解説手法の計算概要
- 間接光計算の解説手順
- 間接光計算の解説手順 (2)
- 間接光計算の解説手順 (3)
- 間接光計算の解説手順 (4)
- 間接光計算の解説手順 (5)
- 間接光計算の解説手順 (6)
- 間接光計算の考え方
- 間接光計算の考え方 (2)
- 間接光計算の考え方 (3)
- 間接光計算の考え方 (4)
- 間接光計算の考え方 (5)
- 間接光計算の解説手順 (7)
- 問題提起
- 間接光計算の解説手順 (8)
- キーアイディア
- キーアイディア (2)
- キーアイディア (3)
- キーアイディア (4)
- キーアイディア (5)
- キーアイディア (6)
- 間接光計算の解説手順 (9)
- 間接光計算の解説手順 (10)
- を求める
- を求める (2)
- を求める (3)
- 最適な基底
- サンプリングベースの基底
- サンプルの選び方について
- サンプリング行列
- サンプリング行列 (2)
- サンプリング行列 (3)
- サンプリング行列 (4)
- サンプリング行列 (5)
- サンプリング行列 (6)
- サンプリング行列 (7)
- 特異値分解(Singular Value Decomposition)
- 特異値分解(Singular Value Decomposition) (2)
- 特異値分解(Singular Value Decomposition) (3)
- 特異値分解(Singular Value Decomposition) (4)
- 特異値分解(Singular Value Decomposition) (5)
- 基底による直接光の近似
- アプローチの比較
- ハイブリッド手法の計算手順
- 係数の数の比較
- ランタイムの計算処理
- 係数の計算方法
- ランタイムの計算処理 (2)
- 間接光計算の解説手順 (11)
- ショートデモ
- 間接光計算の解説手順 (12)
- 間接光計算の解説手順 (13)
- Light Probe
- Light Probe (2)
- Light Probeによるライティング
- Light Probeによるライティング (2)
- 間接光計算の解説手順 (14)
- Light Probeの計算
- 動的なLight Probe
- 動的なLight Probe (2)
- 間接光計算の解説手順 (15)
- デモ
- デモ詳細
- パフォーマンス
- まとめ
- 発表の流れ (5)
- シーン分割による高速化の解説手順
- シーン分割による高速化の解説手順 (2)
- 問題提起 (14)
- 問題提起 (24)
- 問題提起 (34)
- 問題提起 (44)
- シーン分割による高速化の解説手順 (3)
- シーン分割による高速化の解説手順 (4)
- キーアイディア (16)
- キーアイディア (26)
- キーアイディア (36)
- キーアイディア (46)
- キーアイディア (56)
- キーアイディア (66)
- シーン分割による高速化の解説手順 (5)
- 光の伝播行列の計算 (17)
- 光の伝播行列の計算 (27)
- 光の伝播行列の計算 (37)
- 光の伝播行列の計算 (47)
- 光の伝播行列の計算 (57)
- 光の伝播行列の計算 (67)
- 光の伝播行列の計算 (77)
- シーン分割による高速化の解説手順 (6)
- シーン分割による高速化の解説手順 (7)
- 多重反射への拡張
- シーン分割による高速化の解説手順 (8)
- モジュールの導入 (13)
- モジュールの導入 (23)
- モジュールの導入 (33)
- シーン分割による高速化の解説手順 (9)
- デモ (2)
- 考察
- 発表の流れ (6)
- 発表内容のまとめ
- 著作権について
- 最後に
- Appendix A 実装について
- Appendix A 前計算について
- Appendix A ランタイム
- Appendix A ランタイム 係数
- Appendix A ランタイム
- Appendix A ランタイム 最終パス
- Appendix A ランタイム Light Probe(1)
- Appendix A ランタイム Light Probe(2)
- Appendix B 後半の補足
- Appendix B 後半の補足 (2)
- Appendix C 記号の表記
-
CEDEC 2012
本スライド内で引用した論文の図の著作権は全て論文著者に帰属します
その他の図スライド本体挿絵等の著作権は
シリコンスタジオ株式会社に帰属します
著作権について
CEDEC 2012
最後に
御清聴ありがとうございました
httpwwwsiliconstudiocojppresentationsindexhtml
スライドデモは弊社 HP で近日公開
制作協力 河野 駿介 辻 俊晶 古家 亙 後藤 晋也 京田 文人 三谷 健一郎
問い合わせ先 田村 nk-tamurasiliconstudiocojp 安田 re-yasudasiliconstudiocojp
シリコンスタジオは常に人材を求めています
ご興味ある方は弊社 HP をご覧ください
CEDEC 2012
Appendix A 実装について
bull 実装自体は様々なアプローチが可能bull ここではデモの実装でのアプローチを紹介
CEDEC 2012
Appendix A 前計算について
bull F の計算ndash メッシュの全頂点からキューブマップにレンダリングndash ピクセルには頂点 ID とウェイトを出力
bull 直接光サンプルの計算ndash 頂点カラーを Stream Out でバッファに出力ndash 頂点シャドウあり
bull Light Probe の計算ndash 各 Probe の中心からキューブマップにレンダリングndash の対応する基底ベクトル同士を足し合わせた
ベクトル ( 直接光 + 間接光 ) を頂点カラーとして使用
CEDEC 2012
Appendix A ランタイム
bull 直接光の結果を Stream Out でバッファに出力ndash 頂点シャドウありndash カラーバッファへの書き込み OFFndash 複数オブジェクトの場合は単一バッファにオフ
セットを変えて出力
119897119889
CEDEC 2012
Appendix A ランタイム 係数
bull Compute Shader で を計算ndash は極めて横長の行列 ( 行 ~100程度 列 頂点数 )ndash は GPU が少々苦手な処理ではあるものの
タイリングベースの実装で高速に処理可能
iquest
119897119889119960 lowast119861119889minus1
CEDEC 2012
Appendix A ランタイム
bull Compute Shader で を計算ndash は極めて縦長 ( の転置と同サイズ ) なので素直に実装可能
iquest
119861119894119899119889 119960119897119894119899 119889 lowast
CEDEC 2012
Appendix A ランタイム 最終パス
bull を頂点カラーとして入力としてピクセル単位の直接光のシェーディングと合成して最終結果を得る
iquest +
CEDEC 2012
Appendix A ランタイム Light Probe(1)
bull Compute Shader でを計算ndash は縦長 ( 行 頂点数 timesSH係数の数 列 ~100程度 )
iquest
119880119907119900119897 119960119897119907119900119897 lowast
CEDEC 2012
Appendix A ランタイム Light Probe(2)
bull Probe を用いて Dynamic Objects をライティングndash 各 Light Probe が SH を 9係数で保持するため
3D Texture ではなく Structured-Buffer で保持ndash Vertex Shader 内で自力 Tri-Linear 補間
iquest +
CEDEC 2012
Appendix B 後半の補足
bull 大規模なシーンでの光の伝播bull 小領域間の光の伝播は個別に総当たりで計算
rArr小領域間の光の伝播は距離によって大きく減衰
実際は大規模シーンでも概ね二つ隣の小領域まで考慮すれば十分
CEDEC 2012
Appendix B 後半の補足
bull 小領域の境界
bull 小領域の境界部分が不連続になる rArr 小領域の境界部分は補間の必要がある
CEDEC 2012
bull スライドと論文で表記が違う記号があります
Appendix C 記号の表記
スライドでの表記 論文での表記
b
- Slide 1
- 発表の流れ
- 発表の流れ (2)
- 発表の概要
- 解説技術の特徴
- 注意点
- 発表の流れ (3)
- 発表の流れ (4)
- 間接光の概要
- 間接光の概要 (2)
- 解説手法の計算概要
- 間接光計算の解説手順
- 間接光計算の解説手順 (2)
- 間接光計算の解説手順 (3)
- 間接光計算の解説手順 (4)
- 間接光計算の解説手順 (5)
- 間接光計算の解説手順 (6)
- 間接光計算の考え方
- 間接光計算の考え方 (2)
- 間接光計算の考え方 (3)
- 間接光計算の考え方 (4)
- 間接光計算の考え方 (5)
- 間接光計算の解説手順 (7)
- 問題提起
- 間接光計算の解説手順 (8)
- キーアイディア
- キーアイディア (2)
- キーアイディア (3)
- キーアイディア (4)
- キーアイディア (5)
- キーアイディア (6)
- 間接光計算の解説手順 (9)
- 間接光計算の解説手順 (10)
- を求める
- を求める (2)
- を求める (3)
- 最適な基底
- サンプリングベースの基底
- サンプルの選び方について
- サンプリング行列
- サンプリング行列 (2)
- サンプリング行列 (3)
- サンプリング行列 (4)
- サンプリング行列 (5)
- サンプリング行列 (6)
- サンプリング行列 (7)
- 特異値分解(Singular Value Decomposition)
- 特異値分解(Singular Value Decomposition) (2)
- 特異値分解(Singular Value Decomposition) (3)
- 特異値分解(Singular Value Decomposition) (4)
- 特異値分解(Singular Value Decomposition) (5)
- 基底による直接光の近似
- アプローチの比較
- ハイブリッド手法の計算手順
- 係数の数の比較
- ランタイムの計算処理
- 係数の計算方法
- ランタイムの計算処理 (2)
- 間接光計算の解説手順 (11)
- ショートデモ
- 間接光計算の解説手順 (12)
- 間接光計算の解説手順 (13)
- Light Probe
- Light Probe (2)
- Light Probeによるライティング
- Light Probeによるライティング (2)
- 間接光計算の解説手順 (14)
- Light Probeの計算
- 動的なLight Probe
- 動的なLight Probe (2)
- 間接光計算の解説手順 (15)
- デモ
- デモ詳細
- パフォーマンス
- まとめ
- 発表の流れ (5)
- シーン分割による高速化の解説手順
- シーン分割による高速化の解説手順 (2)
- 問題提起 (14)
- 問題提起 (24)
- 問題提起 (34)
- 問題提起 (44)
- シーン分割による高速化の解説手順 (3)
- シーン分割による高速化の解説手順 (4)
- キーアイディア (16)
- キーアイディア (26)
- キーアイディア (36)
- キーアイディア (46)
- キーアイディア (56)
- キーアイディア (66)
- シーン分割による高速化の解説手順 (5)
- 光の伝播行列の計算 (17)
- 光の伝播行列の計算 (27)
- 光の伝播行列の計算 (37)
- 光の伝播行列の計算 (47)
- 光の伝播行列の計算 (57)
- 光の伝播行列の計算 (67)
- 光の伝播行列の計算 (77)
- シーン分割による高速化の解説手順 (6)
- シーン分割による高速化の解説手順 (7)
- 多重反射への拡張
- シーン分割による高速化の解説手順 (8)
- モジュールの導入 (13)
- モジュールの導入 (23)
- モジュールの導入 (33)
- シーン分割による高速化の解説手順 (9)
- デモ (2)
- 考察
- 発表の流れ (6)
- 発表内容のまとめ
- 著作権について
- 最後に
- Appendix A 実装について
- Appendix A 前計算について
- Appendix A ランタイム
- Appendix A ランタイム 係数
- Appendix A ランタイム
- Appendix A ランタイム 最終パス
- Appendix A ランタイム Light Probe(1)
- Appendix A ランタイム Light Probe(2)
- Appendix B 後半の補足
- Appendix B 後半の補足 (2)
- Appendix C 記号の表記
-
CEDEC 2012
最後に
御清聴ありがとうございました
httpwwwsiliconstudiocojppresentationsindexhtml
スライドデモは弊社 HP で近日公開
制作協力 河野 駿介 辻 俊晶 古家 亙 後藤 晋也 京田 文人 三谷 健一郎
問い合わせ先 田村 nk-tamurasiliconstudiocojp 安田 re-yasudasiliconstudiocojp
シリコンスタジオは常に人材を求めています
ご興味ある方は弊社 HP をご覧ください
CEDEC 2012
Appendix A 実装について
bull 実装自体は様々なアプローチが可能bull ここではデモの実装でのアプローチを紹介
CEDEC 2012
Appendix A 前計算について
bull F の計算ndash メッシュの全頂点からキューブマップにレンダリングndash ピクセルには頂点 ID とウェイトを出力
bull 直接光サンプルの計算ndash 頂点カラーを Stream Out でバッファに出力ndash 頂点シャドウあり
bull Light Probe の計算ndash 各 Probe の中心からキューブマップにレンダリングndash の対応する基底ベクトル同士を足し合わせた
ベクトル ( 直接光 + 間接光 ) を頂点カラーとして使用
CEDEC 2012
Appendix A ランタイム
bull 直接光の結果を Stream Out でバッファに出力ndash 頂点シャドウありndash カラーバッファへの書き込み OFFndash 複数オブジェクトの場合は単一バッファにオフ
セットを変えて出力
119897119889
CEDEC 2012
Appendix A ランタイム 係数
bull Compute Shader で を計算ndash は極めて横長の行列 ( 行 ~100程度 列 頂点数 )ndash は GPU が少々苦手な処理ではあるものの
タイリングベースの実装で高速に処理可能
iquest
119897119889119960 lowast119861119889minus1
CEDEC 2012
Appendix A ランタイム
bull Compute Shader で を計算ndash は極めて縦長 ( の転置と同サイズ ) なので素直に実装可能
iquest
119861119894119899119889 119960119897119894119899 119889 lowast
CEDEC 2012
Appendix A ランタイム 最終パス
bull を頂点カラーとして入力としてピクセル単位の直接光のシェーディングと合成して最終結果を得る
iquest +
CEDEC 2012
Appendix A ランタイム Light Probe(1)
bull Compute Shader でを計算ndash は縦長 ( 行 頂点数 timesSH係数の数 列 ~100程度 )
iquest
119880119907119900119897 119960119897119907119900119897 lowast
CEDEC 2012
Appendix A ランタイム Light Probe(2)
bull Probe を用いて Dynamic Objects をライティングndash 各 Light Probe が SH を 9係数で保持するため
3D Texture ではなく Structured-Buffer で保持ndash Vertex Shader 内で自力 Tri-Linear 補間
iquest +
CEDEC 2012
Appendix B 後半の補足
bull 大規模なシーンでの光の伝播bull 小領域間の光の伝播は個別に総当たりで計算
rArr小領域間の光の伝播は距離によって大きく減衰
実際は大規模シーンでも概ね二つ隣の小領域まで考慮すれば十分
CEDEC 2012
Appendix B 後半の補足
bull 小領域の境界
bull 小領域の境界部分が不連続になる rArr 小領域の境界部分は補間の必要がある
CEDEC 2012
bull スライドと論文で表記が違う記号があります
Appendix C 記号の表記
スライドでの表記 論文での表記
b
- Slide 1
- 発表の流れ
- 発表の流れ (2)
- 発表の概要
- 解説技術の特徴
- 注意点
- 発表の流れ (3)
- 発表の流れ (4)
- 間接光の概要
- 間接光の概要 (2)
- 解説手法の計算概要
- 間接光計算の解説手順
- 間接光計算の解説手順 (2)
- 間接光計算の解説手順 (3)
- 間接光計算の解説手順 (4)
- 間接光計算の解説手順 (5)
- 間接光計算の解説手順 (6)
- 間接光計算の考え方
- 間接光計算の考え方 (2)
- 間接光計算の考え方 (3)
- 間接光計算の考え方 (4)
- 間接光計算の考え方 (5)
- 間接光計算の解説手順 (7)
- 問題提起
- 間接光計算の解説手順 (8)
- キーアイディア
- キーアイディア (2)
- キーアイディア (3)
- キーアイディア (4)
- キーアイディア (5)
- キーアイディア (6)
- 間接光計算の解説手順 (9)
- 間接光計算の解説手順 (10)
- を求める
- を求める (2)
- を求める (3)
- 最適な基底
- サンプリングベースの基底
- サンプルの選び方について
- サンプリング行列
- サンプリング行列 (2)
- サンプリング行列 (3)
- サンプリング行列 (4)
- サンプリング行列 (5)
- サンプリング行列 (6)
- サンプリング行列 (7)
- 特異値分解(Singular Value Decomposition)
- 特異値分解(Singular Value Decomposition) (2)
- 特異値分解(Singular Value Decomposition) (3)
- 特異値分解(Singular Value Decomposition) (4)
- 特異値分解(Singular Value Decomposition) (5)
- 基底による直接光の近似
- アプローチの比較
- ハイブリッド手法の計算手順
- 係数の数の比較
- ランタイムの計算処理
- 係数の計算方法
- ランタイムの計算処理 (2)
- 間接光計算の解説手順 (11)
- ショートデモ
- 間接光計算の解説手順 (12)
- 間接光計算の解説手順 (13)
- Light Probe
- Light Probe (2)
- Light Probeによるライティング
- Light Probeによるライティング (2)
- 間接光計算の解説手順 (14)
- Light Probeの計算
- 動的なLight Probe
- 動的なLight Probe (2)
- 間接光計算の解説手順 (15)
- デモ
- デモ詳細
- パフォーマンス
- まとめ
- 発表の流れ (5)
- シーン分割による高速化の解説手順
- シーン分割による高速化の解説手順 (2)
- 問題提起 (14)
- 問題提起 (24)
- 問題提起 (34)
- 問題提起 (44)
- シーン分割による高速化の解説手順 (3)
- シーン分割による高速化の解説手順 (4)
- キーアイディア (16)
- キーアイディア (26)
- キーアイディア (36)
- キーアイディア (46)
- キーアイディア (56)
- キーアイディア (66)
- シーン分割による高速化の解説手順 (5)
- 光の伝播行列の計算 (17)
- 光の伝播行列の計算 (27)
- 光の伝播行列の計算 (37)
- 光の伝播行列の計算 (47)
- 光の伝播行列の計算 (57)
- 光の伝播行列の計算 (67)
- 光の伝播行列の計算 (77)
- シーン分割による高速化の解説手順 (6)
- シーン分割による高速化の解説手順 (7)
- 多重反射への拡張
- シーン分割による高速化の解説手順 (8)
- モジュールの導入 (13)
- モジュールの導入 (23)
- モジュールの導入 (33)
- シーン分割による高速化の解説手順 (9)
- デモ (2)
- 考察
- 発表の流れ (6)
- 発表内容のまとめ
- 著作権について
- 最後に
- Appendix A 実装について
- Appendix A 前計算について
- Appendix A ランタイム
- Appendix A ランタイム 係数
- Appendix A ランタイム
- Appendix A ランタイム 最終パス
- Appendix A ランタイム Light Probe(1)
- Appendix A ランタイム Light Probe(2)
- Appendix B 後半の補足
- Appendix B 後半の補足 (2)
- Appendix C 記号の表記
-
CEDEC 2012
Appendix A 実装について
bull 実装自体は様々なアプローチが可能bull ここではデモの実装でのアプローチを紹介
CEDEC 2012
Appendix A 前計算について
bull F の計算ndash メッシュの全頂点からキューブマップにレンダリングndash ピクセルには頂点 ID とウェイトを出力
bull 直接光サンプルの計算ndash 頂点カラーを Stream Out でバッファに出力ndash 頂点シャドウあり
bull Light Probe の計算ndash 各 Probe の中心からキューブマップにレンダリングndash の対応する基底ベクトル同士を足し合わせた
ベクトル ( 直接光 + 間接光 ) を頂点カラーとして使用
CEDEC 2012
Appendix A ランタイム
bull 直接光の結果を Stream Out でバッファに出力ndash 頂点シャドウありndash カラーバッファへの書き込み OFFndash 複数オブジェクトの場合は単一バッファにオフ
セットを変えて出力
119897119889
CEDEC 2012
Appendix A ランタイム 係数
bull Compute Shader で を計算ndash は極めて横長の行列 ( 行 ~100程度 列 頂点数 )ndash は GPU が少々苦手な処理ではあるものの
タイリングベースの実装で高速に処理可能
iquest
119897119889119960 lowast119861119889minus1
CEDEC 2012
Appendix A ランタイム
bull Compute Shader で を計算ndash は極めて縦長 ( の転置と同サイズ ) なので素直に実装可能
iquest
119861119894119899119889 119960119897119894119899 119889 lowast
CEDEC 2012
Appendix A ランタイム 最終パス
bull を頂点カラーとして入力としてピクセル単位の直接光のシェーディングと合成して最終結果を得る
iquest +
CEDEC 2012
Appendix A ランタイム Light Probe(1)
bull Compute Shader でを計算ndash は縦長 ( 行 頂点数 timesSH係数の数 列 ~100程度 )
iquest
119880119907119900119897 119960119897119907119900119897 lowast
CEDEC 2012
Appendix A ランタイム Light Probe(2)
bull Probe を用いて Dynamic Objects をライティングndash 各 Light Probe が SH を 9係数で保持するため
3D Texture ではなく Structured-Buffer で保持ndash Vertex Shader 内で自力 Tri-Linear 補間
iquest +
CEDEC 2012
Appendix B 後半の補足
bull 大規模なシーンでの光の伝播bull 小領域間の光の伝播は個別に総当たりで計算
rArr小領域間の光の伝播は距離によって大きく減衰
実際は大規模シーンでも概ね二つ隣の小領域まで考慮すれば十分
CEDEC 2012
Appendix B 後半の補足
bull 小領域の境界
bull 小領域の境界部分が不連続になる rArr 小領域の境界部分は補間の必要がある
CEDEC 2012
bull スライドと論文で表記が違う記号があります
Appendix C 記号の表記
スライドでの表記 論文での表記
b
- Slide 1
- 発表の流れ
- 発表の流れ (2)
- 発表の概要
- 解説技術の特徴
- 注意点
- 発表の流れ (3)
- 発表の流れ (4)
- 間接光の概要
- 間接光の概要 (2)
- 解説手法の計算概要
- 間接光計算の解説手順
- 間接光計算の解説手順 (2)
- 間接光計算の解説手順 (3)
- 間接光計算の解説手順 (4)
- 間接光計算の解説手順 (5)
- 間接光計算の解説手順 (6)
- 間接光計算の考え方
- 間接光計算の考え方 (2)
- 間接光計算の考え方 (3)
- 間接光計算の考え方 (4)
- 間接光計算の考え方 (5)
- 間接光計算の解説手順 (7)
- 問題提起
- 間接光計算の解説手順 (8)
- キーアイディア
- キーアイディア (2)
- キーアイディア (3)
- キーアイディア (4)
- キーアイディア (5)
- キーアイディア (6)
- 間接光計算の解説手順 (9)
- 間接光計算の解説手順 (10)
- を求める
- を求める (2)
- を求める (3)
- 最適な基底
- サンプリングベースの基底
- サンプルの選び方について
- サンプリング行列
- サンプリング行列 (2)
- サンプリング行列 (3)
- サンプリング行列 (4)
- サンプリング行列 (5)
- サンプリング行列 (6)
- サンプリング行列 (7)
- 特異値分解(Singular Value Decomposition)
- 特異値分解(Singular Value Decomposition) (2)
- 特異値分解(Singular Value Decomposition) (3)
- 特異値分解(Singular Value Decomposition) (4)
- 特異値分解(Singular Value Decomposition) (5)
- 基底による直接光の近似
- アプローチの比較
- ハイブリッド手法の計算手順
- 係数の数の比較
- ランタイムの計算処理
- 係数の計算方法
- ランタイムの計算処理 (2)
- 間接光計算の解説手順 (11)
- ショートデモ
- 間接光計算の解説手順 (12)
- 間接光計算の解説手順 (13)
- Light Probe
- Light Probe (2)
- Light Probeによるライティング
- Light Probeによるライティング (2)
- 間接光計算の解説手順 (14)
- Light Probeの計算
- 動的なLight Probe
- 動的なLight Probe (2)
- 間接光計算の解説手順 (15)
- デモ
- デモ詳細
- パフォーマンス
- まとめ
- 発表の流れ (5)
- シーン分割による高速化の解説手順
- シーン分割による高速化の解説手順 (2)
- 問題提起 (14)
- 問題提起 (24)
- 問題提起 (34)
- 問題提起 (44)
- シーン分割による高速化の解説手順 (3)
- シーン分割による高速化の解説手順 (4)
- キーアイディア (16)
- キーアイディア (26)
- キーアイディア (36)
- キーアイディア (46)
- キーアイディア (56)
- キーアイディア (66)
- シーン分割による高速化の解説手順 (5)
- 光の伝播行列の計算 (17)
- 光の伝播行列の計算 (27)
- 光の伝播行列の計算 (37)
- 光の伝播行列の計算 (47)
- 光の伝播行列の計算 (57)
- 光の伝播行列の計算 (67)
- 光の伝播行列の計算 (77)
- シーン分割による高速化の解説手順 (6)
- シーン分割による高速化の解説手順 (7)
- 多重反射への拡張
- シーン分割による高速化の解説手順 (8)
- モジュールの導入 (13)
- モジュールの導入 (23)
- モジュールの導入 (33)
- シーン分割による高速化の解説手順 (9)
- デモ (2)
- 考察
- 発表の流れ (6)
- 発表内容のまとめ
- 著作権について
- 最後に
- Appendix A 実装について
- Appendix A 前計算について
- Appendix A ランタイム
- Appendix A ランタイム 係数
- Appendix A ランタイム
- Appendix A ランタイム 最終パス
- Appendix A ランタイム Light Probe(1)
- Appendix A ランタイム Light Probe(2)
- Appendix B 後半の補足
- Appendix B 後半の補足 (2)
- Appendix C 記号の表記
-
CEDEC 2012
Appendix A 前計算について
bull F の計算ndash メッシュの全頂点からキューブマップにレンダリングndash ピクセルには頂点 ID とウェイトを出力
bull 直接光サンプルの計算ndash 頂点カラーを Stream Out でバッファに出力ndash 頂点シャドウあり
bull Light Probe の計算ndash 各 Probe の中心からキューブマップにレンダリングndash の対応する基底ベクトル同士を足し合わせた
ベクトル ( 直接光 + 間接光 ) を頂点カラーとして使用
CEDEC 2012
Appendix A ランタイム
bull 直接光の結果を Stream Out でバッファに出力ndash 頂点シャドウありndash カラーバッファへの書き込み OFFndash 複数オブジェクトの場合は単一バッファにオフ
セットを変えて出力
119897119889
CEDEC 2012
Appendix A ランタイム 係数
bull Compute Shader で を計算ndash は極めて横長の行列 ( 行 ~100程度 列 頂点数 )ndash は GPU が少々苦手な処理ではあるものの
タイリングベースの実装で高速に処理可能
iquest
119897119889119960 lowast119861119889minus1
CEDEC 2012
Appendix A ランタイム
bull Compute Shader で を計算ndash は極めて縦長 ( の転置と同サイズ ) なので素直に実装可能
iquest
119861119894119899119889 119960119897119894119899 119889 lowast
CEDEC 2012
Appendix A ランタイム 最終パス
bull を頂点カラーとして入力としてピクセル単位の直接光のシェーディングと合成して最終結果を得る
iquest +
CEDEC 2012
Appendix A ランタイム Light Probe(1)
bull Compute Shader でを計算ndash は縦長 ( 行 頂点数 timesSH係数の数 列 ~100程度 )
iquest
119880119907119900119897 119960119897119907119900119897 lowast
CEDEC 2012
Appendix A ランタイム Light Probe(2)
bull Probe を用いて Dynamic Objects をライティングndash 各 Light Probe が SH を 9係数で保持するため
3D Texture ではなく Structured-Buffer で保持ndash Vertex Shader 内で自力 Tri-Linear 補間
iquest +
CEDEC 2012
Appendix B 後半の補足
bull 大規模なシーンでの光の伝播bull 小領域間の光の伝播は個別に総当たりで計算
rArr小領域間の光の伝播は距離によって大きく減衰
実際は大規模シーンでも概ね二つ隣の小領域まで考慮すれば十分
CEDEC 2012
Appendix B 後半の補足
bull 小領域の境界
bull 小領域の境界部分が不連続になる rArr 小領域の境界部分は補間の必要がある
CEDEC 2012
bull スライドと論文で表記が違う記号があります
Appendix C 記号の表記
スライドでの表記 論文での表記
b
- Slide 1
- 発表の流れ
- 発表の流れ (2)
- 発表の概要
- 解説技術の特徴
- 注意点
- 発表の流れ (3)
- 発表の流れ (4)
- 間接光の概要
- 間接光の概要 (2)
- 解説手法の計算概要
- 間接光計算の解説手順
- 間接光計算の解説手順 (2)
- 間接光計算の解説手順 (3)
- 間接光計算の解説手順 (4)
- 間接光計算の解説手順 (5)
- 間接光計算の解説手順 (6)
- 間接光計算の考え方
- 間接光計算の考え方 (2)
- 間接光計算の考え方 (3)
- 間接光計算の考え方 (4)
- 間接光計算の考え方 (5)
- 間接光計算の解説手順 (7)
- 問題提起
- 間接光計算の解説手順 (8)
- キーアイディア
- キーアイディア (2)
- キーアイディア (3)
- キーアイディア (4)
- キーアイディア (5)
- キーアイディア (6)
- 間接光計算の解説手順 (9)
- 間接光計算の解説手順 (10)
- を求める
- を求める (2)
- を求める (3)
- 最適な基底
- サンプリングベースの基底
- サンプルの選び方について
- サンプリング行列
- サンプリング行列 (2)
- サンプリング行列 (3)
- サンプリング行列 (4)
- サンプリング行列 (5)
- サンプリング行列 (6)
- サンプリング行列 (7)
- 特異値分解(Singular Value Decomposition)
- 特異値分解(Singular Value Decomposition) (2)
- 特異値分解(Singular Value Decomposition) (3)
- 特異値分解(Singular Value Decomposition) (4)
- 特異値分解(Singular Value Decomposition) (5)
- 基底による直接光の近似
- アプローチの比較
- ハイブリッド手法の計算手順
- 係数の数の比較
- ランタイムの計算処理
- 係数の計算方法
- ランタイムの計算処理 (2)
- 間接光計算の解説手順 (11)
- ショートデモ
- 間接光計算の解説手順 (12)
- 間接光計算の解説手順 (13)
- Light Probe
- Light Probe (2)
- Light Probeによるライティング
- Light Probeによるライティング (2)
- 間接光計算の解説手順 (14)
- Light Probeの計算
- 動的なLight Probe
- 動的なLight Probe (2)
- 間接光計算の解説手順 (15)
- デモ
- デモ詳細
- パフォーマンス
- まとめ
- 発表の流れ (5)
- シーン分割による高速化の解説手順
- シーン分割による高速化の解説手順 (2)
- 問題提起 (14)
- 問題提起 (24)
- 問題提起 (34)
- 問題提起 (44)
- シーン分割による高速化の解説手順 (3)
- シーン分割による高速化の解説手順 (4)
- キーアイディア (16)
- キーアイディア (26)
- キーアイディア (36)
- キーアイディア (46)
- キーアイディア (56)
- キーアイディア (66)
- シーン分割による高速化の解説手順 (5)
- 光の伝播行列の計算 (17)
- 光の伝播行列の計算 (27)
- 光の伝播行列の計算 (37)
- 光の伝播行列の計算 (47)
- 光の伝播行列の計算 (57)
- 光の伝播行列の計算 (67)
- 光の伝播行列の計算 (77)
- シーン分割による高速化の解説手順 (6)
- シーン分割による高速化の解説手順 (7)
- 多重反射への拡張
- シーン分割による高速化の解説手順 (8)
- モジュールの導入 (13)
- モジュールの導入 (23)
- モジュールの導入 (33)
- シーン分割による高速化の解説手順 (9)
- デモ (2)
- 考察
- 発表の流れ (6)
- 発表内容のまとめ
- 著作権について
- 最後に
- Appendix A 実装について
- Appendix A 前計算について
- Appendix A ランタイム
- Appendix A ランタイム 係数
- Appendix A ランタイム
- Appendix A ランタイム 最終パス
- Appendix A ランタイム Light Probe(1)
- Appendix A ランタイム Light Probe(2)
- Appendix B 後半の補足
- Appendix B 後半の補足 (2)
- Appendix C 記号の表記
-
CEDEC 2012
Appendix A ランタイム
bull 直接光の結果を Stream Out でバッファに出力ndash 頂点シャドウありndash カラーバッファへの書き込み OFFndash 複数オブジェクトの場合は単一バッファにオフ
セットを変えて出力
119897119889
CEDEC 2012
Appendix A ランタイム 係数
bull Compute Shader で を計算ndash は極めて横長の行列 ( 行 ~100程度 列 頂点数 )ndash は GPU が少々苦手な処理ではあるものの
タイリングベースの実装で高速に処理可能
iquest
119897119889119960 lowast119861119889minus1
CEDEC 2012
Appendix A ランタイム
bull Compute Shader で を計算ndash は極めて縦長 ( の転置と同サイズ ) なので素直に実装可能
iquest
119861119894119899119889 119960119897119894119899 119889 lowast
CEDEC 2012
Appendix A ランタイム 最終パス
bull を頂点カラーとして入力としてピクセル単位の直接光のシェーディングと合成して最終結果を得る
iquest +
CEDEC 2012
Appendix A ランタイム Light Probe(1)
bull Compute Shader でを計算ndash は縦長 ( 行 頂点数 timesSH係数の数 列 ~100程度 )
iquest
119880119907119900119897 119960119897119907119900119897 lowast
CEDEC 2012
Appendix A ランタイム Light Probe(2)
bull Probe を用いて Dynamic Objects をライティングndash 各 Light Probe が SH を 9係数で保持するため
3D Texture ではなく Structured-Buffer で保持ndash Vertex Shader 内で自力 Tri-Linear 補間
iquest +
CEDEC 2012
Appendix B 後半の補足
bull 大規模なシーンでの光の伝播bull 小領域間の光の伝播は個別に総当たりで計算
rArr小領域間の光の伝播は距離によって大きく減衰
実際は大規模シーンでも概ね二つ隣の小領域まで考慮すれば十分
CEDEC 2012
Appendix B 後半の補足
bull 小領域の境界
bull 小領域の境界部分が不連続になる rArr 小領域の境界部分は補間の必要がある
CEDEC 2012
bull スライドと論文で表記が違う記号があります
Appendix C 記号の表記
スライドでの表記 論文での表記
b
- Slide 1
- 発表の流れ
- 発表の流れ (2)
- 発表の概要
- 解説技術の特徴
- 注意点
- 発表の流れ (3)
- 発表の流れ (4)
- 間接光の概要
- 間接光の概要 (2)
- 解説手法の計算概要
- 間接光計算の解説手順
- 間接光計算の解説手順 (2)
- 間接光計算の解説手順 (3)
- 間接光計算の解説手順 (4)
- 間接光計算の解説手順 (5)
- 間接光計算の解説手順 (6)
- 間接光計算の考え方
- 間接光計算の考え方 (2)
- 間接光計算の考え方 (3)
- 間接光計算の考え方 (4)
- 間接光計算の考え方 (5)
- 間接光計算の解説手順 (7)
- 問題提起
- 間接光計算の解説手順 (8)
- キーアイディア
- キーアイディア (2)
- キーアイディア (3)
- キーアイディア (4)
- キーアイディア (5)
- キーアイディア (6)
- 間接光計算の解説手順 (9)
- 間接光計算の解説手順 (10)
- を求める
- を求める (2)
- を求める (3)
- 最適な基底
- サンプリングベースの基底
- サンプルの選び方について
- サンプリング行列
- サンプリング行列 (2)
- サンプリング行列 (3)
- サンプリング行列 (4)
- サンプリング行列 (5)
- サンプリング行列 (6)
- サンプリング行列 (7)
- 特異値分解(Singular Value Decomposition)
- 特異値分解(Singular Value Decomposition) (2)
- 特異値分解(Singular Value Decomposition) (3)
- 特異値分解(Singular Value Decomposition) (4)
- 特異値分解(Singular Value Decomposition) (5)
- 基底による直接光の近似
- アプローチの比較
- ハイブリッド手法の計算手順
- 係数の数の比較
- ランタイムの計算処理
- 係数の計算方法
- ランタイムの計算処理 (2)
- 間接光計算の解説手順 (11)
- ショートデモ
- 間接光計算の解説手順 (12)
- 間接光計算の解説手順 (13)
- Light Probe
- Light Probe (2)
- Light Probeによるライティング
- Light Probeによるライティング (2)
- 間接光計算の解説手順 (14)
- Light Probeの計算
- 動的なLight Probe
- 動的なLight Probe (2)
- 間接光計算の解説手順 (15)
- デモ
- デモ詳細
- パフォーマンス
- まとめ
- 発表の流れ (5)
- シーン分割による高速化の解説手順
- シーン分割による高速化の解説手順 (2)
- 問題提起 (14)
- 問題提起 (24)
- 問題提起 (34)
- 問題提起 (44)
- シーン分割による高速化の解説手順 (3)
- シーン分割による高速化の解説手順 (4)
- キーアイディア (16)
- キーアイディア (26)
- キーアイディア (36)
- キーアイディア (46)
- キーアイディア (56)
- キーアイディア (66)
- シーン分割による高速化の解説手順 (5)
- 光の伝播行列の計算 (17)
- 光の伝播行列の計算 (27)
- 光の伝播行列の計算 (37)
- 光の伝播行列の計算 (47)
- 光の伝播行列の計算 (57)
- 光の伝播行列の計算 (67)
- 光の伝播行列の計算 (77)
- シーン分割による高速化の解説手順 (6)
- シーン分割による高速化の解説手順 (7)
- 多重反射への拡張
- シーン分割による高速化の解説手順 (8)
- モジュールの導入 (13)
- モジュールの導入 (23)
- モジュールの導入 (33)
- シーン分割による高速化の解説手順 (9)
- デモ (2)
- 考察
- 発表の流れ (6)
- 発表内容のまとめ
- 著作権について
- 最後に
- Appendix A 実装について
- Appendix A 前計算について
- Appendix A ランタイム
- Appendix A ランタイム 係数
- Appendix A ランタイム
- Appendix A ランタイム 最終パス
- Appendix A ランタイム Light Probe(1)
- Appendix A ランタイム Light Probe(2)
- Appendix B 後半の補足
- Appendix B 後半の補足 (2)
- Appendix C 記号の表記
-
CEDEC 2012
Appendix A ランタイム 係数
bull Compute Shader で を計算ndash は極めて横長の行列 ( 行 ~100程度 列 頂点数 )ndash は GPU が少々苦手な処理ではあるものの
タイリングベースの実装で高速に処理可能
iquest
119897119889119960 lowast119861119889minus1
CEDEC 2012
Appendix A ランタイム
bull Compute Shader で を計算ndash は極めて縦長 ( の転置と同サイズ ) なので素直に実装可能
iquest
119861119894119899119889 119960119897119894119899 119889 lowast
CEDEC 2012
Appendix A ランタイム 最終パス
bull を頂点カラーとして入力としてピクセル単位の直接光のシェーディングと合成して最終結果を得る
iquest +
CEDEC 2012
Appendix A ランタイム Light Probe(1)
bull Compute Shader でを計算ndash は縦長 ( 行 頂点数 timesSH係数の数 列 ~100程度 )
iquest
119880119907119900119897 119960119897119907119900119897 lowast
CEDEC 2012
Appendix A ランタイム Light Probe(2)
bull Probe を用いて Dynamic Objects をライティングndash 各 Light Probe が SH を 9係数で保持するため
3D Texture ではなく Structured-Buffer で保持ndash Vertex Shader 内で自力 Tri-Linear 補間
iquest +
CEDEC 2012
Appendix B 後半の補足
bull 大規模なシーンでの光の伝播bull 小領域間の光の伝播は個別に総当たりで計算
rArr小領域間の光の伝播は距離によって大きく減衰
実際は大規模シーンでも概ね二つ隣の小領域まで考慮すれば十分
CEDEC 2012
Appendix B 後半の補足
bull 小領域の境界
bull 小領域の境界部分が不連続になる rArr 小領域の境界部分は補間の必要がある
CEDEC 2012
bull スライドと論文で表記が違う記号があります
Appendix C 記号の表記
スライドでの表記 論文での表記
b
- Slide 1
- 発表の流れ
- 発表の流れ (2)
- 発表の概要
- 解説技術の特徴
- 注意点
- 発表の流れ (3)
- 発表の流れ (4)
- 間接光の概要
- 間接光の概要 (2)
- 解説手法の計算概要
- 間接光計算の解説手順
- 間接光計算の解説手順 (2)
- 間接光計算の解説手順 (3)
- 間接光計算の解説手順 (4)
- 間接光計算の解説手順 (5)
- 間接光計算の解説手順 (6)
- 間接光計算の考え方
- 間接光計算の考え方 (2)
- 間接光計算の考え方 (3)
- 間接光計算の考え方 (4)
- 間接光計算の考え方 (5)
- 間接光計算の解説手順 (7)
- 問題提起
- 間接光計算の解説手順 (8)
- キーアイディア
- キーアイディア (2)
- キーアイディア (3)
- キーアイディア (4)
- キーアイディア (5)
- キーアイディア (6)
- 間接光計算の解説手順 (9)
- 間接光計算の解説手順 (10)
- を求める
- を求める (2)
- を求める (3)
- 最適な基底
- サンプリングベースの基底
- サンプルの選び方について
- サンプリング行列
- サンプリング行列 (2)
- サンプリング行列 (3)
- サンプリング行列 (4)
- サンプリング行列 (5)
- サンプリング行列 (6)
- サンプリング行列 (7)
- 特異値分解(Singular Value Decomposition)
- 特異値分解(Singular Value Decomposition) (2)
- 特異値分解(Singular Value Decomposition) (3)
- 特異値分解(Singular Value Decomposition) (4)
- 特異値分解(Singular Value Decomposition) (5)
- 基底による直接光の近似
- アプローチの比較
- ハイブリッド手法の計算手順
- 係数の数の比較
- ランタイムの計算処理
- 係数の計算方法
- ランタイムの計算処理 (2)
- 間接光計算の解説手順 (11)
- ショートデモ
- 間接光計算の解説手順 (12)
- 間接光計算の解説手順 (13)
- Light Probe
- Light Probe (2)
- Light Probeによるライティング
- Light Probeによるライティング (2)
- 間接光計算の解説手順 (14)
- Light Probeの計算
- 動的なLight Probe
- 動的なLight Probe (2)
- 間接光計算の解説手順 (15)
- デモ
- デモ詳細
- パフォーマンス
- まとめ
- 発表の流れ (5)
- シーン分割による高速化の解説手順
- シーン分割による高速化の解説手順 (2)
- 問題提起 (14)
- 問題提起 (24)
- 問題提起 (34)
- 問題提起 (44)
- シーン分割による高速化の解説手順 (3)
- シーン分割による高速化の解説手順 (4)
- キーアイディア (16)
- キーアイディア (26)
- キーアイディア (36)
- キーアイディア (46)
- キーアイディア (56)
- キーアイディア (66)
- シーン分割による高速化の解説手順 (5)
- 光の伝播行列の計算 (17)
- 光の伝播行列の計算 (27)
- 光の伝播行列の計算 (37)
- 光の伝播行列の計算 (47)
- 光の伝播行列の計算 (57)
- 光の伝播行列の計算 (67)
- 光の伝播行列の計算 (77)
- シーン分割による高速化の解説手順 (6)
- シーン分割による高速化の解説手順 (7)
- 多重反射への拡張
- シーン分割による高速化の解説手順 (8)
- モジュールの導入 (13)
- モジュールの導入 (23)
- モジュールの導入 (33)
- シーン分割による高速化の解説手順 (9)
- デモ (2)
- 考察
- 発表の流れ (6)
- 発表内容のまとめ
- 著作権について
- 最後に
- Appendix A 実装について
- Appendix A 前計算について
- Appendix A ランタイム
- Appendix A ランタイム 係数
- Appendix A ランタイム
- Appendix A ランタイム 最終パス
- Appendix A ランタイム Light Probe(1)
- Appendix A ランタイム Light Probe(2)
- Appendix B 後半の補足
- Appendix B 後半の補足 (2)
- Appendix C 記号の表記
-
CEDEC 2012
Appendix A ランタイム
bull Compute Shader で を計算ndash は極めて縦長 ( の転置と同サイズ ) なので素直に実装可能
iquest
119861119894119899119889 119960119897119894119899 119889 lowast
CEDEC 2012
Appendix A ランタイム 最終パス
bull を頂点カラーとして入力としてピクセル単位の直接光のシェーディングと合成して最終結果を得る
iquest +
CEDEC 2012
Appendix A ランタイム Light Probe(1)
bull Compute Shader でを計算ndash は縦長 ( 行 頂点数 timesSH係数の数 列 ~100程度 )
iquest
119880119907119900119897 119960119897119907119900119897 lowast
CEDEC 2012
Appendix A ランタイム Light Probe(2)
bull Probe を用いて Dynamic Objects をライティングndash 各 Light Probe が SH を 9係数で保持するため
3D Texture ではなく Structured-Buffer で保持ndash Vertex Shader 内で自力 Tri-Linear 補間
iquest +
CEDEC 2012
Appendix B 後半の補足
bull 大規模なシーンでの光の伝播bull 小領域間の光の伝播は個別に総当たりで計算
rArr小領域間の光の伝播は距離によって大きく減衰
実際は大規模シーンでも概ね二つ隣の小領域まで考慮すれば十分
CEDEC 2012
Appendix B 後半の補足
bull 小領域の境界
bull 小領域の境界部分が不連続になる rArr 小領域の境界部分は補間の必要がある
CEDEC 2012
bull スライドと論文で表記が違う記号があります
Appendix C 記号の表記
スライドでの表記 論文での表記
b
- Slide 1
- 発表の流れ
- 発表の流れ (2)
- 発表の概要
- 解説技術の特徴
- 注意点
- 発表の流れ (3)
- 発表の流れ (4)
- 間接光の概要
- 間接光の概要 (2)
- 解説手法の計算概要
- 間接光計算の解説手順
- 間接光計算の解説手順 (2)
- 間接光計算の解説手順 (3)
- 間接光計算の解説手順 (4)
- 間接光計算の解説手順 (5)
- 間接光計算の解説手順 (6)
- 間接光計算の考え方
- 間接光計算の考え方 (2)
- 間接光計算の考え方 (3)
- 間接光計算の考え方 (4)
- 間接光計算の考え方 (5)
- 間接光計算の解説手順 (7)
- 問題提起
- 間接光計算の解説手順 (8)
- キーアイディア
- キーアイディア (2)
- キーアイディア (3)
- キーアイディア (4)
- キーアイディア (5)
- キーアイディア (6)
- 間接光計算の解説手順 (9)
- 間接光計算の解説手順 (10)
- を求める
- を求める (2)
- を求める (3)
- 最適な基底
- サンプリングベースの基底
- サンプルの選び方について
- サンプリング行列
- サンプリング行列 (2)
- サンプリング行列 (3)
- サンプリング行列 (4)
- サンプリング行列 (5)
- サンプリング行列 (6)
- サンプリング行列 (7)
- 特異値分解(Singular Value Decomposition)
- 特異値分解(Singular Value Decomposition) (2)
- 特異値分解(Singular Value Decomposition) (3)
- 特異値分解(Singular Value Decomposition) (4)
- 特異値分解(Singular Value Decomposition) (5)
- 基底による直接光の近似
- アプローチの比較
- ハイブリッド手法の計算手順
- 係数の数の比較
- ランタイムの計算処理
- 係数の計算方法
- ランタイムの計算処理 (2)
- 間接光計算の解説手順 (11)
- ショートデモ
- 間接光計算の解説手順 (12)
- 間接光計算の解説手順 (13)
- Light Probe
- Light Probe (2)
- Light Probeによるライティング
- Light Probeによるライティング (2)
- 間接光計算の解説手順 (14)
- Light Probeの計算
- 動的なLight Probe
- 動的なLight Probe (2)
- 間接光計算の解説手順 (15)
- デモ
- デモ詳細
- パフォーマンス
- まとめ
- 発表の流れ (5)
- シーン分割による高速化の解説手順
- シーン分割による高速化の解説手順 (2)
- 問題提起 (14)
- 問題提起 (24)
- 問題提起 (34)
- 問題提起 (44)
- シーン分割による高速化の解説手順 (3)
- シーン分割による高速化の解説手順 (4)
- キーアイディア (16)
- キーアイディア (26)
- キーアイディア (36)
- キーアイディア (46)
- キーアイディア (56)
- キーアイディア (66)
- シーン分割による高速化の解説手順 (5)
- 光の伝播行列の計算 (17)
- 光の伝播行列の計算 (27)
- 光の伝播行列の計算 (37)
- 光の伝播行列の計算 (47)
- 光の伝播行列の計算 (57)
- 光の伝播行列の計算 (67)
- 光の伝播行列の計算 (77)
- シーン分割による高速化の解説手順 (6)
- シーン分割による高速化の解説手順 (7)
- 多重反射への拡張
- シーン分割による高速化の解説手順 (8)
- モジュールの導入 (13)
- モジュールの導入 (23)
- モジュールの導入 (33)
- シーン分割による高速化の解説手順 (9)
- デモ (2)
- 考察
- 発表の流れ (6)
- 発表内容のまとめ
- 著作権について
- 最後に
- Appendix A 実装について
- Appendix A 前計算について
- Appendix A ランタイム
- Appendix A ランタイム 係数
- Appendix A ランタイム
- Appendix A ランタイム 最終パス
- Appendix A ランタイム Light Probe(1)
- Appendix A ランタイム Light Probe(2)
- Appendix B 後半の補足
- Appendix B 後半の補足 (2)
- Appendix C 記号の表記
-
CEDEC 2012
Appendix A ランタイム 最終パス
bull を頂点カラーとして入力としてピクセル単位の直接光のシェーディングと合成して最終結果を得る
iquest +
CEDEC 2012
Appendix A ランタイム Light Probe(1)
bull Compute Shader でを計算ndash は縦長 ( 行 頂点数 timesSH係数の数 列 ~100程度 )
iquest
119880119907119900119897 119960119897119907119900119897 lowast
CEDEC 2012
Appendix A ランタイム Light Probe(2)
bull Probe を用いて Dynamic Objects をライティングndash 各 Light Probe が SH を 9係数で保持するため
3D Texture ではなく Structured-Buffer で保持ndash Vertex Shader 内で自力 Tri-Linear 補間
iquest +
CEDEC 2012
Appendix B 後半の補足
bull 大規模なシーンでの光の伝播bull 小領域間の光の伝播は個別に総当たりで計算
rArr小領域間の光の伝播は距離によって大きく減衰
実際は大規模シーンでも概ね二つ隣の小領域まで考慮すれば十分
CEDEC 2012
Appendix B 後半の補足
bull 小領域の境界
bull 小領域の境界部分が不連続になる rArr 小領域の境界部分は補間の必要がある
CEDEC 2012
bull スライドと論文で表記が違う記号があります
Appendix C 記号の表記
スライドでの表記 論文での表記
b
- Slide 1
- 発表の流れ
- 発表の流れ (2)
- 発表の概要
- 解説技術の特徴
- 注意点
- 発表の流れ (3)
- 発表の流れ (4)
- 間接光の概要
- 間接光の概要 (2)
- 解説手法の計算概要
- 間接光計算の解説手順
- 間接光計算の解説手順 (2)
- 間接光計算の解説手順 (3)
- 間接光計算の解説手順 (4)
- 間接光計算の解説手順 (5)
- 間接光計算の解説手順 (6)
- 間接光計算の考え方
- 間接光計算の考え方 (2)
- 間接光計算の考え方 (3)
- 間接光計算の考え方 (4)
- 間接光計算の考え方 (5)
- 間接光計算の解説手順 (7)
- 問題提起
- 間接光計算の解説手順 (8)
- キーアイディア
- キーアイディア (2)
- キーアイディア (3)
- キーアイディア (4)
- キーアイディア (5)
- キーアイディア (6)
- 間接光計算の解説手順 (9)
- 間接光計算の解説手順 (10)
- を求める
- を求める (2)
- を求める (3)
- 最適な基底
- サンプリングベースの基底
- サンプルの選び方について
- サンプリング行列
- サンプリング行列 (2)
- サンプリング行列 (3)
- サンプリング行列 (4)
- サンプリング行列 (5)
- サンプリング行列 (6)
- サンプリング行列 (7)
- 特異値分解(Singular Value Decomposition)
- 特異値分解(Singular Value Decomposition) (2)
- 特異値分解(Singular Value Decomposition) (3)
- 特異値分解(Singular Value Decomposition) (4)
- 特異値分解(Singular Value Decomposition) (5)
- 基底による直接光の近似
- アプローチの比較
- ハイブリッド手法の計算手順
- 係数の数の比較
- ランタイムの計算処理
- 係数の計算方法
- ランタイムの計算処理 (2)
- 間接光計算の解説手順 (11)
- ショートデモ
- 間接光計算の解説手順 (12)
- 間接光計算の解説手順 (13)
- Light Probe
- Light Probe (2)
- Light Probeによるライティング
- Light Probeによるライティング (2)
- 間接光計算の解説手順 (14)
- Light Probeの計算
- 動的なLight Probe
- 動的なLight Probe (2)
- 間接光計算の解説手順 (15)
- デモ
- デモ詳細
- パフォーマンス
- まとめ
- 発表の流れ (5)
- シーン分割による高速化の解説手順
- シーン分割による高速化の解説手順 (2)
- 問題提起 (14)
- 問題提起 (24)
- 問題提起 (34)
- 問題提起 (44)
- シーン分割による高速化の解説手順 (3)
- シーン分割による高速化の解説手順 (4)
- キーアイディア (16)
- キーアイディア (26)
- キーアイディア (36)
- キーアイディア (46)
- キーアイディア (56)
- キーアイディア (66)
- シーン分割による高速化の解説手順 (5)
- 光の伝播行列の計算 (17)
- 光の伝播行列の計算 (27)
- 光の伝播行列の計算 (37)
- 光の伝播行列の計算 (47)
- 光の伝播行列の計算 (57)
- 光の伝播行列の計算 (67)
- 光の伝播行列の計算 (77)
- シーン分割による高速化の解説手順 (6)
- シーン分割による高速化の解説手順 (7)
- 多重反射への拡張
- シーン分割による高速化の解説手順 (8)
- モジュールの導入 (13)
- モジュールの導入 (23)
- モジュールの導入 (33)
- シーン分割による高速化の解説手順 (9)
- デモ (2)
- 考察
- 発表の流れ (6)
- 発表内容のまとめ
- 著作権について
- 最後に
- Appendix A 実装について
- Appendix A 前計算について
- Appendix A ランタイム
- Appendix A ランタイム 係数
- Appendix A ランタイム
- Appendix A ランタイム 最終パス
- Appendix A ランタイム Light Probe(1)
- Appendix A ランタイム Light Probe(2)
- Appendix B 後半の補足
- Appendix B 後半の補足 (2)
- Appendix C 記号の表記
-
CEDEC 2012
Appendix A ランタイム Light Probe(1)
bull Compute Shader でを計算ndash は縦長 ( 行 頂点数 timesSH係数の数 列 ~100程度 )
iquest
119880119907119900119897 119960119897119907119900119897 lowast
CEDEC 2012
Appendix A ランタイム Light Probe(2)
bull Probe を用いて Dynamic Objects をライティングndash 各 Light Probe が SH を 9係数で保持するため
3D Texture ではなく Structured-Buffer で保持ndash Vertex Shader 内で自力 Tri-Linear 補間
iquest +
CEDEC 2012
Appendix B 後半の補足
bull 大規模なシーンでの光の伝播bull 小領域間の光の伝播は個別に総当たりで計算
rArr小領域間の光の伝播は距離によって大きく減衰
実際は大規模シーンでも概ね二つ隣の小領域まで考慮すれば十分
CEDEC 2012
Appendix B 後半の補足
bull 小領域の境界
bull 小領域の境界部分が不連続になる rArr 小領域の境界部分は補間の必要がある
CEDEC 2012
bull スライドと論文で表記が違う記号があります
Appendix C 記号の表記
スライドでの表記 論文での表記
b
- Slide 1
- 発表の流れ
- 発表の流れ (2)
- 発表の概要
- 解説技術の特徴
- 注意点
- 発表の流れ (3)
- 発表の流れ (4)
- 間接光の概要
- 間接光の概要 (2)
- 解説手法の計算概要
- 間接光計算の解説手順
- 間接光計算の解説手順 (2)
- 間接光計算の解説手順 (3)
- 間接光計算の解説手順 (4)
- 間接光計算の解説手順 (5)
- 間接光計算の解説手順 (6)
- 間接光計算の考え方
- 間接光計算の考え方 (2)
- 間接光計算の考え方 (3)
- 間接光計算の考え方 (4)
- 間接光計算の考え方 (5)
- 間接光計算の解説手順 (7)
- 問題提起
- 間接光計算の解説手順 (8)
- キーアイディア
- キーアイディア (2)
- キーアイディア (3)
- キーアイディア (4)
- キーアイディア (5)
- キーアイディア (6)
- 間接光計算の解説手順 (9)
- 間接光計算の解説手順 (10)
- を求める
- を求める (2)
- を求める (3)
- 最適な基底
- サンプリングベースの基底
- サンプルの選び方について
- サンプリング行列
- サンプリング行列 (2)
- サンプリング行列 (3)
- サンプリング行列 (4)
- サンプリング行列 (5)
- サンプリング行列 (6)
- サンプリング行列 (7)
- 特異値分解(Singular Value Decomposition)
- 特異値分解(Singular Value Decomposition) (2)
- 特異値分解(Singular Value Decomposition) (3)
- 特異値分解(Singular Value Decomposition) (4)
- 特異値分解(Singular Value Decomposition) (5)
- 基底による直接光の近似
- アプローチの比較
- ハイブリッド手法の計算手順
- 係数の数の比較
- ランタイムの計算処理
- 係数の計算方法
- ランタイムの計算処理 (2)
- 間接光計算の解説手順 (11)
- ショートデモ
- 間接光計算の解説手順 (12)
- 間接光計算の解説手順 (13)
- Light Probe
- Light Probe (2)
- Light Probeによるライティング
- Light Probeによるライティング (2)
- 間接光計算の解説手順 (14)
- Light Probeの計算
- 動的なLight Probe
- 動的なLight Probe (2)
- 間接光計算の解説手順 (15)
- デモ
- デモ詳細
- パフォーマンス
- まとめ
- 発表の流れ (5)
- シーン分割による高速化の解説手順
- シーン分割による高速化の解説手順 (2)
- 問題提起 (14)
- 問題提起 (24)
- 問題提起 (34)
- 問題提起 (44)
- シーン分割による高速化の解説手順 (3)
- シーン分割による高速化の解説手順 (4)
- キーアイディア (16)
- キーアイディア (26)
- キーアイディア (36)
- キーアイディア (46)
- キーアイディア (56)
- キーアイディア (66)
- シーン分割による高速化の解説手順 (5)
- 光の伝播行列の計算 (17)
- 光の伝播行列の計算 (27)
- 光の伝播行列の計算 (37)
- 光の伝播行列の計算 (47)
- 光の伝播行列の計算 (57)
- 光の伝播行列の計算 (67)
- 光の伝播行列の計算 (77)
- シーン分割による高速化の解説手順 (6)
- シーン分割による高速化の解説手順 (7)
- 多重反射への拡張
- シーン分割による高速化の解説手順 (8)
- モジュールの導入 (13)
- モジュールの導入 (23)
- モジュールの導入 (33)
- シーン分割による高速化の解説手順 (9)
- デモ (2)
- 考察
- 発表の流れ (6)
- 発表内容のまとめ
- 著作権について
- 最後に
- Appendix A 実装について
- Appendix A 前計算について
- Appendix A ランタイム
- Appendix A ランタイム 係数
- Appendix A ランタイム
- Appendix A ランタイム 最終パス
- Appendix A ランタイム Light Probe(1)
- Appendix A ランタイム Light Probe(2)
- Appendix B 後半の補足
- Appendix B 後半の補足 (2)
- Appendix C 記号の表記
-
CEDEC 2012
Appendix A ランタイム Light Probe(2)
bull Probe を用いて Dynamic Objects をライティングndash 各 Light Probe が SH を 9係数で保持するため
3D Texture ではなく Structured-Buffer で保持ndash Vertex Shader 内で自力 Tri-Linear 補間
iquest +
CEDEC 2012
Appendix B 後半の補足
bull 大規模なシーンでの光の伝播bull 小領域間の光の伝播は個別に総当たりで計算
rArr小領域間の光の伝播は距離によって大きく減衰
実際は大規模シーンでも概ね二つ隣の小領域まで考慮すれば十分
CEDEC 2012
Appendix B 後半の補足
bull 小領域の境界
bull 小領域の境界部分が不連続になる rArr 小領域の境界部分は補間の必要がある
CEDEC 2012
bull スライドと論文で表記が違う記号があります
Appendix C 記号の表記
スライドでの表記 論文での表記
b
- Slide 1
- 発表の流れ
- 発表の流れ (2)
- 発表の概要
- 解説技術の特徴
- 注意点
- 発表の流れ (3)
- 発表の流れ (4)
- 間接光の概要
- 間接光の概要 (2)
- 解説手法の計算概要
- 間接光計算の解説手順
- 間接光計算の解説手順 (2)
- 間接光計算の解説手順 (3)
- 間接光計算の解説手順 (4)
- 間接光計算の解説手順 (5)
- 間接光計算の解説手順 (6)
- 間接光計算の考え方
- 間接光計算の考え方 (2)
- 間接光計算の考え方 (3)
- 間接光計算の考え方 (4)
- 間接光計算の考え方 (5)
- 間接光計算の解説手順 (7)
- 問題提起
- 間接光計算の解説手順 (8)
- キーアイディア
- キーアイディア (2)
- キーアイディア (3)
- キーアイディア (4)
- キーアイディア (5)
- キーアイディア (6)
- 間接光計算の解説手順 (9)
- 間接光計算の解説手順 (10)
- を求める
- を求める (2)
- を求める (3)
- 最適な基底
- サンプリングベースの基底
- サンプルの選び方について
- サンプリング行列
- サンプリング行列 (2)
- サンプリング行列 (3)
- サンプリング行列 (4)
- サンプリング行列 (5)
- サンプリング行列 (6)
- サンプリング行列 (7)
- 特異値分解(Singular Value Decomposition)
- 特異値分解(Singular Value Decomposition) (2)
- 特異値分解(Singular Value Decomposition) (3)
- 特異値分解(Singular Value Decomposition) (4)
- 特異値分解(Singular Value Decomposition) (5)
- 基底による直接光の近似
- アプローチの比較
- ハイブリッド手法の計算手順
- 係数の数の比較
- ランタイムの計算処理
- 係数の計算方法
- ランタイムの計算処理 (2)
- 間接光計算の解説手順 (11)
- ショートデモ
- 間接光計算の解説手順 (12)
- 間接光計算の解説手順 (13)
- Light Probe
- Light Probe (2)
- Light Probeによるライティング
- Light Probeによるライティング (2)
- 間接光計算の解説手順 (14)
- Light Probeの計算
- 動的なLight Probe
- 動的なLight Probe (2)
- 間接光計算の解説手順 (15)
- デモ
- デモ詳細
- パフォーマンス
- まとめ
- 発表の流れ (5)
- シーン分割による高速化の解説手順
- シーン分割による高速化の解説手順 (2)
- 問題提起 (14)
- 問題提起 (24)
- 問題提起 (34)
- 問題提起 (44)
- シーン分割による高速化の解説手順 (3)
- シーン分割による高速化の解説手順 (4)
- キーアイディア (16)
- キーアイディア (26)
- キーアイディア (36)
- キーアイディア (46)
- キーアイディア (56)
- キーアイディア (66)
- シーン分割による高速化の解説手順 (5)
- 光の伝播行列の計算 (17)
- 光の伝播行列の計算 (27)
- 光の伝播行列の計算 (37)
- 光の伝播行列の計算 (47)
- 光の伝播行列の計算 (57)
- 光の伝播行列の計算 (67)
- 光の伝播行列の計算 (77)
- シーン分割による高速化の解説手順 (6)
- シーン分割による高速化の解説手順 (7)
- 多重反射への拡張
- シーン分割による高速化の解説手順 (8)
- モジュールの導入 (13)
- モジュールの導入 (23)
- モジュールの導入 (33)
- シーン分割による高速化の解説手順 (9)
- デモ (2)
- 考察
- 発表の流れ (6)
- 発表内容のまとめ
- 著作権について
- 最後に
- Appendix A 実装について
- Appendix A 前計算について
- Appendix A ランタイム
- Appendix A ランタイム 係数
- Appendix A ランタイム
- Appendix A ランタイム 最終パス
- Appendix A ランタイム Light Probe(1)
- Appendix A ランタイム Light Probe(2)
- Appendix B 後半の補足
- Appendix B 後半の補足 (2)
- Appendix C 記号の表記
-
CEDEC 2012
Appendix B 後半の補足
bull 大規模なシーンでの光の伝播bull 小領域間の光の伝播は個別に総当たりで計算
rArr小領域間の光の伝播は距離によって大きく減衰
実際は大規模シーンでも概ね二つ隣の小領域まで考慮すれば十分
CEDEC 2012
Appendix B 後半の補足
bull 小領域の境界
bull 小領域の境界部分が不連続になる rArr 小領域の境界部分は補間の必要がある
CEDEC 2012
bull スライドと論文で表記が違う記号があります
Appendix C 記号の表記
スライドでの表記 論文での表記
b
- Slide 1
- 発表の流れ
- 発表の流れ (2)
- 発表の概要
- 解説技術の特徴
- 注意点
- 発表の流れ (3)
- 発表の流れ (4)
- 間接光の概要
- 間接光の概要 (2)
- 解説手法の計算概要
- 間接光計算の解説手順
- 間接光計算の解説手順 (2)
- 間接光計算の解説手順 (3)
- 間接光計算の解説手順 (4)
- 間接光計算の解説手順 (5)
- 間接光計算の解説手順 (6)
- 間接光計算の考え方
- 間接光計算の考え方 (2)
- 間接光計算の考え方 (3)
- 間接光計算の考え方 (4)
- 間接光計算の考え方 (5)
- 間接光計算の解説手順 (7)
- 問題提起
- 間接光計算の解説手順 (8)
- キーアイディア
- キーアイディア (2)
- キーアイディア (3)
- キーアイディア (4)
- キーアイディア (5)
- キーアイディア (6)
- 間接光計算の解説手順 (9)
- 間接光計算の解説手順 (10)
- を求める
- を求める (2)
- を求める (3)
- 最適な基底
- サンプリングベースの基底
- サンプルの選び方について
- サンプリング行列
- サンプリング行列 (2)
- サンプリング行列 (3)
- サンプリング行列 (4)
- サンプリング行列 (5)
- サンプリング行列 (6)
- サンプリング行列 (7)
- 特異値分解(Singular Value Decomposition)
- 特異値分解(Singular Value Decomposition) (2)
- 特異値分解(Singular Value Decomposition) (3)
- 特異値分解(Singular Value Decomposition) (4)
- 特異値分解(Singular Value Decomposition) (5)
- 基底による直接光の近似
- アプローチの比較
- ハイブリッド手法の計算手順
- 係数の数の比較
- ランタイムの計算処理
- 係数の計算方法
- ランタイムの計算処理 (2)
- 間接光計算の解説手順 (11)
- ショートデモ
- 間接光計算の解説手順 (12)
- 間接光計算の解説手順 (13)
- Light Probe
- Light Probe (2)
- Light Probeによるライティング
- Light Probeによるライティング (2)
- 間接光計算の解説手順 (14)
- Light Probeの計算
- 動的なLight Probe
- 動的なLight Probe (2)
- 間接光計算の解説手順 (15)
- デモ
- デモ詳細
- パフォーマンス
- まとめ
- 発表の流れ (5)
- シーン分割による高速化の解説手順
- シーン分割による高速化の解説手順 (2)
- 問題提起 (14)
- 問題提起 (24)
- 問題提起 (34)
- 問題提起 (44)
- シーン分割による高速化の解説手順 (3)
- シーン分割による高速化の解説手順 (4)
- キーアイディア (16)
- キーアイディア (26)
- キーアイディア (36)
- キーアイディア (46)
- キーアイディア (56)
- キーアイディア (66)
- シーン分割による高速化の解説手順 (5)
- 光の伝播行列の計算 (17)
- 光の伝播行列の計算 (27)
- 光の伝播行列の計算 (37)
- 光の伝播行列の計算 (47)
- 光の伝播行列の計算 (57)
- 光の伝播行列の計算 (67)
- 光の伝播行列の計算 (77)
- シーン分割による高速化の解説手順 (6)
- シーン分割による高速化の解説手順 (7)
- 多重反射への拡張
- シーン分割による高速化の解説手順 (8)
- モジュールの導入 (13)
- モジュールの導入 (23)
- モジュールの導入 (33)
- シーン分割による高速化の解説手順 (9)
- デモ (2)
- 考察
- 発表の流れ (6)
- 発表内容のまとめ
- 著作権について
- 最後に
- Appendix A 実装について
- Appendix A 前計算について
- Appendix A ランタイム
- Appendix A ランタイム 係数
- Appendix A ランタイム
- Appendix A ランタイム 最終パス
- Appendix A ランタイム Light Probe(1)
- Appendix A ランタイム Light Probe(2)
- Appendix B 後半の補足
- Appendix B 後半の補足 (2)
- Appendix C 記号の表記
-
CEDEC 2012
Appendix B 後半の補足
bull 小領域の境界
bull 小領域の境界部分が不連続になる rArr 小領域の境界部分は補間の必要がある
CEDEC 2012
bull スライドと論文で表記が違う記号があります
Appendix C 記号の表記
スライドでの表記 論文での表記
b
- Slide 1
- 発表の流れ
- 発表の流れ (2)
- 発表の概要
- 解説技術の特徴
- 注意点
- 発表の流れ (3)
- 発表の流れ (4)
- 間接光の概要
- 間接光の概要 (2)
- 解説手法の計算概要
- 間接光計算の解説手順
- 間接光計算の解説手順 (2)
- 間接光計算の解説手順 (3)
- 間接光計算の解説手順 (4)
- 間接光計算の解説手順 (5)
- 間接光計算の解説手順 (6)
- 間接光計算の考え方
- 間接光計算の考え方 (2)
- 間接光計算の考え方 (3)
- 間接光計算の考え方 (4)
- 間接光計算の考え方 (5)
- 間接光計算の解説手順 (7)
- 問題提起
- 間接光計算の解説手順 (8)
- キーアイディア
- キーアイディア (2)
- キーアイディア (3)
- キーアイディア (4)
- キーアイディア (5)
- キーアイディア (6)
- 間接光計算の解説手順 (9)
- 間接光計算の解説手順 (10)
- を求める
- を求める (2)
- を求める (3)
- 最適な基底
- サンプリングベースの基底
- サンプルの選び方について
- サンプリング行列
- サンプリング行列 (2)
- サンプリング行列 (3)
- サンプリング行列 (4)
- サンプリング行列 (5)
- サンプリング行列 (6)
- サンプリング行列 (7)
- 特異値分解(Singular Value Decomposition)
- 特異値分解(Singular Value Decomposition) (2)
- 特異値分解(Singular Value Decomposition) (3)
- 特異値分解(Singular Value Decomposition) (4)
- 特異値分解(Singular Value Decomposition) (5)
- 基底による直接光の近似
- アプローチの比較
- ハイブリッド手法の計算手順
- 係数の数の比較
- ランタイムの計算処理
- 係数の計算方法
- ランタイムの計算処理 (2)
- 間接光計算の解説手順 (11)
- ショートデモ
- 間接光計算の解説手順 (12)
- 間接光計算の解説手順 (13)
- Light Probe
- Light Probe (2)
- Light Probeによるライティング
- Light Probeによるライティング (2)
- 間接光計算の解説手順 (14)
- Light Probeの計算
- 動的なLight Probe
- 動的なLight Probe (2)
- 間接光計算の解説手順 (15)
- デモ
- デモ詳細
- パフォーマンス
- まとめ
- 発表の流れ (5)
- シーン分割による高速化の解説手順
- シーン分割による高速化の解説手順 (2)
- 問題提起 (14)
- 問題提起 (24)
- 問題提起 (34)
- 問題提起 (44)
- シーン分割による高速化の解説手順 (3)
- シーン分割による高速化の解説手順 (4)
- キーアイディア (16)
- キーアイディア (26)
- キーアイディア (36)
- キーアイディア (46)
- キーアイディア (56)
- キーアイディア (66)
- シーン分割による高速化の解説手順 (5)
- 光の伝播行列の計算 (17)
- 光の伝播行列の計算 (27)
- 光の伝播行列の計算 (37)
- 光の伝播行列の計算 (47)
- 光の伝播行列の計算 (57)
- 光の伝播行列の計算 (67)
- 光の伝播行列の計算 (77)
- シーン分割による高速化の解説手順 (6)
- シーン分割による高速化の解説手順 (7)
- 多重反射への拡張
- シーン分割による高速化の解説手順 (8)
- モジュールの導入 (13)
- モジュールの導入 (23)
- モジュールの導入 (33)
- シーン分割による高速化の解説手順 (9)
- デモ (2)
- 考察
- 発表の流れ (6)
- 発表内容のまとめ
- 著作権について
- 最後に
- Appendix A 実装について
- Appendix A 前計算について
- Appendix A ランタイム
- Appendix A ランタイム 係数
- Appendix A ランタイム
- Appendix A ランタイム 最終パス
- Appendix A ランタイム Light Probe(1)
- Appendix A ランタイム Light Probe(2)
- Appendix B 後半の補足
- Appendix B 後半の補足 (2)
- Appendix C 記号の表記
-
CEDEC 2012
bull スライドと論文で表記が違う記号があります
Appendix C 記号の表記
スライドでの表記 論文での表記
b
- Slide 1
- 発表の流れ
- 発表の流れ (2)
- 発表の概要
- 解説技術の特徴
- 注意点
- 発表の流れ (3)
- 発表の流れ (4)
- 間接光の概要
- 間接光の概要 (2)
- 解説手法の計算概要
- 間接光計算の解説手順
- 間接光計算の解説手順 (2)
- 間接光計算の解説手順 (3)
- 間接光計算の解説手順 (4)
- 間接光計算の解説手順 (5)
- 間接光計算の解説手順 (6)
- 間接光計算の考え方
- 間接光計算の考え方 (2)
- 間接光計算の考え方 (3)
- 間接光計算の考え方 (4)
- 間接光計算の考え方 (5)
- 間接光計算の解説手順 (7)
- 問題提起
- 間接光計算の解説手順 (8)
- キーアイディア
- キーアイディア (2)
- キーアイディア (3)
- キーアイディア (4)
- キーアイディア (5)
- キーアイディア (6)
- 間接光計算の解説手順 (9)
- 間接光計算の解説手順 (10)
- を求める
- を求める (2)
- を求める (3)
- 最適な基底
- サンプリングベースの基底
- サンプルの選び方について
- サンプリング行列
- サンプリング行列 (2)
- サンプリング行列 (3)
- サンプリング行列 (4)
- サンプリング行列 (5)
- サンプリング行列 (6)
- サンプリング行列 (7)
- 特異値分解(Singular Value Decomposition)
- 特異値分解(Singular Value Decomposition) (2)
- 特異値分解(Singular Value Decomposition) (3)
- 特異値分解(Singular Value Decomposition) (4)
- 特異値分解(Singular Value Decomposition) (5)
- 基底による直接光の近似
- アプローチの比較
- ハイブリッド手法の計算手順
- 係数の数の比較
- ランタイムの計算処理
- 係数の計算方法
- ランタイムの計算処理 (2)
- 間接光計算の解説手順 (11)
- ショートデモ
- 間接光計算の解説手順 (12)
- 間接光計算の解説手順 (13)
- Light Probe
- Light Probe (2)
- Light Probeによるライティング
- Light Probeによるライティング (2)
- 間接光計算の解説手順 (14)
- Light Probeの計算
- 動的なLight Probe
- 動的なLight Probe (2)
- 間接光計算の解説手順 (15)
- デモ
- デモ詳細
- パフォーマンス
- まとめ
- 発表の流れ (5)
- シーン分割による高速化の解説手順
- シーン分割による高速化の解説手順 (2)
- 問題提起 (14)
- 問題提起 (24)
- 問題提起 (34)
- 問題提起 (44)
- シーン分割による高速化の解説手順 (3)
- シーン分割による高速化の解説手順 (4)
- キーアイディア (16)
- キーアイディア (26)
- キーアイディア (36)
- キーアイディア (46)
- キーアイディア (56)
- キーアイディア (66)
- シーン分割による高速化の解説手順 (5)
- 光の伝播行列の計算 (17)
- 光の伝播行列の計算 (27)
- 光の伝播行列の計算 (37)
- 光の伝播行列の計算 (47)
- 光の伝播行列の計算 (57)
- 光の伝播行列の計算 (67)
- 光の伝播行列の計算 (77)
- シーン分割による高速化の解説手順 (6)
- シーン分割による高速化の解説手順 (7)
- 多重反射への拡張
- シーン分割による高速化の解説手順 (8)
- モジュールの導入 (13)
- モジュールの導入 (23)
- モジュールの導入 (33)
- シーン分割による高速化の解説手順 (9)
- デモ (2)
- 考察
- 発表の流れ (6)
- 発表内容のまとめ
- 著作権について
- 最後に
- Appendix A 実装について
- Appendix A 前計算について
- Appendix A ランタイム
- Appendix A ランタイム 係数
- Appendix A ランタイム
- Appendix A ランタイム 最終パス
- Appendix A ランタイム Light Probe(1)
- Appendix A ランタイム Light Probe(2)
- Appendix B 後半の補足
- Appendix B 後半の補足 (2)
- Appendix C 記号の表記
-