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
790
玉虫色シェーダーのススメ
sakanaman
0
630
Featured
See All Featured
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
6.8k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
38
1.8k
Imperfection Machines: The Place of Print at Facebook
scottboms
264
13k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
109
49k
The Power of CSS Pseudo Elements
geoffreycrofte
73
5.3k
Building Applications with DynamoDB
mza
90
6.1k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
27
830
The Illustrated Children's Guide to Kubernetes
chrisshort
48
48k
GitHub's CSS Performance
jonrohan
1030
460k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
250
21k
Large-scale JavaScript Application Architecture
addyosmani
510
110k
Mobile First: as difficult as doing things right
swwweet
222
8.9k
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