目前,我正在阅读Real Time Rendering的BRDF部分,并且很难看清这个函数的定义。 BRDF是输出方向的辐射与入射方向的辐射之间的比率。我无法从视觉上理解某个方向的辐照意味着什么?与特定方向的辐射有什么区别?它们都代表了光的力量。某个方向的辐照是什么意思?我们不将方向与辐射相关联吗?辐射不是定义为单一方向的辐射吗?我觉得我误会了这里的东西。 E(v)<= L(v),其中v是方向吗?

#1 楼

首先,在某个表面某个点的辐照度是每单位表面积的辐射通量(功率)的密度,而在某个方向上某个表面的某个点处的辐照度是每单位表面积的辐射通量的密度。立体角的单位。笼统地说,辐照度是从可能所有方向入射到某个点的光量,而辐射率是从单个方向入射到一个点的光量。那么为什么在地球上我们要从一个方向谈论辐照度呢?

问题是,BRDF定义假设存在指向点$ x $的辐照度$ L_i \ left(\ omega_i \ right)$。通过围绕方向$ \ omega_i $的无穷小圆锥体$ \ mathrm {d} \ omega_ {i} $,立体角大小表示为$ \ mathrm {d} \ sigma \ left(\ omega_ {i} \ right)$,其中然后在表面上产生一些辐照度。然后将此“局部”辐照度表示为$ \ mathrm {d} E \ left(\ omega_ {i} \ right)$。该入射光可以被表面部分吸收,并且可以在所有方向上部分散射。 $ \ mathrm {d} E \ left(\ omega_ {i} \ right)$对辐射方向$ \ omega_o $的向外散射贡献表示为$ \ mathrm {d} L_ {o} \ left( \ omega_ {o} \ right)$。

可以通过实验证明出射辐射量$ \ mathrm {d} L_ {o} \ left(\ omega_ {o} \ right) $与入射辐照度$ \ mathrm {d} E \ left(\ omega_ {i} \ right)$成正比,然后将BRDF定义为两者之间的比率:

$$
f_ {r} \ left(\ omega_ {i} \ rightarrow \ omega_ {o} \ right)= \ frac {\ mathrm {d} L_ {o} \ left(\ omega_ {o} \ right) } {\ mathrm {d} E \ left(\ omega_ {i} \ right)}
$$

评论


$ \ begingroup $
我想,我目前对这个概念有更好的了解。我考虑此功能的方式是添加dw项,以便BRDF =((dL / dw)/(dE / dw))。 dE / dw是从该w方向输入的辐射。 dL / dw是输入方向w贡献的部分输出辐射。 。我现在看到的方式有任何错误吗?
$ \ endgroup $
– kevinyu
18年4月22日在11:06

#2 楼

如果您始终查看特定物理量所测量的单位,则将很有帮助。由于您使用的是实时渲染,因此我还将引用其中的内容(第3版)。另外,为了完整起见,我将介绍所有相关的数量和单位。但是,我假设您了解立体角。时间$ t $以秒$ \ left [s \ right] $表示,立体角$ \ omega $以球面度$ \ left [sr \ right] $表示。


辐射能量$ Q $(以焦耳为单位,$ \ left [J \ right] $)测量能量,即光子的能量乘以光子数。
辐射通量$ \ Phi $(以瓦特为单位) ,$ \ left [W] \ right] = \ left [\ frac {J} {s} \ right])$测量每次的能量,例如不仅要计算光子数量,还要计算每秒的光子数量。 $ \ Phi = \ frac {Q} {t} $

a)辐照度$ E $(以瓦每平方米为单位,$ \ left [\ frac {W} {m ^ 2} \ right ] $)测量单位时间和表面积的能量,或单位表面积的通量。 $ E = \ frac {Q} {t A} = \ frac {\ Phi} {A} $

b)辐射度$ M $(在某些论文中也为$ B $)与辐照度,只有它离开表面而不到达表面

辐照度$ L $(瓦特/每球面度每平方米的瓦特数,$ \左[\ frac {W} {m ^ 2 sr} \ right] $)是单位面积和立体角的辐射通量,或单位立体角的辐照度。 $ L = \ frac {\ Phi} {A w} $

