浅谈表面反射——波动光学篇

Radiometric Definitions

首先让我们来回忆一下辐射度量学中关于irradianceradiance的定义:

我们在这里定义光源(source)在x-z平面,因此入射光就可以只用θi\theta_{i}θi来描述。dAs\mathrm{d}A_{s}dAs是表面积。定义dΦi\mathrm{d}\Phi_{i}dΦi是入射光在dAs\mathrm{d}A_{s}dAs上从θi\theta_{i}θi方向上来的能量。d2Φi\mathrm{d}_{}^{2}\Phi_{i}d2Φi是从(θr,ϕr)(\theta_{r},\phi_{r})(θr,ϕr)方向反射的能量。

那么我们就可以定义在表面上的irradianceirradianceirradiance

  1. Is=dΦidAsI_{s} = \frac{\mathrm{d}\Phi_{i}}{\mathrm{d}A_{s}}Is=dAsdΦi

可以理解为单位面积上所吸收的能量。是一个单位量。

对于从(θr,ϕr)(\theta_{r},\phi_{r})(θr,ϕr)方向反射出去的radianceradianceradiance,我们可以定义为:

  1. Lr=d2ΦidωrdAscosθiL_{r} = \frac{\mathrm{d}_{}^{2}\Phi_{i}}{\mathrm{d}\omega_{r}\mathrm{d}A_{s}cos\theta_{i}}Lr=dωrdAscosθid2Φi

dωr\mathrm{d}\omega_{r}dωr为出射方向的立体角。这也是一个单位量,即从单位面积上,立体角方向,所发出的能量。

如果对于为什么radianceradianceradiancedAscosθi\mathrm{d}A_{s}cos\theta_{i}dAscosθi会有cosθicos\theta_{i}cosθi项不清楚的话,可以想成irradianceirradianceirradiance是因为我们从接收者的角度去看,而radianceradianceradiance是从发送者的角度去看,那么对于发射出的能量的有效面积自然是对于θi\theta_{i}θi方向的投影面积,因为我们想要的一种能够描述的度量量。

好了,我们已经清楚了irradianceirradianceirradianceradianceradianceradiance的定义之后,那么BRDFBRDFBRDF我们可以定义为:

  1. fr=IsLrf_{r} = \frac{I_{s}}{L_{r} }fr=LrIs

即入射的irradianceirradianceirradiance除以出射的radianceradianceradiance

表面模型

这里,我们将了解两种表面模型的细节,和解释粗糙度与反射之间的关系。

高度分布模型

对于一个表面来说,一般是不可能绝对光滑的,即表面上有着微小的高度变化,对于这样的变化,我们可以用一个高度的概率分布来描述。(这里是假设了一种高度概论分布)

  1. ph(h)=12πσhe−h22σh2p_{h}(h) =\frac{1}{\sqrt{2\pi}\sigma_{h}}e_{}^{-\frac{h_{}^{2}}{2\sigma_{h}^{2}}}ph(h)=2πσh1e2σh2h2

σh\sigma_{h}σh是关于hhh的均方根,不一样的表面,描述模型也不一样。但这种描述分布不能告诉我们表面上山谷和山丘的距离。

这种函数是关于位置(x,y)(x,y)(x,y)的分布。

这种函数仅仅能描述一种概论分布,但对于两种有着同样的概论分布,但有可能实际表面有很大不同,这就存在着巨大问题,那么我们就引入一种自相关系数C(τ)C(\tau)C(τ)来区别这两种表面。
在这里插入图片描述
τ\tauτ决定了在表面上两个随机的高度的距离。TTT是相关距离。
(a)(a)a的相关距离就小于(b)(b)b图。自此,从高度来建模,需要至少两个参数才能描述一种表面。

  1. C(τ)=e−τ2T2C(\tau) = e_{}^{-\frac{\tau_{}^{2}}{T_{}^{2}}}C(τ)=eT2τ2

坡度(Slope)分布模型

这里就引入了我们熟悉的微表面模型,我们假设表面是由无数个微小完美镜面组成。

每一个微表面都有着自己的法线方向,同时与表面法线有着一个夹角α\alphaα。那么我们就可以对参数α\alphaα进行建模,如果表面是各项同性的(isotropic),那么参数α\alphaα是关于法线旋转对称的,例如,我们假设平均值<α>=0<\alpha> = 0<α>=0和标准差σα\sigma_{\alpha}σα:

  1. p(α)=12πσαe−α22σα2p(\alpha) = \frac{1}{\sqrt{2\pi}\sigma_{\alpha}}e^{-\frac{\alpha^{2}}{2\sigma_{\alpha}^{2}}}p(α)=2πσα1e2σα2α2

表面模型就可以被一个单一参数σα\sigma_{\alpha}σα所决定,不需要像高度描述所需要两个参数。
对于σα\sigma_{\alpha}σα值比较大的常用来建模粗糙表面。对于散射光被发现依赖于表面的微表面坡度分布而不是高度分布。虽然对于高度分布模型来说,微表面法线分布模型的理解比较模糊,但可以直接使用在表面反射中。
微表面法线分布与slope分布在这里指代同一种分布,因为微表面法线与表面法线的夹角就是slope,α\alphaα

粗糙表面 (Rough Surface)

这里我们将解释什么是粗糙度,当了解了粗糙度,对于光滑表面来说就是粗糙度比较小的情况。

