物理ベースレンダリング 光の物理的な挙動を正確に再現して レンダリングを行うこと 光(電磁波)の挙動を表す物理法則 幾何光学 波動光学

Slides:



Advertisements
Similar presentations
Absolute Orientation. Absolute Orientation の問題 二つの座標系の間における剛体 (rigid body) 変換を復元す る問題である。 例えば: 2 台のステレオカメラから得られた3次元情報の間の関 係を推定する問題。 2 台のステレオカメラから得られた3次元情報の間の関.
Advertisements

『わかりやすいパターン認 識』 第 5 章 特徴の評価とベイズ誤り確率 5.4 ベイズ誤り確率と最近傍決定則 発表日: 5 月 23 日(金) 発表者:時田 陽一.
多面体の画面への投影 ケプラーの太陽系モデルとミウラ折 り 宇宙物理・数理科学研究室 情報システム学科 B 奥野駿哉.
池内研究室 Computer Vision Laboratory 東京大学 The University of Tokyo 偏光レイトレーシング 宮崎大輔 2004 年 6 月 22 日(火) CVL セミナー.
Imagire Day CEDEC 2009続・レンダリスト養成講座 田村 尚希 川瀬 正樹 シリコンスタジオ株式会社.
Determining Optical Flow. はじめに オプティカルフローとは画像内の明る さのパターンの動きの見かけの速さの 分布 オプティカルフローは物体の動きの よって変化するため、オプティカルフ ローより速度に関する情報を得ること ができる.
Ruth Onn, Alfred Bruckstein (Int J Comp Vision 1990)
計測情報処理論(4) レンズの基礎.
ゲーム開発者向け最新技術論文の解説・実装講座
電子物性第1 第4回 ーシュレーディンガーの波動方程式ー 電子物性第1スライド4-1 目次 2 はじめに 3 Ψがあると電子がある。
豊洲 304教室 15 JULY コンピュータグラフィックス 2008年度版.
Imagire Day Imagire Day 2009 リフレクタンスの基礎について このセッションは? GIもいいけど足元を固める 頑張って美麗なテクスチャを描いても… Interreflectionがいい雰囲気や空気感を出しても オブジェクトはみんなプラスティック? 頑張って美麗なテクスチャを描いても…
パノラマ動画像モデルによる 仮想空間表現システムの研究
影付け,映り込み,光の屈折・反射などが表現でき,リアルな画像を生成できるレイトレーシング法について説明する.
CGアニメーションの原理 基本技術 対象物体の動きや変形の設定方法 レンダリング技術
・力のモーメント ・角運動量 ・力のモーメントと角運動量の関係
       光の種類 理工学部物理科学科 07232034 平方 章弘.
