PBRT学习笔记5 --体渲染

Volume Rendering

Volume Scattering Processes(体积散射过程)

现实中,在有介质参与的环境中,影响辐射分布的三个主要物理过程为吸收,发射和散射

  • 吸收:光能转化为其他能量
  • 发射:发光粒子将光能添加到环境中
  • 散射:由于粒子间的碰撞,光能从一个方向散射到其他方向

Absorption(吸收)

吸收效果越强,物体会有更黑暗的外观,边界更加明显,显得更加厚重,相反的,吸收效果弱的物体给人柔和的感觉

吸收由吸收系数(absorption coefficient) σ a \sigma_a σa表示,这是光在介质中传播每单位距离被吸收的概率密度,它的单位是 m − 1 m^{-1} m1 σ a ( p , ω ) \sigma_a(p,\omega) σa(p,ω)是关于位置与立体角的函数。

仅考虑吸收的影响,当 radiance L i ( p , − ω ) L_i(p,-\omega) Li(p,ω)到达点 p,设这个点在吸收后的出 radiance L o ( p , ω ) L_o(p,\omega) Lo(p,ω),这个 radiance 变换由关于光线长度 d t \mathrm{d}t dt(从入射位置到出射位置的距离)的微分方程给出:

d L o ( p , ω ) = L o ( p , ω ) − L i ( p , − ω ) = − σ a ( p , ω ) L i ( p , − ω )   d t \begin{equation} \mathrm{d}L_o(p,\omega)=L_o(p,\omega)-L_i(p,-\omega)=-\sigma_a(p,\omega)L_i(p,-\omega)\,\mathrm{d}t \end{equation} dLo(p,ω)=Lo(p,ω)Li(p,ω)=σa(p,ω)Li(p,ω)dt

其中 L i L_i Li的位置实际上为 p + ω d t p+\omega\mathrm{d}t p+ωdt

这说明沿光线方向 radiance 的减小差异 d L o ( p , ω ) \mathrm{d}L_o(p,\omega) dLo(p,ω)是初始 radiance 的线性函数(这基于辐射度量学的一个假设:介质吸收 radiance 的比例不会根据光线 radiance 量而改变,而是有一个固定比例)
在这里插入图片描述

Emit(发射)

介质的发射将别的能量转化为光能,与吸收类似,发射对介质中 radiance 的变换也与 σ a \sigma_a σa相关,仅考虑发射的影响,有:

d L o ( p , ω ) = σ a ( p , ω ) L e ( p , ω )   d t \begin{equation} \mathrm{d}L_o(p,\omega)=\sigma_a(p,\omega)L_e(p,\omega)\,\mathrm{d}t \end{equation} dLo(p,ω)=σa(p,ω)Le(p,ω)dt

这个方程不依赖于入射光假设,仅依赖于线性函数假设。
在这里插入图片描述

Out-scattering(外散射)

光在参与介质中的第三个基本相互作用是散射。当射线穿过介质时,它可能与粒子碰撞并向不同方向散射,这对光束携带的总 radiance 有两个影响:

  1. 减少了微分区域出射光线的 radiance,因为其中一些被偏转到不同的方向。out-scattering
  2. 别的方向的光线散射偏转到出射光线方向,增加 radiance。in-scattering

将 out-scattering 和 in-scattering 相加得到的是真实的散射 real scattering,这有别于零散射 null scattering。

介质的散射效应由散射系数(scattering coefficient) σ s \sigma_s σs表示,与吸收类似,仅考虑外散射,有微分方程:

d L o ( p , ω ) = − σ s ( p , ω ) L i ( p , − ω )   d t \begin{equation} \mathrm{d}L_o(p,\omega)=-\sigma_s(p,\omega)L_i(p,-\omega)\,\mathrm{d}t \end{equation} dLo(p,ω)=σs(p,ω)Li(p,ω)dt

在这里插入图片描述

In-Scattering(内散射)

相较于外散射,内散射将其他方向的 radiance 散射到所求方向,由此增加了出射光的 radiance。