表面反射理论是这么定义粗糙度的:粗糙度是是关于表面不规则度,入射光波长和出射角度有关。对于给定入射光波长,粗糙表面将入射光散射到不同的角度。如果表面不规则度小于入射波长,那么将有一部分入射光将被反射到单一方向形成高光(specularly)。换句话说,如果表面的不规则度大于入射波长,那么入射光将被散射到任意方向。也就是说,一个表面所表现出来的粗糙质感是与入射光的波长和表面的不规则度有关。

对于入射光1和2,以相同的β\betaβ角度入射到表面,假设每个微表面是绝对镜面反射。这里假设出射光垂直于source表面,反射光垂直于detector表面(请回忆radiance和irradiance)。
那么对于射线1和射线2的光传播路程是不相等的,我们将射线2等价于射线3以便于分析路程差。
这里我们定义表面高度HHH。那么路程差△d\bigtriangleup dd将可以通过射线1和射线3计算可得:

  1. △d=2Hsinβ\bigtriangleup d = 2Hsin\betad=2Hsinβ.

这从图5可以很简单的分析得出。
我们定义入射光波长为λ\lambdaλ。那么对于delector面接收到的反射光的相位(phase)差就可以被定义为(似乎是高中物理光学公式):

  1. △Ω=4πHsinβλ\bigtriangleup \Omega = \frac{4\pi Hsin\beta}{\lambda}Ω=λ4πHsinβ
    △Ω=2πλ△d\bigtriangleup \Omega = \frac{2\pi }{\lambda} \bigtriangleup dΩ=λ2πd也许这个比较眼熟…

△Ω\bigtriangleup \OmegaΩ非常小的时候,接收平面(delector)所从两条射线接受到的能量是非常接近的,可以认为近似相等,那么平面所接受到的能量就可以对两条射线所携带的能量进行求和,这种情况反射光将形成高光。
如果相位差等于π\piπ的时候,那么这两条光线将会相互抵消,即高中我们所学的波的相消现象。那么能量去哪了?根据能量守恒定律来说,能量不会凭空消失,也不会突然增多。如果能量没有沿着反射方向传播,那么只会分布在其他任意方向。
因此,我们似乎就知道了两个规律:

  • △Ω\bigtriangleup \OmegaΩ = 0的时候,表面反射形成高光(specular),表现出光滑的性质。(smooth)
  • △Ω\bigtriangleup \OmegaΩ = π\piπ的时候,表面将散射入射光,表现出粗糙表面的特性。(rough)

那么我们是不是可以找到定义光滑和粗糙表面的一个界限呢? 是的,通过Raleigh criterion ,我们选择π2\frac{\pi}{2}2π当作定义粗糙表面的一个阈值。那么我们就可以得出HHH的取值范围:

  1. H>λ8sinβH > \frac{\lambda}{8sin\beta}H>8sinβλ

在一些paper里面,定义σh>>λ\sigma_{h} >> \lambdaσh>>λ,即高度的方差远大于入射光的波长的时候,将表面定义为粗糙表面。事实上,我们讨论这些仅仅是为了学习对于粗糙表面的定义与学习表面反射

反射模型

在这里我们将去讨论几何光线和波动光学。

  • wave optics 波动光学,基于电磁波学说以及Maxwell 方程来学习光传播。
  • 几何光学,我们假设入射光的波长小于表面的不规则度来简化光传输中的难题。

好了,做好准备了吗? 我们将从波动光学开始入手,来看看入射光的能量到底是怎么算出来的!

Physical(Wave) Optics Model

光是什么呢?光是一种电磁波现象。但由于人们认识到这个问题其实很晚,所以光学就被分成了不同的领域,在我们学习粗糙和光滑表面是如何散射入射光之前,让我们先来回顾一下一些学说吧!

电磁波 Electromagnetic Waves

在原子学说里面,电磁效应被认为是微小粒子在力的作用下相互作用的结果。如果粒子静止,那么它们受到了来自电场的恒定的静电力,即静电平衡。如果,带点粒子开始移动,那么会产生磁场,即电动生磁。那么我们来定义一下:EEE为电场强度,HHH为磁场强度。电磁场的存在不依赖于任何介质,因此电磁场的能量可以随着带电粒子的射出,而携带出来,即电磁波的传输。
当光从一点开始向四周发散,并且观察点与点光源的距离非常大的时候,我们可以假设球面波变成了平面波,那么电磁场就可以被表达为:

  1. E=Eoe⃗e−ikreiωtE = E_{o}\vec{e}e^{-ikr}e^{i\omega t}E=Eoeeikreiωt
    H=Hoh⃗e−ikreiωtH = H_{o}\vec{h}e^{-ikr}e^{i\omega t}H=Hoheikreiωt

在这里插入图片描述
kkk是光传播的方向,rrr是距离观测点PPP的距离向量,单位向量e⃗,h⃗\vec{e},\vec{h}eh代表了电场和磁场的方向,复数因子Eo,HoE_{o},H_{o}EoHo代表了电场与磁场的能量强度,但实际上电磁场被E,HE,HEH的实数值所决定,写成复数仅仅为了数学表达和推导方便。
我们可能知道这个公式:e=cosθ+isinθe = cos\theta + isin\thetae=cosθ+isinθ
我们知道kkk的方向性代表了光传播的方向,那么kkk的大小呢?它代表传播常数,被光的波长所决定:

  1. k=2πλk = \frac{2\pi}{\lambda}k=λ2π

如果波长在400-700纳米之间,那么就被称为单色光(monochromaticlightmonochromatic lightmonochromaticlight),可以被人眼捕捉到。

第二个指数项代表了场的强度,是一个随时间,震荡频率变化的函数。
方程代表了粒子所受到的力是随空间和时间而变化的。

