PBRT-V3体渲染笔记
一 基本原理整理
影響radiance在參與介質(zhì)分布的三個(gè)過(guò)程:
Absortion,Emission,Scattering(分為out-scattering和in-scattering)。
Absortion
吸收系數(shù)為σa,入射radiance Li經(jīng)過(guò)距離dt,吸收后的出射radiance Lo的關(guān)系如下:
? ? ? (1)
對(duì)上式解微分方程得到一個(gè)值,表示經(jīng)過(guò)d距離后的剩余比例:
? ? ?(2)
Emission
這個(gè)沒(méi)什么好說(shuō)的,直接上公式:
Out-Scattering
out-scattering也是radiance衰減的一個(gè)表現(xiàn),散射系數(shù)為σt,方程如下:
? ? ?(3)
該方程和方程(1)完全一樣,除了系數(shù)σ,因此Absortion和Out-Scattering合并可以得到一個(gè)衰減系數(shù)σt。
所以整體的transmittance的微分方程解為:
? ? (4)
其中d = |p - p'|。
Transmittance的意義是:radiance經(jīng)過(guò)距離d后,得到的fraction。
公式(4)中的指數(shù)部分的負(fù)數(shù),叫兩點(diǎn)之間的optical thickness:
In-scattering
In-scattering能增加出射的radiance,那么在確定一個(gè)出射方向時(shí),有多少radiance能散射到出射方向呢?
這里引入一個(gè)phase function,描述一個(gè)點(diǎn)在某個(gè)方向的出射分布,可以理解成是每個(gè)出射方向的概率密度函數(shù),假設(shè)出射方向是ω,入射方向是ω',那么有如下的公式:
in-scattering得到的radiance是:
? ? ? ? (5)
假設(shè)p點(diǎn)上的自發(fā)光是Le,那么p點(diǎn)增加的radiance可以表示如下:
? ? ?(6)
傳輸方程
傳輸方程描述的某個(gè)點(diǎn)延某條路徑的radiance。
現(xiàn)在只考慮從一個(gè)surface的p0點(diǎn)反射出來(lái)的radiance的某一點(diǎn)p的傳輸方程:
公式如下:
? ? ? ? ? ? (7)
公式(7)的第二項(xiàng)表示路徑里所有點(diǎn)的In-Scattering貢獻(xiàn)。
回顧LTE方程,需要把bsdf函數(shù),積分域,幾何函數(shù)全部做一個(gè)針對(duì)參與介質(zhì)的修改。
二 實(shí)現(xiàn)
采樣t
提到采樣,那就要問(wèn),到底我們要采樣什么?
和普通的LTE不一樣,LTE采樣的是BSDF的方向,而帶參與介質(zhì)的渲染,還需要采樣路徑方向上的點(diǎn),用于估計(jì)該路徑的radiance貢獻(xiàn)。
這里有個(gè)先決條件,就是射線是一定會(huì)和surface相交的,即射線的tMax一定不是無(wú)窮大,該射線會(huì)經(jīng)過(guò)參與介質(zhì)medium。
假設(shè)surface的點(diǎn)是p,射線方向是-ω,那么射線方向的點(diǎn)的概率是pt(t),改點(diǎn)的位置是p + tω。
那么取得surface上的頂點(diǎn)的概率是:
? ? ? ? ? ? (8)
有了概率,就可以對(duì)貢獻(xiàn)做估計(jì),β是估計(jì)出來(lái)的throughput。
surface上一點(diǎn)的throughput估計(jì):
medium上一點(diǎn)的throughput估計(jì):
這里為什么要加上σs?Out-Scattering的衰減要考慮在內(nèi)。
到目前為止,我們已經(jīng)根據(jù)采樣點(diǎn)和該點(diǎn)的概率密度估計(jì)出Throughput,接下來(lái)我們還需要估計(jì)光照的radiance。
也是分兩種情況:
如果采樣點(diǎn)是surface,直接采樣bsdf進(jìn)行估計(jì)。
如果采樣點(diǎn)是medium,那么我們要估計(jì)的是公式(7)的第二項(xiàng)的積分(自發(fā)光忽略):
根據(jù)重要性采樣,取一個(gè)pdf形狀接近Tr或Ls的,pbrt中用Tr作為pdf的分布。
反函數(shù)法求t:
當(dāng)t < tMax的時(shí)候,那么pdf函數(shù)是:
當(dāng)t > tMax時(shí),說(shuō)明采樣到的點(diǎn)是surface上的交點(diǎn),這時(shí)的pdf是:
由于pdf是一個(gè)float值,而σt,Tr都是Spetrum,所以需要隨機(jī)采樣一個(gè)Spetrum的channel,然后按上述反函數(shù)法求t,
然后在把channel的pdf加取來(lái)取平均值。
接下來(lái)就是要采樣Li了,類似bsdf,如果是介質(zhì)中一點(diǎn),通過(guò)phase函數(shù)采樣入射光。
采樣Phase function
均勻介質(zhì)的phase函數(shù)用的是Henyey–Greenstein,公式如下:
對(duì)phase function做積分:
所以概率密度函數(shù)是:
根據(jù)概率密度函數(shù)的轉(zhuǎn)換:p(θ, φ) = sinθp(ω)
邊際概率密度函數(shù)求p(θ)
條件概率公式:
p(φ | θ) = p(θ, φ) / p(θ) = 1 / 2π
反函數(shù)求φ:φ = 2πξ1。
下面求p(θ)的CDF,過(guò)程很復(fù)雜,需要借工具來(lái)求,https://www.symbolab.com/solver/calculus-calculator
最后可以得到pbrt的結(jié)論(g ≠ 0):
g = 0時(shí),pHG = 1/4π,概率密度按如下算:
θ的CDF如下:
所以這個(gè)時(shí)候有:
整個(gè)采樣過(guò)程完畢。
總結(jié)
以上是生活随笔為你收集整理的PBRT-V3体渲染笔记的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 用excel做线性规划
- 下一篇: 雷达人体存在感应器方案,智能物联网感知技