Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ボリュームレンダリング入門(一様媒質編) / Introduction to VPT (hom...
Search
sakanaman
December 12, 2020
0
390
ボリュームレンダリング入門(一様媒質編) / Introduction to VPT (homogeneous)
OSKのLTで発表した際の資料。
一様媒質でVolumetric Path Tracingする方法について説明しました。
sakanaman
December 12, 2020
Tweet
Share
More Decks by sakanaman
See All by sakanaman
ボリュームレンダリング入門(非一様媒質編) / Introduction to VPT (heterogeneous)
sakanaman
1
800
玉虫色シェーダーのススメ
sakanaman
0
640
Featured
See All Featured
Automating Front-end Workflow
addyosmani
1366
200k
Building Your Own Lightsaber
phodgson
103
6.1k
Scaling GitHub
holman
458
140k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
44
9.3k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
95
17k
A Philosophy of Restraint
colly
203
16k
Git: the NoSQL Database
bkeepers
PRO
427
64k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
59k
Designing for humans not robots
tammielis
250
25k
The Art of Programming - Codeland 2020
erikaheidi
53
13k
Gamification - CAS2011
davidbonilla
80
5.1k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
665
120k
Transcript
None
物体表面だけ追跡 空間上でも追跡 媒質による散乱・吸収などが表現できる(雲、肌など)
! () " () 散乱係数[1/m] 吸収係数[1/m] これだけ 散乱しやすさ 吸収しやすさ 位相関数
! (, % ) どの方向にどれだけ散乱するのか
! :1.5, " : 1.5 ! :0.1, " : 1.5
レイがどの方向にどれだけ散乱するかを制御している 次の式を満たす " ! " , & & = 1
レイがどの方向にどれだけ散乱するかを制御している 一番有名なのがHG位相関数 1 − ! 4[1 + ! − 2
cos ] " ! () = (−1 ≤ ≤ 1) ()
2次元極座標にてHG位相関数を可視化してみる = −0.75 = 0 = 0.75
HG位相関数を用いた方向サンプリング
HG位相関数を用いた媒質空間の探索
)(, ) # (, ) $ (, )= (%, ′)#
(, ) * * 0 &% '% %, ! ()( , + " ()" (, ) + ( (, ) " (, )
)(, ) # (, ) * * ( (, )
" (, ) , ≔ ! ∫! " ## $ %$ (& ≔ ' + $ )
)(, ) # (, ) * * ( (, )
" (, ) $ , ≔ 0 ( ) , * , * ′
媒質でーす ボリュームレンダリング方程式から追跡すべきレイの方向が2つある事がわかる。 効率的にそれらを分割して評価する方法を学ぼう。
まずは散乱点のサンプリング まずレイを飛ばす
まずは散乱点のサンプリング もういっちょレイ飛ばす
まずは散乱点のサンプリング 境界情報が得られる
まずは散乱点のサンプリング = 0 = !"#$%& ← 距離サンプリング
まずは散乱点のサンプリング = 0 = !"#$%& 012345 ≤ の時 散乱
まずは散乱点のサンプリング = 0 = !"#$%& 012345 > の時
まずは散乱点のサンプリング = 0 = 012345 > の時 透過
= 距離サンプリングは透過率(0, )に比例するpdfを用いる ! = " 0, = " #$/"
cdf計算して逆関数を求めると. . . = − log(1 − ) & 一様媒質だからこそ逆関数が計算できることに注意
散乱方向のサンプリングは前に言った通り位相関数を用いる。 例えば、HG位相関数ならば 確率密度関数は次のようになる + = () ∵ 1 6 78
1 6 8 sin = 1 = cos でーす
ここまで来れば、モンテカルロパストレーシングの推定値を計算する事ができる (ここでは簡単のために発光を0と仮定している) ) , ) = 0, = , )
+ 1 6 =>1? 0, 0 1 @ 3 ), A , A A ) , ) = 0 0, 3 ) , A (, A ) B(A)C() (0, )= (, ) ) ( > ) ≤ >
) , ) = 0 3 ) , A 0,
C B A (, A) = 0 3 6 , A (0, ) =(0, ) ∗ 3 ), A = 0 = (, A) (0, ) ( > ) =(, )) = (0, ) (0, ) =(, )) = 1.0 ( ≤ ) ( > ) 消散係数が複数のカラーチャンネルからなる場合は、 MISなどで計算するのでPDFの部分と綺麗に割り切れないことに注意。
ボリュームレンダリング方程式を経路積分形式に直すと、画素の値が各経路長の寄与の和で表せる(証明は省略) 経路長kでの被積分関数は次のように計算される。BSDFと位相関数が抽象化されている。 https://cs.dartmouth.edu/~wjarosz/publications/novak18monte.html
図のように光源が媒質中にある時に、距離サンプリングすることを考える 遠い! Equiangular Sampling
透過率に比例した距離サンプリングは光源から遠く、寄与が小さい 遠い! ' ∝ (0, ) Equiangular Sampling
Equiangular Sampling
そこで、光源上の一点を基準とした等角分布なるものを考える Equiangular Sampling
光源に近い点からサンプリングできるため高輝度の寄与から優先的に蓄積できる ' ∝ 1 ( − % ) % (
Equiangular Sampling
Equiangular Sampling