画像処理論.
平成25年度 東京工業大学 大学院基礎物理学専攻
スペクトル法による数値計算の原理 -一次元線形・非線形移流問題の場合-
平成23年8月 情報学群 岡田 守 このスライドは, 前川佳徳編著による「コンピュータグラフィックス」(オーム社)を基に作成されている.
Copyright 2011 アイデアクラフト 開米瑞浩 All rights reserved.
5.アンテナの基礎 線状アンテナからの電波の放射 アンテナの諸定数
線形代数学 4.行列式 吉村 裕一.
首都大学東京 都市教養学部数理科学コース 関谷博之
電磁気学C Electromagnetics C 7/13講義分 電磁波の電気双極子放射 山田 博仁.
透視投影(中心射影)とは  ○ 3次元空間上の点を2次元平面へ投影する方法の一つ  ○ 投影方法   1.投影中心を定義する   2.投影平面を定義する
最尤推定によるロジスティック回帰 対数尤度関数の最大化.
非線形方程式の近似解 (2分法,はさみうち法,Newton-Raphson法)
ストークスの定理と、 渦度・循環の関係を 直感で理解する方法
(ラプラス変換の復習) 教科書には相当する章はない
電気回路Ⅱ 演習 特別編(数学) 三角関数 オイラーの公式 微分積分 微分方程式 付録 三角関数関連の公式
10. 積分 積分・・確率モデルと動学モデルで使われる この章は計算方法の紹介 積分の定義から
All images are compressed.
前回の内容 結晶工学特論 第5回目 Braggの式とLaue関数 実格子と逆格子 回折(結晶による波の散乱) Ewald球
シミュレーション演習 G. 総合演習 (Mathematica演習) システム創成情報工学科
システムモデルと伝達関数 1. インパルス応答と伝達関数 キーワード : 伝達関数、インパルス応答、 ステップ応答、ランプ応答
物理学セミナー 2004 May20 林田 清 ・ 常深 博.
第2回 両眼立体視と明るさ解析.
スペクトル法の一部の基礎の初歩への はじめの一歩
電磁波 アンテナ.
電磁気学C Electromagnetics C 5/28講義分 電磁波の反射と透過 山田 博仁.
6. ラプラス変換.
電磁気学Ⅱ Electromagnetics Ⅱ 6/30講義分 電磁波の反射と透過 山田 博仁.
デザイン情報学科 メディア情報設計 河原英紀
逐次伝達法による 散乱波の解析 G05MM050 本多哲也.
可視面・不可視面の判定方法と隠れ面(不可視面)の消去法について述べる.
量子力学の復習(水素原子の波動関数) 光の吸収と放出(ラビ振動)
重力レンズ効果による画像の変形と明るさの変化
変換されても変換されない頑固ベクトル どうしたら頑固になれるか 頑固なベクトルは何に使える?
電磁気学Ⅱ Electromagnetics Ⅱ 8/4講義分 電気双極子による電磁波の放射 山田 博仁.
パターン認識特論 担当:和田 俊和 部屋 A513 主成分分析
電磁気学Ⅱ Electromagnetics Ⅱ 6/9講義分 電磁場の波動方程式 山田 博仁.
音声分析 フーリエ解析の定性的理解のために.
文化財のデジタル保存のための 偏光を用いた透明物体形状計測手法
4. システムの安定性.
「データ学習アルゴリズム」 第3章 複雑な学習モデル 報告者 佐々木 稔 2003年6月25日 3.1 関数近似モデル
第3章 線形回帰モデル 修士1年 山田 孝太郎.
コンピュータグラフィックス 実習3: 光線追跡法
第9章 学習アルゴリズムとベイズ決定側 〔3〕最小2乗法とベイズ決定側 発表:2003年7月4日 時田 陽一
ポッツスピン型隠れ変数による画像領域分割
行列 一次変換,とくに直交変換.
電磁気学C Electromagnetics C 5/20講義分 電磁場の波動方程式 山田 博仁.
パターン認識特論 カーネル主成分分析 和田俊和.
Cプログラミング演習 ニュートン法による方程式の求解.
電磁気学C Electromagnetics C 7/10講義分 電気双極子による電磁波の放射 山田 博仁.
ベクトル関数の回転(カール、ローティション)
ベイジアンネットワークと クラスタリング手法を用いたWeb障害検知システムの開発
電磁気学Ⅱ Electromagnetics Ⅱ 6/7講義分 電磁波の反射と透過 山田 博仁.
空間図形の取り扱いについて.
Presentation transcript:

物理ベースレンダリング 光の物理的な挙動を正確に再現して レンダリングを行うこと 光(電磁波)の挙動を表す物理法則 幾何光学 波動光学 波動方程式 マクスウェル方程式 散乱方程式 コンプトン散乱 レイリー散乱 ミー散乱 ラマン散乱 など…

このセッションで扱う方程式 レンダリング方程式(The Rendering Equation) CGレンダリングにおいて光の挙動を表した方程式 1986年にKajiyaによって考案された 幾何光学的要素のみを取り扱う 散乱効果は扱わない ボリュームレンダリング サブサーフェーススキャッタリング 蛍光効果 干渉効果 など

このセッションの目的 レンダリング方程式を解いて物理的に正しい レンダリングを行う 注意 数式が山のように出てきます…スイマセン 世の中にあるレンダリングに関する関数や数式を なんとなく実装するのではなく 物理的に理解できるようになる 注意 このスライドの数式に出てくるw (出射方向), w’ (入射方向)は 数式を見易くするために符号を考慮してません 実際に計算するときは正しい符号に変換するようにお願いします

ある地点xにおいてw方向に出射する光Loを計算する方程式 レンダリング方程式 ある地点xにおいてw方向に出射する光Loを計算する方程式 波長λに関しては物理的性質を表す関数が波長ごとに異なると考えればよい この方程式が表しているものとは?

出射する光とは ある地点xにおいて w方向に出射する放射輝度 放射輝度とは?