Eo和HoE_{o}和H_{o}EoHo代表了电场和磁场的强度,或者说振幅,它们互相依赖:

  1. Ho=ξμEoH_{o} = \sqrt{\frac{\xi}{\mu}}E_{o}Ho=μξEo

ξ,μ\xi ,\muξ,μ分别代表介质的介电常数(permittivity)(permittivity)(permittivity)磁导率(permeability)(permeability)(permeability)ξμ\sqrt{\frac{\xi}{\mu}}μξ经常被带代表波阻抗(impedance)(impedance)(impedance),因为电磁场的相互依赖,我们经常可以看见电磁波被EEE或者HHH其中一个所代表。

我们非常感兴趣,有多少能量被反射在任意给定的一个方向。但是,我们仅仅知道了电磁场的定义,那么到底有多少能量被传播呢?
那么我们将定义单位面积上平均时间能量的流量 SSS

  1. S=E×HS = E\times HS=E×H

但我们只使用实数值:

  1. Sa=Re(S)=12Re[E×H]S_{a} = Re(S) = \frac{1}{2}Re[E \times H]Sa=Re(S)=21Re[E×H]

量纲即单位为:watts/meter2watts/meter^{2}watts/meter2.

那么我们使用方程12,带入到方程14中, 可得:

  1. Ho=ξμEoH_{o} = \sqrt{\frac{\xi}{\mu}}E_{o}Ho=μξEo
  2. Sa=Re(S)=12Re[E×H]S_{a} = Re(S) = \frac{1}{2}Re[E \times H]Sa=Re(S)=21Re[E×H]
  1. Sa=12μξEE=12ξμHHS_{a} = \frac{1}{2}\sqrt{\frac{\mu}{\xi}}EE = \frac{1}{2}\sqrt{\frac{\xi}{\mu}}HHSa=21ξμEE=21μξHH

Backmann-Spizzichion 模型

Backmann-Spizzichion模型使用波动光学来分析平面波在粗糙或者光滑表面的反射特性。
考虑到平面波打在一个表面上。我们使用笛卡尔坐标系x,y,z以及原点O来定义所有的矢量。还记得表面的高度怎么定义吗?h=h(x,y)h = h(x,y)h=h(x,y)来描述表面的高度分布。
在这里插入图片描述
那么表面点Q会描述为:

  1. r⃗=xx⃗+yy⃗+h(x,y)z⃗\vec r = x\vec x + y \vec y + h(x,y)\vec zr=xx+yy+h(x,y)z

那么入射在表面Q的电场能量会被表达成什么呢?

  1. E=Eoe⃗e−ikreiωtE = E_{o}\vec{e}e^{-ikr}e^{i\omega t}E=Eoeeikreiωt
  1. E1=Eo1e1⃗e−ik1reiωtE_{1} = E_{o1}\vec{e_{1}}e^{-ik_{1}r}e^{i\omega t}E1=Eo1e1eik1reiωt

其中Eo1E_{o1}Eo1代表电场的幅值, e1⃗\vec{e_{1}}e1代表电场传播方向,k1k_{1}k1代表波的传播方向。对,和之前的定义是一样的。

但我们想要知道的是有多少入射平面波的能量被散射出去了。入射波的偏振会被e⃗1\vec e_{1}e1所决定。对于平行偏振,和e⃗1\vec e_{1}e1方向一致,垂直偏振和e⃗1\vec e_{1}e1的法线方向一致。对于其他非偏振入射波来说,e⃗1\vec e_{1}e1既不垂直也不平行于偏振方向,即它们的方向是随时间变化的。这里将假设,入射波是垂直或者平行偏振,并且入射场将被表达为

  1. E1=e⃗1E1E_{1} = \vec e_{1} E_{1}E1=e1E1

入射波打击在表面上发生了什么呢?简单描述一下,一个导体表面有着许多与原子结合十分松散的电子,当入射光打击到表面,入射光有着自己的电磁场,将会施加力在表面电子上,电子将会受力运动,形成表面电流,而表面电流将会形成新的电磁场与入射光的电磁场相互作用,形成新的场。最终,在表面点Q,新的电磁场将会满足波动方程(wave)(wave)(wave):

  1. Δ2(E)s+k2(E)s=0\Delta^{2}(E)_{s} + k^{2}(E)_{s} = 0Δ2(E)s+k2(E)s=0
  1. k=2πλk = \frac{2\pi}{\lambda}k=λ2π

这里的kkk依旧是传播常数,被方程11所定义。那么有了波动方程之后,我们是不是就可以解出表面点Q的电磁场呢?