现在要考虑的一件事:$ E $是相对于垂直于光方向的表面$ A $进行测量的(换句话说,表面的法线与光的方向平行)。因此,我们将$ A $投影到完全满足此要求的飞机上。如果表面法线和光折角之间的角度为$ \ theta $,则我们的投影表面$ A_ {proj} $计算如下:$ A_ {proj} = \ frac {A} {cos \ theta} $

这样,我们当然也可以进一步将辐射度计算扩展为$ L = \ frac {E} {\ omega} $

但是,$ E $仅考虑每次时间的能量,而不考虑它来自哪个方向。为什么这很重要?由于您通常以这种方式查看计算机图形学中的照明。您可以计算从一个表面反射到查看器(/相机)的光量,这也意味着您想知道它是从哪个光源发出的(看来您希望拥有正确的能量和正确的能量)。颜色)。此外,您通常使用点光源,这意味着您可以查看光线的计算方式,即从单个点(光源)到曲面(您的像素/片段)上的单个点,然后再到查看器的光线。这些方向是用立体角来编写的,或者是为了使理论更容易用微分立体角来编写的。另一个要点是,您的表面可能会根据光的来源而不同地反射光,这也使方向部分变得重要。

所以总结一下:


我无法从视觉上理解某个方向的辐照意味着什么?


基本上是指来自特定光源的光子,而不是来自空间中任何地方的光子。


特定方向的辐射率有什么区别?


我希望很清楚,辐射是从某个方向发出的辐射。如果不是,请尝试指定哪个部分仍然困扰您。


它们都代表了光的力量。



是的。实际上,Steradian是一个无量纲单位,因为它是$ \ left [\ frac {m ^ 2} {m ^ 2} \ right] $,因此它实际上并没有添加任何内容。我知道这令人困惑。我希望我能弄清楚为什么要这样做。


某个方向的辐照意味着什么?我们不是将方向与辐射关联吗?


小心。我们不将方向(仅考虑垂直于光方向的表面除外)与辐照度相关联。但是,我们使用辐射。


辐射不是被定义为单一方向的辐射吗?


是的,你可以这么说。 br />

是E(v)<= L(v),其中v是方向吗?


我会说是相反的说法, $ L(v)\ leq E(v)$,因为$ E(v)$会考虑任何将光发射到表面上的光源,而$ L(v)$只考虑光形式$ v $(如果考虑$ v $作为表面方向的光源在我之前的文章中,这是$ \ omega $,在实时渲染中,这也是$ \ omega $,在第5章和BRDF中也是$ l $理论章节)。另外,请记住,这两个物理量没有相同的单位,因此不应该这样比较。

#3 楼

老实说,这样的术语非常混乱,因为它们的边界不清晰,而且在边界的一侧。它们会更灰白。
我要告诉你我如何说服自己,因为一旦我读了你的问题,我也会感到困惑。但是我设法通过这个论点说服了自己。
首先我们要弄清辐射度,辐照度,微分辐射度和微分辐照度这四个术语。方向。更正式地说,根据维基百科,

,它是每单位投影面积,每单位立体角发射/发射/接收的辐射通量。

其次是差分辐射。我们可以将其视为以很小的立体角$ d \ omega $发出或接收的无穷小辐射。
接下来是辐照度。辐照度通常与方向无关。根据Wikipedia的说法,它是单位面积的表面接收的辐射通量