放射輝度とは 放射輝度(radiance) 単位面積dAおよび単位球面上の範囲dw(立体角)を通過する光の量(放射束)F

放射照度とは 放射照度(irradiance) 単位面積dAを通過する光の量(放射束) F

放射束とは? 光エネルギーの時間微分(radiant flux) 単位 W(ワット) = J/s Qは光のエネルギー(放射エネルギー J)を表す

レンダリングとは スクリーン(センサー)のピクセルに入射する 光のエネルギーを求めるということ または眼の網膜細胞に入射する光のエネルギーを求める

求めてみる ピクセルに到達する放射輝度L(x,w)は既知とすると 60fps動作のフレーム(時間)tのレンダリングは L(x,w)

求めてみる 半球方向から入射する光(放射輝度)をすべて積分 pixelの領域に集まる光(放射照度)をすべて積分 放射輝度から放射照度を求める 放射照度から放射束を求める pixelの領域に集まる光(放射照度)をすべて積分 放射束から放射エネルギーを求める

絞り このままだと半球方向から 入ってくる光の総和なので 映像がボケてしまう 1(xにおけるw方向が絞りの内側の場合) 絞りを導入する 1(xにおけるw方向が絞りの内側の場合) 0(xにおけるw方向が絞りの外側の場合) 代入する

絞りを考慮しない 一般のリアルタイムレンダリングでは 絞りを考慮しない はw方向とxから仮想の絞りの中心への方向が 一致したときに1になるディラックのデルタ関数 絞りを考慮すると… (同じ光源の強さなら) 映像をシャープにしたい場合は絞りを小さく(でも映像は暗く) 映像を明るくしたい場合は絞りを大きく(でも映像はボケてしまう)

レンズ レンズを導入 frefractionはw方向を別の方向のwに 変換する(曲げる)薄レンズ効果を 表す関数

x地点が自ら発光している光の量の うちw方向に放射している量 出射する放射輝度を求める ある地点xにおいてw方向に放射される放射輝度 x地点が自ら発光している光の量の うちw方向に放射している量

x地点に入射してきた光の量の うちw方向に反射している量 出射する放射輝度を求める ある地点xにおいてw方向に反射される放射輝度 x地点に入射してきた光の量の うちw方向に反射している量

= + つまり ある地点xにおいて w方向に出射する光(放射輝度) x地点が自ら発光している光の量のうち w方向に放射している量

Le(自己放射)を求める お好きなように 自ら放射しているので何らかの関数で表現 光源を表している テクスチャ? アニメーションカーブ? 照明モデル? 光源を表している

Lr(反射)を求める x地点に入射した光がw方向に反射した光の総量 入射した光? 反射はどのように行われる? ?

光の入射方向w’を法線を中心とした半球上で積分 Lr=… 光の入射方向w’を法線を中心とした半球上で積分

Lr=… x地点におけるw’方向からの光の入射量(放射輝度) x地点における光の入射量に 対する幾何効果(nはxにおける法線)

= Lr=… x地点におけるw’方向からの入射した光の量とw方向へ反射した光の量の比をあらわす関数 双方向反射分布関数 (Bi-directional Reflectance Distribution Function, BRDF)

BRDFとは?(1) 両辺をw’で微分 移項する

BRDFとは?(2) Liに放射輝度の 定義を代入 整理 なので

x地点におけるw’方向からの入射した光の量(放射照度)とw方向へ反射した光の量(放射輝度)の比をあらわす関数 というわけで… x地点におけるw’方向からの入射した光の量(放射照度)とw方向へ反射した光の量(放射輝度)の比をあらわす関数 w方向に反射する放射輝度 w’方向から入射する放射照度

BRDFを使うと 光が入射してきたときに 反射する光の量が得られる とある位置xにおいて とある方向(w’)から とある方向(w)へ (ある波長lにおいて) とある方向(w’)から 光が入射してきたときに とある方向(w)へ 反射する光の量が得られる

反射した光の総和が入射した 光の量を超えてはいけないという法則 BRDFの物理的制約その1 すべてのw’において エネルギー保存則 反射した光の総和が入射した 光の量を超えてはいけないという法則 "Practical Implementation of physically based shading models at tri-Ace" SIGGRAPH 2010

BRDFの物理的制約その2 ヘルムホルツの相反性(reciprocity) 入射した方向と反射した方向を入れ替えても 反射率は同じであるという法則