从任意方向散射出的电磁场都可以由表面电磁场所决定。P点是观察点,我们定义R′R^{'}R是观察点到表面Q点的距离。我们能算出在P的电磁场E2E_{2}E2。让我们考虑表面S的边界V,表面电磁场(E)s(E)_{s}(E)s是一个连续电磁场,在V的任何一个地方都满足波动方程。并且,在边界V上与 P点最接近的点会有着与P点几乎相同的电磁场。使用Green第一第二定理,被散射在P点的电磁场E2E_{2}E2将会被表达为:

  1. E2(P)=14π∬((E)s∂ψ∂n−ψ(∂E∂n)s)dSE_{2}(P) = \frac{1}{4\pi}\iint((E)_{s}\frac{\partial\psi}{\partial n} - \psi(\frac{\partial E}{\partial n})_{s})\mathrm{dS}E2(P)=4π1((E)snψψ(nE)s)dS
  2. ψ=eikR′R′\psi = \frac{e^{ikR^{'}}}{R^{'}}ψ=ReikR

这个积分被叫做HelmholtzHelmholtzHelmholtz积分。这个积分给了我们在这个区域内部任意一点的关于波动方程的解。为了解出这个积分,我们必须要知道(E)s(E)_{s}(E)s(∂E∂n)s(\frac{\partial E}{\partial n})_{s}(nE)s

为此我们使用KirchoffKirchoffKirchoff推论,它假定表面上没有锐利的边缘,在表面上的切平面上的场处处相等,因此我们就知道了:

  1. (E)s=(1+F)E1(E)_{s} = (1 + F)E_{1}(E)s=(1+F)E1
  2. (∂E∂n)s=(1−F)E1k1n′(\frac{\partial E}{\partial n})_{s} = (1 - F)E_{1} k_{1}n^{'}(nE)s=(1F)E1k1n

n′n^{'}n是表面上这一点的法线,FFF是光滑平面的FresnelFresnelFresnel反射因子。

考虑一个平面波入射到一个光滑表面,反射波的强度将被表面场(E)s(E)_{s}(E)s所决定。考虑到表面的电气特性:介电常数,电导率,磁导率。反射波的能量将由这些特性所决定。菲涅尔反射项常被写成F(θi′,η′)F(\theta_{i}^{'},\eta^{'})F(θi,η),这里的θi′\theta_{i}^{'}θi代表着入射波与表面法线的角度,η′\eta^{'}η代表着由表面电磁特性所决定的复折射率。在方程15我们写出了反射能量,为了模拟入射波的垂直(perpendicular)(perpendicular)(perpendicular)或者平行(parallel)(parallel)(parallel)偏振现象,我们将菲涅尔项表示为:

  1. Sa=12μξEE=12ξμHHS_{a} = \frac{1}{2}\sqrt{\frac{\mu}{\xi}}EE = \frac{1}{2}\sqrt{\frac{\xi}{\mu}}HHSa=21ξμEE=21μξHH
  1. Fpara=Y2cosθi′−(Y2−sin2θi′)Y2cosθi′+(Y2−sin2θi′)F_{para} = \frac{Y^{2}cos\theta_{i}^{'}-\sqrt{(Y^{2}-sin^{2}\theta_{i}^{'})}}{Y^{2}cos\theta_{i}^{'}+\sqrt{(Y^{2}-sin^{2}\theta_{i}^{'})}}Fpara=Y2cosθi+(Y2sin2θi)Y2cosθi(Y2sin2θi)
  2. Fperp=cosθi′−(Y2−sin2θi′)cosθi′+(Y2−sin2θi′)F_{perp} = \frac{cos\theta_{i}^{'}-\sqrt{(Y^{2}-sin^{2}\theta_{i}^{'})}}{cos\theta_{i}^{'}+\sqrt{(Y^{2}-sin^{2}\theta_{i}^{'})}}Fperp=cosθi+(Y2sin2θi)cosθi(Y2sin2θi)

在这里插入图片描述