,但更常见的是,对我来说更有意义的是,对于您的问题的答案,请考虑一下
所以我们可以说
$ E = \ displaystyle \ int _ {\ Omega} L(\ omega)\; \ omega.n \; d \ omega \\\ omega \ in \ Omega $
因此,如果我们整合各个方向的辐射,使我们得到辐照度的原始定义,而无需考虑方向。但是,通常我们只关注所有方向的子集,例如上半球或下半球。例如,这意味着
$ \ Omega = \ {\ omega:\ omega.n \ geq 0 \} $
正如我们在这里看到的,我们将辐照度限制在一组方向,即上半球。这并不一定将其更改为与方向相关联的辐射度。相反,这意味着,在计算辐照度时,我们只关注来自这些方向的光,尽管我们并没有像辐射度那样将方向量纳入公式中。
这是来自特定方向的辐照度之间的差异。方向和辐射。这样想吧。您拿着纸,并且前面有2个灯泡。您要测量辐照度。通常,这只是两个灯泡每单位面积接收的辐射通量。但是现在让我们说我限制了方向,所以我只关心第一个灯泡。请注意,我仍在计算“辐照度”。如果我走得更远,通量将减小,因此即使我关注特定方向,辐照度也将降低。但是,对于辐射率而言,情况并非如此,因为我们将其除以立体角也可以使变化保持平衡。因此,移远一点不会改变它。
最后一个量是微分辐照度。我认为这是从特定方向发出的少量辐射。 (再次涉及方向)
如果您认为辐照度与方向根本不相关,那么即使当您尝试考虑微分辐照度时,您还是会说它是来自很小范围的方向或很小范围的辐照度也许是一个特定的方向。这就是为什么它很小。
但是,如果您将辐照度视为特定方向上所有辐照度的总和。您会发现它使事情变得更清晰,您自然会得出这样的结论,即微分辐照度将是指特定方向的辐照度。
所以最后回到您的问题,我希望您可以对“某个方向的照射意味着什么”有了一些直觉。
从数学上证明这并非难事。这里的答案很好地解释了它。我只是给一个简短的解释。我们知道渲染方程式为
$ L_ {outgoing} = L_ {emission} + \ displaystyle \ int _ {\ Omega} L_ {incoming} \; f_ {BRDF}(\ omega_i,\ omega_o)\; \ omega_i.n \; d \ omega_i $
现在假设发射部分为零。我们最终以
$ L_ {outgoing} = \ displaystyle \ int _ {\ Omega} L_ {incoming} \; f_ {BRDF}(\ omega_i,\ omega_o)\; \ omega_i.n \; d \ omega_i $
现在,正如我之前所写的,如果您暂时忘记了BRDF,我们只是在给定方向上对辐射进行积分,该方向与辐照度相同。
如果我们看一下在这种求和/积分的一个实例中,它将是
$ dL_ {outgoing} = L_ {incoming} \; \ omega_i.n \; d \ omega_i \; f_ {BRDF}(\ omega_i,\ omega_o)$
$ dL_ {outgoing} = dE \; f_ {BRDF}(\ omega_i,\ omega_o)$
我们将$ d $放置在outgoind辐射度和辐照度中,因为它只占很小的一部分(我们只是在求和/积分的一个实例)
$ f_ {BRDF}(\ omega_i,\ omega_o)= \ displaystyle \ frac {dL_ {outgoing}} {dE} $
输出辐射率与入射辐射率之比。
再次这只是我说服自己的方式,可能会有一些错误。虽然这是我想出的最好的方法。

评论


$ \ begingroup $
我想,我目前对这个概念有更好的了解。我考虑此功能的方式是添加dw项,以便BRDF =((dL / dw)/(dE / dw))。 dE / dw是从该w方向输入的辐射。 dL / dw是由输入方向w贡献的无限小的部分向外辐射。 。我现在看到的方式有任何错误吗?
$ \ endgroup $
– kevinyu
18年4月22日在11:14



$ \ begingroup $
我不太了解您的概念。首先,$ dL $中已经有一个$ d \ omega $术语。因此,$ dL / d \ omega $不是发光度。邓诺怎么称呼它。不要试图使它成为辐射的比率。
$ \ endgroup $
–gallickgunner
18年4月23日在10:37

$ \ begingroup $
dL / dw不是辐射。但是,w方向射向表面的辐射是无穷小的向外辐射。向外辐射是每个输入方向上此无穷小的向外辐射的积分。
$ \ endgroup $
– kevinyu
18年4月24日在12:23

$ \ begingroup $
不,我还是不明白。首先,$ L_o $是输出辐射,然后使$ dL_o $成为无穷小输出辐射,而不是$ dL_o / d \ omega $。您的第二部分是正确的,总的向外辐射是无限小向外辐射的整数。但是,这似乎是一个递归定义,因此尽管您可能会或可能不会考虑到这一点,但请务必注意,您实际上是在整合各个方向的微分辐照度并乘以BRDF以获得$ L_o $
$ \ endgroup $
–gallickgunner
18年4月24日在17:06