Reciprocityの検証(1) Ad-hoc Blinn (1)だと? シェーディングモデルで記述すると LとEを入れ替えると

Reciprocityの検証(2) Ad-hoc Blinn (2)だと? シェーディングモデルで記述すると LとEを入れ替えると

レンダリング方程式を解く 近似解を求める代表的なアルゴリズム パストレーシングなど 両辺に再帰的に放射輝度値が含まれているので 解析解を求めるには無限級数の解を求めることが必要 近似解を求める代表的なアルゴリズム パストレーシングなど

Lambertで解いてみる(前提条件) BRDF (Lambert) x : シェーディングしている座標(位置) xp : センサーのピクセルの座標 xa : 絞りの座標 nx : xにおけるサーフェースの法線 np : xpにおけるセンサーの法線 Ap: センサーのピクセルを表す領域 Ax: xにおけるシェーディング領域 Aa: 絞りの領域(面積) La: センサーから絞りまでの距離(焦点距離) (視線ベクトル) (ライトベクトル)

Lambertで解いてみる(1) Liに放射輝度の定義を代入 式を整理する …式(1) BRDFをレンダリング方程式に代入 自己放射は考慮しない Liに放射輝度の定義を代入 式を整理する xから反射される放射輝度を求める …式(1)

Lambertで解いてみる(2) センサーのピクセルに入射する放射束を求める …式(2)

dAxはピクセルの範囲dApをxの位置に 投影した領域を表すので Lambertで解いてみる(3) ところで… …式(3) dAxはピクセルの範囲dApをxの位置に 投影した領域を表すので

dEはxから見たdAxの範囲を表す 立体角になるので Lambertで解いてみる(4) さらに …式(4) dEはxから見たdAxの範囲を表す 立体角になるので

Lambertで解いてみる(5) 式1 式3 式4 各式を式(2)に代入する 式2 整理する

Lambertで解いてみる(6) 整理された式 La2は定数なので …式(5)

Lambertで解いてみる(7) ところで… ピクセルから視線方向に見える 絞りの領域(dAa)は視線ベクトルに 直交する領域になるので

Lambertで解いてみる(8) 式(5)の一番内側の 積分に代入する 式(5) 整理する

Lambertで解いてみる(9) 整理された式 さらに整理する

Lambertで解いてみる(10) 最終的に求まった式 この式の意味は?

式の意味 光の強さは視線ベクトルとピクセルの法線の 内積の4乗に比例する(コサイン4乗則) 光を受け取る量はピクセルの 面積に比例する ピクセルの明るさはx(Ax)に入射した 放射照度に比例する 光の強さは絞りの面積に比例する (F値と明るさの関係) 光の強さは視線に依存せず1/pになる(Lambertian) (物理的に正しいという意味ではない LambertはDiffuse面の大胆な近似であることに注意) (コサイン4乗則その他によるものは除外している) 絞りの大きさが同じであればセンサーから 絞りの距離の二乗に明るさは反比例する (焦点距離とF値の関係)

シェーダで解く リアルタイムレイトレーシングは現行ハードでは現実的ではない ではラスタライズ+シェーダで解くとは…? 部分的には使用可能 ディフューズのみ Point-Based Global Illumination Screen-Space Photon Mapping Precomputed Radiance Transfer系 など ではラスタライズ+シェーダで解くとは…?

シェーダにおける放射輝度 シェーダでどのように入射放射輝度を扱う? 半球方向から降り注ぐ放射輝度の関数 テクスチャ? 放射輝度テクスチャ(radiance texture)とは どのようなものか?

x(位置)に3次元,w(方向)に2次元必要なので そのままだと5次元テクスチャが必要になってしまう Radiance Texture 各テクセルに放射輝度を格納したテクスチャ x(位置)に3次元,w(方向)に2次元必要なので そのままだと5次元テクスチャが必要になってしまう 光源は無限遠に存在すると仮定すると…?

Radiance Environment Map 放射輝度を格納した環境マップ ∞ 入射光がレンダリング位置に依存しなく なるためxを考慮する必要がなくなる 放射面が(環境)球の内側で常に中心を 向いているのでcosq はいつも1になる この放射輝度環境マップとレンダリング方程式を 利用してレンダリングを行ってみる