注意到θi′\theta_{i}^{'}θiθi\theta_{i}θi的不同θi′\theta_{i}^{'}θi代表着入射波与实际碰撞点的法线的夹角,因此在表面上不同的点将有不同的夹角,θi\theta_{i}θi则是入射波与宏观法线的夹角。YYY是关于复折射率η′\eta^{'}η的一个函数,也就是与表面材质有关的一个函数。对于导体而已,YYY是无穷大的,对于非导体而言,YYY趋近于0。

让我们回顾方程20,来继续计算这个难缠的积分。

  1. E2(P)=14π∬((E)s∂ψ∂n−ψ(∂E∂n)s)dSE_{2}(P) = \frac{1}{4\pi}\iint((E)_{s}\frac{\partial\psi}{\partial n} - \psi(\frac{\partial E}{\partial n})_{s})\mathrm{dS}E2(P)=4π1((E)snψψ(nE)s)dS

好了,我们假定一个场景,以x,y,zx,y,zx,y,z为坐标系,有着一个四边形表面,它长2Y2Y2Y,宽2X2X2X,表面积A=4XYA = 4XYA=4XY,观察点PPP到表面的距离远大于表面粗糙度大小。也就意味着反射电磁场的传播方向k2k_{2}k2是一个常数。同时请看图七,我们可以得到一个几何关系:

  1. kR′=kR0−k2rkR^{'} = kR_{0} - k_{2}rkR=kR0k2r

让我们将方程22,23,26代入到方程20中:

  1. (E)s=(1+F)E1(E)_{s} = (1 + F)E_{1}(E)s=(1+F)E1
  2. (∂E∂n)s=(1−F)E1k1n′(\frac{\partial E}{\partial n})_{s} = (1 - F)E_{1} k_{1}n^{'}(nE)s=(1F)E1k1n
  1. E2(P)=14π∬((E)s∂ψ∂n−ψ(∂E∂n)s)dSE_{2}(P) = \frac{1}{4\pi}\iint((E)_{s}\frac{\partial\psi}{\partial n} - \psi(\frac{\partial E}{\partial n})_{s})\mathrm{dS}E2(P)=4π1((E)snψψ(nE)s)dS

我们就可以得到E2E_{2}E2的表达式:

  1. E2=EoikeikRo4πRo∫−XX∫−YY(ahx′+chy′−b)eivrdxdyE_{2} = \frac{E_{o}ike^{ik}R_{o}}{4\pi R_{o}} \int_{-X}^{X}\int_{-Y}^{Y}(ah_{x}^{'}+ch_{y}^{'}-b)e^{ivr}\mathrm{d}x\mathrm{d}yE2=4πRoEoikeikRoXXYY(ahx+chyb)eivrdxdy
    v=(vx,vy,vz)=k(sinθi−sinθrcosϕr)x⃗+k(sinθrsinϕr)y⃗−k(cosθi+cosθr)z⃗v = (v_{x}, v_{y},v_{z}) = k(sin\theta_{i} - sin\theta_{r}cos\phi_{r})\vec{x} + k(sin\theta_{r}sin\phi_{r})\vec{y} - k(cos\theta_{i} + cos\theta_{r})\vec{z}v=(vx,vy,vz)=k(sinθisinθrcosϕr)x+k(sinθrsinϕr)yk(cosθi+cosθr)z
    a=(1−F)sinθi+(1+F)sinθrcosϕra = (1 - F)sin\theta_{i} + (1+F)sin\theta_{r}cos\phi_{r}a=(1F)sinθi+(1+F)sinθrcosϕr
    b=(1+F)cosθr−(1−F)cosθib = (1+F)cos\theta_{r}-(1-F)cos\theta_{i}b=(1+F)cosθr(1F)cosθi
    c=−(1+F)sinθrsinϕrc = -(1+F)sin\theta_{r}sin\phi_{r}c=(1+F)sinθrsinϕr

对于粗糙表面来说,θi′\theta_{i}^{'}θi是依赖于slope的,也即是说在方程27中,a,b,ca,b,ca,b,c不是一个常数,因此方程20的积分在粗糙表面上是难以计算的,并且没有解析解,这就导致我们将继续假设:表面被假定为是一种完美的导体,那么Y→∞Y\to \inftyY,对于方程25和25将有:

  1. Fpara=Y2cosθi′−(Y2−sin2θi′)Y2cosθi′+(Y2−sin2θi′)F_{para} = \frac{Y^{2}cos\theta_{i}^{'}-\sqrt{(Y^{2}-sin^{2}\theta_{i}^{'})}}{Y^{2}cos\theta_{i}^{'}+\sqrt{(Y^{2}-sin^{2}\theta_{i}^{'})}}Fpara=Y2cosθi+(Y2sin2θi)Y2cosθi(Y2sin2θi)
  2. Fperp=cosθi′−(Y2−sin2θi′)cosθi′+(Y2−sin2θi′)F_{perp} = \frac{cos\theta_{i}^{'}-\sqrt{(Y^{2}-sin^{2}\theta_{i}^{'})}}{cos\theta_{i}^{'}+\sqrt{(Y^{2}-sin^{2}\theta_{i}^{'})}}Fperp=cosθi+(Y2sin2θi)cosθi(Y2sin2θi)
  1. Fpara=1和Fperp=−1F_{para} = 1和F_{perp}=-1Fpara=1Fperp=1

我们总是假定入射光是垂直偏振光,即Fpara=Fperp=−1F_{para} = F_{perp}=-1Fpara=Fperp=1。那么在方程27中,a,b,ca,b,ca,b,c将于x,yx,yx,y轴无关,因为只与θi\theta_{i}θi有关,可以回想一下关于θ与ϕ\theta与\phiθϕ在球面中是怎么定义的。

在方程27中hx′h_{x}^{'}hxhy′h_{y}^{'}hy代表了表面h(x,y)h(x,y)h(x,y)的两个轴向的导数。对于一个完美光滑的表面来说,h=0h = 0h=0,所以hx′=hy′=0h_{x}^{'} = h_{y}^{'} = 0hx=hy=0,并且反射光仅仅会在镜面方向(specular−direction)(specular -direction)(speculardirection)。那么视口方向与反射方向的点积就等于零v⋅r=0v\cdot r = 0vr=0。因此,在完美光滑导体表面的镜面反射方向的电磁场E2ssE_{2ss}E2ss将被表达为:

  1. E2ss=EoikeikRo4πRo∫XX∫−YY2cosθidxdyE_{2ss} = \frac{E_{o}ike^{ikR_{o}}}{4\pi R_{o}}\int_{_X}^{X}\int_{-Y}^{Y}2cos\theta_{i}\mathrm{d}x\mathrm{d}yE2ss=4πRoEoikeikRoXXYY2cosθidxdy
    E2ss=EoikeikRocosθiAλRoE_{2ss} = \frac{E_{o}ike^{ikR_{o}}cos\theta_{i}A}{\lambda R_{o}}E2ss=λRoEoikeikRocosθiA

E2ssE_{2ss}E2ss取模可得:

  1. ∣E2ss∣=EoAcosθiλRo\left|E_{2ss}\right| = \frac{E_{o}Acos\theta_{i}}{\lambda R_{o}}E2ss=λRoEoAcosθi

对于一个完美光滑镜面来说,计算散射电磁场是十分容易的。但这是不存在的,或者说是粗糙表面的一个极限情况。在实际情况中,我们往往假设我们的表面有着一种随机的不规则度的分布。通过对粗糙度的建模,我们可以预测表面反射的一些特性。通过高度模型的PDF来描述表面一点是不够精确的。由此,Beckmann和Spizzichino的讨论,他们发现通过对表面法线建模是更加重要的。

回想我们之前讨论过的高度分布,其标准差σh\sigma_{h}σh和相关距离TTT

  1. ph(h)=12πσhe−h22σh2p_{h}(h) =\frac{1}{\sqrt{2\pi}\sigma_{h}}e_{}^{-\frac{h_{}^{2}}{2\sigma_{h}^{2}}}ph(h)=2πσh1e2σh2h2
  1. E2=EoikeikRo4πRo∫−XX∫−YY(ahx′+chy′−b)eivrdxdyE_{2} = \frac{E_{o}ike^{ik}R_{o}}{4\pi R_{o}} \int_{-X}^{X}\int_{-Y}^{Y}(ah_{x}^{'}+ch_{y}^{'}-b)e^{ivr}\mathrm{d}x\mathrm{d}yE2=4πRoEoikeikRoXXYY(ahx+chyb)eivrdxdy