在这里,先引入相位函数 phase function p ( ω , ω ′ ) p(\omega, \omega') p(ω,ω)描述散射辐射的角分布。相位函数 p p p,有归一化约束: ∫ S 2 p ( ω , ω ′ )   d ω ′ = 1 \int_{S^2}p(\omega,\omega')\,\mathrm{d}\omega'=1 S2p(ω,ω)dω=1,此约束意味着相位函数是特定方向上散射的概率分布。

由此,通过散射系数 σ s \sigma_s σs和相位函数,我们可以对入射方向积分得到微分方程:

d L o ( p , ω ) = σ s ( p , ω ) ∫ S 2 p ( p , ω i , ω ) L i ( p , ω i )   d ω i \begin{equation} \mathrm{d}L_o(p,\omega)={\sigma_s(p,\omega)}\int_{S^2}p(p,\omega_i,\omega)L_i(p,\omega_i)\,\mathrm{d}\omega_i \end{equation} dLo(p,ω)=σs(p,ω)S2p(p,ωi,ω)Li(p,ωi)dωi
在这里插入图片描述

Radiative Transfer Equation(RTE)

由上文可知,出射方向的 radiance 总量需要考虑吸收,发射,内散射,外散射四项,其中,吸收和外散射导致了 radiance 总量的减少发射和内散射导致了 radiance 总量的增加

对于吸收和外散射,我们可以将两者合并的影响称为衰减(attenuation),设衰减系数 attenuation coefficient 为:

σ t ( p , ω ) = σ a ( p , ω ) + σ s ( p , ω ) \begin{equation} \sigma_t(p,\omega)=\sigma_a(p,\omega)+\sigma_s(p,\omega) \end{equation} σt(p,ω)=σa(p,ω)+σs(p,ω)

那么总衰减量即为:

d L o ( p , ω ) = − σ t ( p , ω ) L i ( p , − ω )   d t \begin{equation} \mathrm{d}L_o(p,\omega)=-\sigma_t(p,\omega)L_i(p,-\omega)\,\mathrm{d}t \end{equation} dLo(p,ω)=σt(p,ω)Li(p,ω)dt
——————
我们将单次散射的反照率single-scattering albedo定义为 ρ ( p , ω ) = σ s ( p , ω ) σ t ( p , ω ) \rho(p,\omega)=\frac{\sigma_s(p,\omega)}{\sigma_t(p,\omega)} ρ(p,ω)=σt(p,ω)σs(p,ω)

在辐射度量学的假设下,单次散射反照率在0-1之间,它代表了在散射事件发生时散射的比例

此外,我们还用平均自由路径(mean free path) 1 / σ t ( p , ω ) 1/\sigma_t(p,\omega) 1/σt(p,ω)代表光线在衰减系数为 σ t ( p , ω ) \sigma_t(p,\omega) σt(p,ω)的介质中,在与其他粒子相互作用前能前进的平均距离(衰减系数的单位为 m − 1 m^{-1} m1)。
——————

对于发射和内散射,我们也可以同时考虑,有总增加量

d L o ( p , ω ) = σ a ( p , ω ) L e ( p , ω ) + σ s ( p , ω ) ∫ S 2 p ( p , ω i , ω ) L i ( p , ω i )   d ω i \begin{equation} \mathrm{d}L_o(p,\omega)={\sigma_a(p,\omega)}L_e(p,\omega)+{\sigma_s(p,\omega)}\int_{S^2}p(p,\omega_i,\omega)L_i(p,\omega_i)\,\mathrm{d}\omega_i \end{equation} dLo(p,ω)=σa(p,ω)Le(p,ω)+σs(p,ω)S2p(p,ωi,ω)Li(p,ωi)dωi

为方便公式书写,我们认为增加的总 radiance 由源函数 L s L_s Ls给出,有:

L s ( p , ω ) = σ a ( p , ω ) σ t ( p , ω ) L e ( p , ω ) + σ s ( p , ω ) σ t ( p , ω ) ∫ S 2 p ( p , ω i , ω ) L i ( p , ω i )   d ω i \begin{equation} L_s(p,\omega)=\frac{\sigma_a(p,\omega)}{\sigma_t(p,\omega)}L_e(p,\omega)+\frac{\sigma_s(p,\omega)}{\sigma_t(p,\omega)}\int_{S^2}p(p,\omega_i,\omega)L_i(p,\omega_i)\,\mathrm{d}\omega_i \end{equation} Ls(p,ω)=σt(p,ω)σa(p,ω)Le(p,ω)+σt(p,ω)σs(p,ω)S2p(p,ωi,ω)Li(p,ωi)dωi

那么总增加量即可改写成:

d L o ( p , ω ) = σ t ( p , ω ) L s ( p , ω )   d t \begin{equation} \mathrm{d}L_o(p,\omega)=\sigma_t(p,\omega)L_s(p,\omega)\,\mathrm{d}t \end{equation} dLo(p,ω)=σt(p,ω)Ls(p,ω)dt

由此,我们得到了总 radiance 的变化量,这个公式也被称为 Radiative Transfer Equation:

d L o ( p , ω ) = − σ t ( p , ω ) L i ( p , − ω )   d t + σ t ( p , ω ) L s ( p , ω )   d t \begin{equation} \mathrm{d}L_o(p,\omega)=-\sigma_t(p,\omega)L_i(p,-\omega)\,\mathrm{d}t+\sigma_t(p,\omega)L_s(p,\omega)\,\mathrm{d}t \end{equation} dLo(p,ω)=σt(p,ω)Li(p,ω)dt+σt(p,ω)Ls(p,ω)dt

透过率(Transmittance)

Definition

前文描述的散射过程都是根据其在空间点上的局部效应来指定的,但在 rendering 中,我们感兴趣的是它们对沿射线的 radiance 的总影响,即我们需要得到光线上两点间的 radiance 减少,这样就有利于计算从一个光源经过介质到一个物体表面的 radiance 的衰减量。

仅考虑衰减量时,给定衰减系数 σ t \sigma_t σt,radiance 的衰减随距离增长的变化率为:

d L o ( p , ω ) d t = − σ t ( p , ω ) L i ( p , − ω ) \begin{equation} \frac{\mathrm{d}L_o(p,\omega)}{\mathrm{d}t}=-\sigma_t(p,\omega)L_i(p,-\omega) \end{equation} dtdLo(p,ω)=σt(p,ω)Li(p,ω)

方程中的 d t \mathrm{d}t dt为经过的微小距离。

通过这个方程以及 Beer–Lambert law 可以得出两点间 radiance 的变化,我们将其称之为光线透过率 beam transmittance T r T_r Tr,有:

T r ( p → p ′ ) = e − ∫ 0 d σ t ( p + t ω , ω )   d t \begin{equation} T_r(p\to{p'})=e^{-\int_0^d{\sigma_t(p+t\omega, \omega)\,\mathrm{d}t}} \end{equation} Tr(pp)=e0dσt(p+tω,ω)dt

其中, d = ∣ ∣ p − p ′ ∣ ∣ d=||p-p'|| d=∣∣pp∣∣,为 p 和 p’两点之间的距离。

因此若一个表面点 p 朝方向 ω \omega ω的出射 radiance 为 L o ( p , ω ) L_o(p,\omega) Lo(p,ω),点 p’接收到的朝向 − ω -\omega ω方向的入射 radiance 为:

L i ( p ′ , − ω ) = T r ( p → p ′ ) L o ( p , ω ) \begin{equation} L_i(p',-\omega)= T_r(p\to{p'})L_o(p,\omega) \end{equation} Li(p,ω)=Tr(pp)Lo(p,ω)
在这里插入图片描述

透过率有以下性质

  1. 每个点到自己的透过率 T r ( p → p ) = 1 T_r(p\to{p})=1 Tr(pp)=1

  2. σ t = 0 \sigma_t=0 σt=0的真空中,所有点 p’的透过率都为 T r ( p → p ′ ) = 1 T_r(p\to{p'})=1 Tr(pp)=1

  3. 若介质的衰减系数在方向上对称, σ t ( ω ) = σ t ( − ω ) \sigma_t(\omega)=\sigma_t(-\omega) σt(ω)=σt(ω)或者说衰减系数只与位置相关,则透过率也有对称性 T r ( p → p ′ ) = T r ( p ′ → p ) T_r(p\to{p'})=T_r(p'\to{p}) Tr(pp)=Tr(pp)

  4. 透过率是 multiplicative 的,有 T r ( p → p ′ ′ ) = T r ( p → p ′ ) T r ( p ′ → p ′ ′ ) T_r(p\to{p''})=T_r(p\to{p'})T_r(p'\to{p''}) Tr(pp′′)=Tr(pp)Tr(pp′′)
    在这里插入图片描述

  5. 在均匀介质中, σ t \sigma_t σt为常数,有 T r ( p → p ′ ) = e − σ t d T_r(p\to{p'})=e^{-\sigma_td} Tr(pp)=eσtd

同时, T r T_r Tr中的负指数部分被称为光学厚度 optical thickness,用符号 τ \tau τ表示:

τ ( p → p ′ ) = ∫ 0 d σ d ( p + t ω , ω )   d t \tau(p\to{p'})=\int_0^d\sigma_d(p+t\omega,\omega)\,\mathrm{d}t τ(pp)=0dσd(p+tω,ω)dt

蒙特卡洛计算透过率

在上文中,我们可以看到光线透过率 T r T_r Tr中仅存在一个关于位置 t 的一维积分,因此有了 t 的分布函数后,就可以用蒙特卡洛法进行无偏估计,有:

e − ∫ 0 d σ t ( p + t ω , ω )   d t ≈ e − [ σ t ( p + t ′ ω , ω ) p ( t ′ ) ] e^{-\int_0^d{\sigma_t(p+t\omega, \omega)\,\mathrm{d}t}}\approx{}e^{-[\frac{\sigma_t(p+t'\omega, \omega)}{p(t')}]} e0dσt(p+tω,ω)dte[p(t)σt(p+tω,ω)]

但我们在估计时,由于 E [ e − X ] ≠ e − E [ X ] E[e^{-X}]\neq{}e^{-E[X]} E[eX]=eE[X],假如直接使用蒙特卡洛会低估最终值(此现象可以用_Jensen’s inequality_以及 e − x e^{-x} ex是凸函数来解释)

此误差随着透过率估计的误差的减小而减小,很多应用中这个误差都是可接受的(eg. 通过黎曼积分,再计算透过率)。但 pbrt 使用一种 alternative 的无差估计。

根据方程 d L o ( p , ω ) d t = − σ t ( p , ω ) L i ( p , − ω ) \frac{\mathrm{d}L_o(p,\omega)}{\mathrm{d}t}=-\sigma_t(p,\omega)L_i(p,-\omega) dtdLo(p,ω)=σt(p,ω)Li(p,ω),设 σ t \sigma_t σt与方向无关,可以得到积分方程:

∫ 0 d d L ( p + t ω ) d t d t = L ( p ′ ) − L ( p ) = ∫ 0 d − σ t ( p + t ω ) L ( p + t ω ) d t \int_0^d\frac{\mathrm{d}L(p+t\omega)}{\mathrm{d}t}\mathrm{d}t=L(p')-L(p)=\int_0^d-\sigma_t(p+t\omega)L(p+t\omega)\mathrm{d}t 0ddtdL(p+tω)dt=L(p)L(p)=0dσt(p+tω)L(p+tω)dt

由于 T r ( p → p ′ ) = L ( p ′ ) / L ( p ) T_r(p\to{p'})=L(p')/L(p) Tr(pp)=L(p)/L(p),带入方程有:

T r ( p → p ′ ) = 1 − ∫ 0 d σ t ( p + t ω ) T r ( p + t ω → p ′ )   d t T_r(p\to{p'})=1-\int_0^d\sigma_t(p+t\omega)T_r(p+t\omega\to{p'})\,\mathrm{d}t Tr(pp)=10dσt(p+tω)Tr(p+tωp)dt

由这个方程可以看出,透过率是根据积分递归定义的,它似乎将问题复杂化了,但这样可以使得蒙特卡洛积分得到透射率的无偏估计成为可能。但这个被积函数很难采样,它在实践中的估计有很高的方差,下一章讲解如何通过一种公式进行采样。

零散射(Null Scattering)

零散射可以解释为引入了一种额外类型的散射,这种散射不对应于任何类型的物理散射过程,但被指定为对光的分布没有影响。由此,零散射可以将非均匀介质视为均匀介质,从而更容易将采样算法应用于非均匀介质。

零散射系数由一个常数 σ m a j \sigma_{maj} σmaj定义,类似于将下左图不均匀黑色介质用浅色介质补充完整,使得整体呈现均匀密度,如右图所示。
在这里插入图片描述

零散射定义了一个零散射系数 null-scattering coefficient σ n \sigma_n σn。类似于其他散射系数,它代表在介质中传播的每单位距离零散射事件的概率。同时,引入一个大于 σ a + σ s \sigma_a+\sigma_s σa+σs的常数 majorant σ m a j \sigma_{maj} σmaj,将 σ n \sigma_n σn定义为:

σ n ( p , ω ) = σ m a j − σ t ( p , ω ) \sigma_n(p,\omega)=\sigma_{maj}-\sigma_t(p,\omega) σn(p,ω)=σmajσt(p,ω)

由此可以得出,所有散射系数的和为 σ a + σ s + σ n = σ m a j \sigma_a+\sigma_s+\sigma_n=\sigma_{maj} σa+σs+σn=σmaj,由此,整个介质都具有均匀的散射系数。

根据此定义,可将 radiance 衰减方程改写为:

d L o ( p , ω ) d t = − ( σ m a j − σ n ( p , ω ) ) L i ( p , − ω ) \frac{\mathrm{d}L_o(p,\omega)}{\mathrm{d}t}=-(\sigma_{maj}-\sigma_n(p,\omega))L_i(p,-\omega) dtdLo(p,ω)=(σmajσn(p,ω))Li(p,ω)

将其构建成与上文透过率的积分递归方程一致的方程,有:

T r ( p → p ′ ) = e − σ m a j d + ∫ 0 d e − σ m a j t σ n ( p + t ω ) T r ( p + t ω → p ′ )   d t T_r(p\to{p'})=e^{-\sigma_{maj}d}+\int_0^de^{-\sigma_{maj}t}\sigma_n(p+t\omega)T_r(p+t\omega\to{}p')\,\mathrm{d}t Tr(pp)=eσmajd+0deσmajtσn(p+tω)Tr(p+tωp)dt

对于一个均匀介质,方程中的第二项积分会消除,第一项对应 beer’s law。

对于一个非均匀介质,方程的第一项可以被视为计算真实透射率的低估值,然后用积分计算其余部分。

相位函数

如上文所述,相位函数是特定方向上散射的概率分布,相位函数是关于入射角和出射角的函数 p ( ω i , ω o ) p(\omega_i, \omega_o) p(ωi,ωo)

它基于的假设是_粒子间的距离几倍大于它们的半径,我们即可以忽略粒子间的相互作用_。

现实中大部分材质的相位函数值只与入射角和出射角间的夹角 θ \theta θ相关,因此相位函数为 1 维函数,可写作 p ( cos ⁡ θ ) p(\cos\theta) p(cosθ),这些介质被称为是各向同性的或对称的。

与之相对的各项异性的介质的相位函数则是一个 4 维函数,例如由一致方向纤维组成的晶体或介质。

前文所述的各向同性和各向异性都是针对介质而言的,而各项同性的相位函数则专指所有方向 p ( ω i , ω o ) = 1 4 π p(\omega_i, \omega_o)=\frac1{4\pi} p(ωi,ωo)=4π1的相位函数,其他都是各向异性的(因此可能会有一个各项同性的介质有一个各向异性的相位函数)。

Henyey–Greenstein 相位函数

一个广泛使用的相位函数是由 Henyey 和 Greenstein 创造的(1941)。这个相位函数经过专门设计,易于拟合测量的散射数据,并使用单个参数 g g g(各向异性参数)控制散射光分布。

p H G ( cos ⁡ θ ) = 1 4 π 1 − g 2 ( 1 + g 2 + 2 g ( cos ⁡ θ ) ) 3 / 2 \begin{equation} p_{HG}(\cos\theta)=\frac1{4\pi}\frac{1-g^2}{(1+g^2+2g(\cos\theta))^{3/2}} \end{equation} pHG(cosθ)=4π1(1+g2+2g(cosθ))3/21g2

其中参数 g g g有明确的物理意义,它是给定角度 ω \omega ω ω ′ \omega' ω的相位函数与夹角余弦的积分,也被称为平均余弦(mean cosine)。

g = ∫ S 2 p ( − ω , ω ′ ) ( ω ⋅ ω ′ )   d ω ′ = 2 π ∫ 0 π p ( − cos ⁡ θ ) cos ⁡ θ sin ⁡ θ   d θ g=\int_{S^2}p(-\omega,\omega')(\omega\cdot\omega')\,\mathrm{d}\omega'=2\pi\int_0^\pi{p(-\cos\theta)\cos\theta\sin\theta\,\mathrm{d}\theta} g=S2p(ω,ω)(ωω)dω=2π0πp(cosθ)cosθsinθdθ

公式中的 ω \omega ω ω ′ \omega' ω都朝向外。当相位函数为各项同性时, g = 0 g=0 g=0;当前向散射大于后向散射时, g > 0 g>0 g>0;当后向散射大于前向散射时, g < 0 g<0 g<0

关于 Henyey–Greenstein 相位函数的采样与 PDF,PDF 非常容易理解,由于相位函数就是概率密度函数,所以 PDF 就为 p H G ( cos ⁡ θ , g ) p_{HG}(\cos\theta, g) pHG(cosθ,g)的函数值,重要的是如何通过随机数生成方向 ϕ \phi ϕ θ \theta θ。方位角直接均匀采样即可, p ( ϕ ) = 1 / ( 2 π ) p(\phi)=1/(2\pi) p(ϕ)=1/(2π),对于极角的采样,当 g ≠ 0 g\neq0 g=0时,可以通过函数 cos ⁡ θ = − 1 2 g ( 1 + g 2 − ( 1 − g 2 1 + g − 2 g ξ ) 2 ) \cos\theta=-\frac1{2g}(1+g^2-(\frac{1-g^2}{1+g-2g\xi})^2) cosθ=2g1(1+g2(1+g2gξ1g2)2)采样;反之可以使用 cos ⁡ θ = 1 − 2 ξ \cos\theta=1-2\xi cosθ=12ξ均匀采样。

传递方程(The Equation of Transfer)

由体积散射过程和透过率的概念我们可以了解到,如果我们假设场景中没有表面,那么光线就不会被阻挡,并且具有无限长的长度,传递方程的积分形式就为:

L i ( p , ω ) = ∫ 0 ∞ T r ( p ′ → p ) σ t ( p ′ , ω ) L s ( p ′ , − ω )   d t L_i(p,\omega)=\int_0^\infin{}T_r(p'\to{}p)\sigma_t(p',\omega)L_s(p',-\omega)\,\mathrm{d}t Li(p,ω)=0Tr(pp)σt(p,ω)Ls(p,ω)dt

这个方程的含义即是将光路上所有的出射 radiance 全部加起来,但由于中途会有损耗,所以还需乘上一个透过率。

更一般的,若入射光线的路径被一个反射或发光表面所阻挡,光线则不再需要积分无限距离,假设表面上的点为 p s p_s ps,则传递方程的积分形式就为:

L i ( p , ω ) = T r ( p s → p ) L o ( p s , − ω ) + ∫ 0 t T r ( p ′ → p ) σ t ( p ′ , ω ) L s ( p ′ , − ω )   d t ′ L_i(p,\omega)=T_r(p_s\to{}p)L_o(p_s,-\omega)+\int_0^t{}T_r(p'\to{}p)\sigma_t(p',\omega)L_s(p',-\omega)\,\mathrm{d}t' Li(p,ω)=Tr(psp)Lo(ps,ω)+0tTr(pp)σt(p,ω)Ls(p,ω)dt
在这里插入图片描述

引入零散射

若在原传递方程的基础上引入零散射,将介质的密度以固定的参数 σ m a j \sigma_{maj} σmaj表示,则可将传递方程的积分形式改为:

L i ( p , ω ) = T m a j ( p s → p ) L o ( p s , − ω ) + σ m a j ∫ 0 t T m a j ( p ′ → p ) L n ( p ′ , − ω )   d t ′ L_i(p,\omega)=T_{maj}(p_s\to{}p)L_o(p_s,-\omega)+\sigma_{maj}\int_0^t{}T_{maj}(p'\to{}p)L_n(p',-\omega)\,\mathrm{d}t' Li(p,ω)=Tmaj(psp)Lo(ps,ω)+σmaj0tTmaj(pp)Ln(p,ω)dt

其中, p ′ = p + t ′ ω p'=p+t'\omega p=p+tω不变,但引入了一个 T m a j T_{maj} Tmaj用于表示包含常规散射和零散射的主透过率(majorant transmittance),有 T m a j ( p ′ → p ) = e − ∫ 0 d ( σ t ( p + t ω , ω ) + σ n ( p + t ω ) )   d t = e − σ m a j d T_{maj}(p'\to{}p)=e^{-\int_0^d{(\sigma_t(p+t\omega, \omega)+\sigma_n(p+t\omega))\,\mathrm{d}t}}=e^{-\sigma_{maj}d} Tmaj(pp)=e0d(σt(p+tω,ω)+σn(p+tω))dt=eσmajd

同时还引入了一个零散射的源方程 L n L_n Ln,它在 L s L_s Ls的基础上加上了一个新的项:

L n ( p , ω ) = σ a ( p , ω ) σ m a j L e ( p , ω ) + σ s ( p , ω ) σ m a j ∫ S 2 p ( p , ω i , ω ) L i ( p , ω i )   d ω i + σ n ( p ) σ m a j L i ( p , ω ) L_n(p,\omega)=\frac{\sigma_a(p,\omega)}{\sigma_{maj}}L_e(p,\omega)+\frac{\sigma_s(p,\omega)}{\sigma_{maj}}\int_{S^2}p(p,\omega_i,\omega)L_i(p,\omega_i)\,\mathrm{d}\omega_i+\frac{\sigma_n(p)}{\sigma_{maj}}L_i(p,\omega) Ln(p,ω)=σmajσa(p,ω)Le(p,ω)+σmajσs(p,ω)S2p(p,ωi,ω)Li(p,ωi)dωi+σmajσn(p)Li(p,ω)

T m a j T_{maj} Tmaj由于引入了零散射,透过率始终会小于或等于真实透过率,传递方程中物体表面部分 T m a j L o T_{maj}L_o TmajLo可能会略小于真实值,但其也可以由 L n L_n Ln中给出的项来补足。

Reference

https://www.pbr-book.org/4ed/Volume_Scattering/Volume_Scattering_Processes

PS

本文主要是对PBRT内容的翻译总结,欢迎交流学习~
由于PBRT是一本讲解离线渲染,光追渲染的书,在讲解体渲染时除上文的概念外,还写了非常多实操时蒙特卡洛采样的做法,但由于笔者能力实在有限,无法完全理解相关内容,因此略过了这部分内容,如果有对此方面感兴趣的同学可自行查阅Reference中PBRT的原文~

  • 47
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值