REMを作成する(1) 放射輝度マップをキューブマップで作成してみる 通常の平面(投影面)にレンダリングしたものを 球面にレンダリングしたものと考えたい 通常のリアルタイムラスタライズレンダリングでは 放射エネルギーまたは放射束をレンダーターゲットに 格納していない シェーディング点で計算された 放射輝度をそのまま格納している

REMを作成する(2) 放射輝度マップをキューブマップで作成する もともと放射輝度レンダーゲットならそのまま キューブマップ化すればよい 離散化

REMを作成する(3) 環境マップは常に球の中心を照らしているので 放射面(DA)の法線(n)とwの方向は一致する 立体角はDAに等しくなる

DAを求める レンダリング方程式における入射光は シェーディング点(x)を中心とした半球上から そそぐので キューブマップの各テクセルは (半)球上のテクセルに対応する DAはキューブマップの 各テクセルを球に投影した 球面四角形の面積に一致する

キューブマップ上の座標face,s,tを球面上に投影するとw’が求まる REMを利用したレンダリング(前提) 以下の前提を行います 入射光 BRDF (Lambert) 自己放射なし キューブマップ上の座標face,s,tを球面上に投影するとw’が求まる

REMを利用したレンダリング(1) レンダリング方程式に代入 なし

REMを利用したレンダリング(2) 離散化すると texREMの定義を代入すると

REMを利用したレンダリング(3) ところで環境マップに よるライティングでは 整理する

REMを利用したレンダリング(4) この放射輝度を利用して ピクセルに入射する放射束をレンダリング方程式を利用して計算する この放射輝度をそのままピクセルに格納して通常のレンダリングと同じように扱う

Irradiance Environment Map …似ている?

IEMの生成 つまりIrradiance Environment Mapを利用すると (1/p)を乗算すればLambertのDiffuse面の レンダリング方程式を1iteration分解くことができる

最適化 レンダリング方程式の求解は負荷が高い 微分方程式を多次元に解く必要がある リアルタイムのために計算量を激減させたい 何重もの多重ループ 解像度も高い 計算量がG,Tのオーダー リアルタイムのために計算量を激減させたい 大胆な近似 物理的正確性を多少犠牲にして(not physically perfect) 物理的正確っぽい見た目(physically plausible)

積分の分解 積分を分解できないか? ≠ =

積分の最適化 フーリエ変換(畳み込み定理)を利用する 畳み込み演算(2関数の積の積分)に対して それぞれの関数にフーリエ変換を行うと 畳み込み演算のフーリエ変換はフーリエ変換 された関数の積になる

畳み込み定理 畳み込み定理の利点 FFT(高速フーリエ変換)を利用できるのでうまく 使えば劇的に高速化できる Spherical Harmonicsは球面フーリエ変換と言える のでレンダリングに利用しやすい うまく使わなければFFT, IFFTの分だけかえって 遅くなる とはいえこれを利用してレンダリング方程式を リアルタイムに解くには現行ハードウェアでは まだまだ負荷が高い

「ゲームプログラマーのための初級PRT」 CEDEC 2006 基底変換 基底変換を利用する 直交変換を利用すればさらに計算量低減 不必要な係数を減らせばもっと計算量低減 でもまた低周波のみ? PCAなど利用? いわゆるPRT系 「ゲームプログラマーのための初級PRT」 CEDEC 2006

もっと大胆に 結局 って本当にダメ? これがどのケースでそれなりの近似になり得るか 考えてみる

検証(1) ? 離散で考えてみると ? 検証してみる

検証(2) と置いて を調べてみる

検証(3) 第1項 第2項 = ?

第1項(分解された式)をnで割ればいい感じ? 検証(4) なんかあまりいい感じではない 第1項(分解された式)をnで割ればいい感じ? 整理すると

この式が誤差になるので 式の値が0に近ければ近いほどよい近似になる 結論 この式が誤差になるので 式の値が0に近ければ近いほどよい近似になる うまく使えばよい近似になる 誤差の発生を理解する あとは見た目でground truthと比べて問題ないと 判断できれば

まとめ レンダリング方程式を利用すると物理的に 正しいレンダリングを自然に行うことができる 最終的な積分はコード上で行うので 求めたい状況を正しく数式化できれば良い 必要な計算は易しい 求めるハードウェアの要件に合わせた近似で最適化 場合によっては大胆で割り切った近似

謝辞 (株)トライエース 研究開発部 庄子 達哉 河野 慧一 石井 聡 大嶋 貴史

ご質問は? http://research.tri-ace.com