可以看出方程27是和高度分布相关的,这里我们引入一个散射因子ρ=EsE2ss\rho = \frac{E_{s}}{E_{2ss}}ρ=E2ssEs,这个因子可以帮助我们简化对方程27的计算。对于一个给定的入射角度,E2ssE_{2ss}E2ss是一个常数,那么我们就可以表达出E2E_{2}E2。对于E2E_{2}E2来说,在镜面反射方向的能量不为0,同时越偏离θr\theta_{r}θr,能量的衰减越快。请不要忘记,<Es><E_{s}><Es>代表了一个复数场的平均能量,但我们只使用实数值,即我们可以计算<E2E2∗>=<∣E2∣2><E_{2}E_{2}^{*}> = <|E_{2}|^{2}><E2E2>=<E22>的能量。对于给定的一个入射角θi\theta_{i}θi,平均散射在(θr,ϕr)(\theta_{r},\phi_{r})(θr,ϕr)方向,有着一个给定的正态高度分布的一个粗糙表面的平均能量可以表示为:

  1. <E2E2∗>=Eo2A2cos2θiλ2Ro2e−g(ρo2+πT2D2A∑m=1m=∞gmm!me−vxy2T24m)<E_{2}E_{2}^{*}> = \frac{E_{o}^{2}A^{2}cos^{2}\theta_{i}}{\lambda^{2}R_{o}^{2}}e^{-g}(\rho_{o}^{2}+\frac{\pi T^{2} D^{2}}{A}\sum_{m=1}^{m=\infty}\frac{g^{m}}{m!m}e^{-v_{xy}^{2}\frac{T^{2}}{4m}})<E2E2>=λ2Ro2Eo2A2cos2θieg(ρo2+AπT2D2m=1m=m!mgmevxy24mT2)
  2. g=(2πρhλ(cosθi+cosθr))2g = (2\pi \frac{\rho_{h}}{\lambda}(cos\theta_{i}+cos\theta_{r}))^{2}g=(2πλρh(cosθi+cosθr))2
  3. ρo=sinc(vxX)sinc(vyY)\rho_{o} = sinc(v_{x}X)sinc(v_{y}Y)ρo=sinc(vxX)sinc(vyY)
  4. D=(1+cosθicosθr−sinθisinθrcosϕrcosθi(cosθi+cosθr))D = (\frac{1+cos\theta_{i}cos\theta_{r}-sin\theta_{i}sin\theta_{r}cos\phi_{r}}{cos\theta_{i}(cos\theta_{i}+cos\theta_{r})})D=(cosθi(cosθi+cosθr)1+cosθicosθrsinθisinθrcosϕr)
  5. vxy=vx2+vy2v_{xy} = \sqrt{v_{x}^{2} + v_{y}^{2}}vxy=vx2+vy2

让我们来继续讨论关于粗糙表面是如何定义的吧。 从前面的一些讨论中我们就知道了表面粗糙度是和入射波的波长和表面的不规则度相关。那么,方程34就包含了这两者ρhλ\frac{\rho_{h}}{\lambda}λρh,也就是说在方程33中,ggg项代表了与粗糙度相关的一个比例因子。

那么对于ggg项,存在着三种情况,g≪1,g≈1,g≫1g\ll1,g\approx1,g\gg1g1,g1,g1,它们分别代表了光滑平面,处于之间的平面,粗糙平面。这里我们依旧讨论的是表面反射。让我们再次看看方程33吧,它是由两项求和组成的。对于第一项,e−gρo2e^{-g}\rho_{o}^{2}egρo2它代表了镜面反射尖端(spike)(spike)(spike),也就是反射能量最高的一个方向,不要慌,后面会有图示帮助理解。当表面非常小的时候,ρo\rho_{o}ρo是非常小的,但由于在镜面反射尖端方向还有个因子ggg,那么除了在镜面反射尖端的一个可变的狭小范围内能量不为0,其余方向都会散射很少的能量,由于能量守恒,那么这个狭小的范围内将会散射大部分能量。

那么让我们看看第二项,它被称为镜面lobe,为什么不叫diffuse呢?这是一个历史原因,通常情况下diffuse代表了多重反射和内散射现象,为了不与这个含义相冲突,这里使用镜面lobe这种说法。

它代表了由于表面粗糙度所导致的能量散射。对于一个完美光滑表面来说,g≪1g\ll1g1,那么镜面lobe将会消失不见,能量被反射在镜面spike方向,随着表面粗糙度的增加,也就是ggg的增大,在镜面lobe方向反射的能量逐渐上升,镜面spike方向反射的能量逐渐下降,记住能量守恒,这是我们分析物理模型的一个重要的武器。

