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