其中有两个极限表达式是十分重要的,也就是g≪1与g≫1g\ll1与g\gg1g1g1的这两种情况,其实都不存在,毕竟不可能有绝对光滑与绝对粗糙的表面。对于这两种情况,分别对应了两个方程稍微简单一点的方程:

  1. <E2E2∗>smooth=Eo2A2cos2θiλ2Ro2e−g(ρo2+πT2D2gAe−vxy2T24)(g≪1)<E_{2}E_{2}^{*}>_{smooth} = \frac{E_{o}^{2}A^{2}cos^{2}\theta_{i}}{\lambda^{2}R_{o}^{2}}e^{-g}(\rho_{o}^{2}+\frac{\pi T^{2}D^{2}g}{A}e^{-v_{xy}^{2}\frac{T^{2}}{4}}) (g\ll1)<E2E2>smooth=λ2Ro2Eo2A2cos2θieg(ρo2+AπT2D2gevxy24T2)(g1)
  2. <E2E2∗>rough=Eo2Acos2θiπT2D2λ2Ro2vx2σh2exp⁡(−vxy2T24vx2σh2)(g≫1)<E_{2}E_{2}^{*}>_{rough} = \frac{E_{o}^{2}Acos^{2}\theta_{i}\pi T^{2}D^{2}}{\lambda^{2}R_{o}^{2}v_{x}^{2}\sigma_{h}^{2}}\exp(\frac{-v_{xy}^{2}T^{2}}{4v_{x}^{2}\sigma_{h}^{2}}) (g\gg1)<E2E2>rough=λ2Ro2vx2σh2Eo2Acos2θiπT2D2exp(4vx2σh2vxy2T2)(g1)

我们只是将黎曼积分进行了化简,然后给出了表达式,对于光滑表面m=1m=1m=1,粗糙表面m≈∞m\approx \inftym

我们终于走到了这一步,这也将是我们对于波动光学方面探讨的结尾,也许我们没有推导出每一个式子,但我们对于反射的原理有了进一步的了解,虽然中间有很多假设。

波动光学篇的总结

  • 表面高度模型是一个正态分布。当然,还有其他分布模型。
  • 表面的不规则度的曲率半径要大于入射光的波长。这将方便我们计算。当然,如果表面上有一些sharp的边与点,将会不成立。
  • 表面是一个完美的导体。这方便了我们对于方程27的计算。
  • 我们忽略了表面上 的masking and shadowing,也就是表面上的一点接受到的入射能量和出射能量可能会被表面所遮挡。后来,就有了补偿项的出现。
  • 我们假设能量到达PPP点观察点之前不会发生多次弹射,即只在表面发生一次反射。
  • 入射波是一个垂直偏振光,且是一个平面波。

接下来,我们将会进入波动光学还没有出现的时代,也就是几何光学的领域,我们熟悉的一切将会再次展现在我们面前。

我们各自是从怎样的星辰朝彼此坠落而到达此处来的?我们各自是从怎样的星辰朝彼此坠落而到达此处来的?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/246292.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GPU Gems1 - 19 基于图像的光照(Image-Based Lighting)

这篇文章打破了当时立方体贴图环境&#xff08;Cube-Map Environment&#xff09;用法的桎梏&#xff0c;深入研究了更多可能的逼真光照效果。文章主要研究了基于图像的光照&#xff08;Image-Based Lighting&#xff0c;IBL&#xff09;&#xff0c;包括局部化的立方体映射&am…

Polygonal-Light Shading with LTC

概述 如果我们有一个上半球的余弦分布函数(Do)(D_{o})(Do​)&#xff0c;并对这个余弦分布函数进行一个矩阵(M)(M)(M)变换&#xff0c;变换为一个新的分布函数(D)(D)(D)。 DMDoD M D_{o}DMDo​ 这就是基本思想&#xff1a;用一个余弦分布函数来拟合出不同的分布函数&#xff…

GPU Gems1 - 20 纹理爆炸(Texture Bombing)

【章节概览】 这章介绍了纹理爆炸&#xff08;Texture Bombing&#xff09;和相关的细胞技术&#xff0c;它们能在Shader中增加视觉的丰富性&#xff0c;图像的多样性&#xff0c;并减少大块纹理图案的重复性。 【核心要点】 纹理爆炸&#xff08;Texture bombing&#xff0…

Catlike Coding网站文章解析 -- 1.Procedural Grid

原文英文版链接https://catlikecoding.com/unity/tutorials/procedural-grid/&#xff0c;里面有每一部分的untiy工程链接&#xff0c;文章内容也更详实。 本章内容&#xff1a; 创建一系列点使用协程实现他们的摆放位置定义一个由三角形组成的平面自动生成法线添加纹理坐标和…

GPU Gems1 - 21 实时辉光(Real-Time Glow)

这章浅墨的文章讲的很细了&#xff0c;这里基本照扒一遍加深印象&#xff0c;原文链接&#xff1a;https://zhuanlan.zhihu.com/p/36499291 【章节概览】 这章讲到2D光照效果中的辉光&#xff08;Glow&#xff09;和光晕&#xff08;Halo&#xff09;&#xff0c;展示了如何通…

Catlike Coding网站文章解析 -- 2.Procedural Grid

本章内容 创建一个闭合的cube mesh给cube添加带弧度平滑的边缘定义法线使用sub-meshes&#xff08;子mesh&#xff09;创建一个常规shader合并碰撞体1.合成一个cube 上一章https://mp.csdn.net/postedit/89474068我们已经实现了一个平面mesh。一个cube由6个平面组成&#xff…

GPU Gems1 - 23 景深技术综述

本章主要介绍如何使用GPU创建实时的景深&#xff08;Depth of Field&#xff09;效果。参考浅墨总结文章的链接https://zhuanlan.zhihu.com/p/36499291 聚焦在枪上&#xff0c;背景模糊【核心要点】 物体在距离镜头的一个范围之内能够清晰成像&#xff08;经过聚焦&#xff09…

GPU Gems1 - 22 颜色控制(Color Controls)

这章将在游戏中图像处理的讨论&#xff0c;扩展到技术和艺术上控制颜色的方法和应用&#xff0c;包括将图像从一些的色彩空间中移入移出&#xff0c;以及快速地给任何2D或3D场景加上精美的色调。 色彩校正&#xff08;Color Correction&#xff09;是几乎所有印刷和胶片成像应…

GPU Gems1 - 25 用纹理贴图进行快速过滤宽度的计算

这章介绍在片元shader中计算导数近似值的技术。这个技术把特别的值载入纹理mipmap的每个级别&#xff0c;以特殊的方式使用纹理映射硬件&#xff0c;计算出导数的结果&#xff0c;给出在屏幕上的像素间某个量的变化率。 Cg标准程序库提供ddx和ddy函数&#xff0c;计算任意关于…

GPU Gems1 - 24 高质量的过滤

在一些应用中&#xff0c;高质量的过滤是至关重要的&#xff0c;可以用像素shader代码执行任何过滤。GPU着色程序不用于CPU的主要之处在于&#xff1a;一般来说&#xff0c;CPU数学操作比纹理访问更快&#xff0c;而在GPU中恰恰相反。图像过滤的目的很简单&#xff1a;对于给你…

GPU Gems1 - 26 OpenEXR图像文件格式与HDR(The OpenEXR Image File Format and HDR)

【章节概览】 这章中&#xff0c;大名鼎鼎的工业光魔公司的Florian Kainz、Rod Bogart和DrweHess介绍了OpenEXR标准&#xff0c;这是一种当时新的高动态范围图像&#xff08;HDRI&#xff09;格式&#xff0c;在计算机成像的顶级电影中正在快速推广。对于基于图像照明的开发者…

ID Tech 5 中Megatexture针对地形的D3D9 基本实现原理

看GPU Gems2中的 使用基于GPU几何体裁剪图的地形渲染&#xff08;Terrain Rendering Using GPU-Based Geometry Clipmaps&#xff09;一文&#xff0c;对Clipmap技术不是理解很好&#xff0c;所以上网搜索一番&#xff0c;发现了这篇文章&#xff0c;实在是太棒的文章&#xff…

[知乎] 开放世界游戏中的大地图背后有哪些实现技术?

今天看到的一篇关于大世界的技术文章&#xff0c;写的太好了&#xff0c;膜拜大佬。各位如果有时间一定要看看 原文&#xff1a;http://gulu-dev.com/post/2014-11-16-open-world#toc_10 一、程序技术篇&#xff1a;算法和架构&#xff08;Programming Algorithms & Arch…

GPU Gems2 - 2 使用基于GPU几何体裁剪图的地形渲染(Terrain Rendering Using GPU-Based Geometry Clipmaps)

【章节概览】 本章描述了一种通过顶点纹理实现的&#xff0c;基于GPU的几何体裁剪图&#xff08;Geometry Clipmaps&#xff09;技术。通过把地形几何体当做一组图像来处理&#xff0c;可以在GPU上执行几乎所有的计算&#xff0c;因此可以减少CPU的负载。且该技术较为容易实现…

球谐光照

一.原理 球谐光照实际上是一种对光照的简化&#xff0c;对于空间上的一点&#xff0c;受到的光照在各个方向上是不同的&#xff0c;也即各向异性&#xff0c;所以空间上一点如果要完全还原光照情况&#xff0c;那就需要记录周围球面上所有方向的光照。注意这里考虑的周围环境往…

图像色调,饱和度,对比度等相关定义

RGB颜色模型 RGB颜色模型也就是我们最常用的三原色&#xff0c;红绿蓝。RGB颜色模型在混色时属于加法混色&#xff0c;RGB中每种颜色数值越高&#xff0c;色彩越明亮。RBG为&#xff08;0,0,0&#xff09;时为黑色&#xff0c;RGB为&#xff08;255,255,255&#xff09;时为白…

各Rendering Path技术以及其在Unity中的实现

Rendering Path其实指的就是渲染场景中光照的方式。由于场景中的光源可能很多&#xff0c;甚至是动态的光源。所以怎么在速度和效果上达到一个最好的结果确实很困难。以当今的显卡发展为契机&#xff0c;人们才衍生出了这么多的Rendering Path来处理各种光照。 一. 正向渲染Fo…

GPU Gems2 - 3 几何体实例化的内幕(Inside Geometry Instancing)

文章部分内容摘自 https://zhuanlan.zhihu.com/p/38411575 【章节概览】 本章讨论了在Direct3D中渲染一个几何体的许多独特实例&#xff08;Instance&#xff09;的技术细节问题&#xff0c;对几何体实例&#xff08;Geometry Instancing&#xff09;的技术内幕进行了分析。 【…

GPU Gems2 - 4 分段缓冲(Segment Buffering)

文章参照该文 https://zhuanlan.zhihu.com/p/38411575 【章节概览】 本章介绍了一项可以明显减少一个显示帧中渲染的批次数目的技术——分段缓冲&#xff08;segment buffering&#xff09;&#xff0c;以及其改进。 【核心要点】 分段缓冲&#xff08;segment buffering&…

GPU Gems2 - 6 用多流来优化资源管理(Optimizing Resource Management with Multistreaming)

本文摘自https://zhuanlan.zhihu.com/p/38411575 【章节概览】 现代实时图形应用程序最困难的问题之一是必须处理庞大的数据。复杂的场景结合多通道的渲染&#xff0c;渲染起来往往会较为昂贵。 首先&#xff0c;多流&#xff08;Multistreaming&#xff09;技术由微软在Dire…