在“辐射度”的定义中,根据PBRT定义为


每单位立体角通量$ d \ omega $每单位投影面积$ dA ^ \ perp $


$$ L_i = \ frac {d \ Phi} {d \ omega \ dA ^ \ perp} $$

我最初的假设是$ dA ^ \ perp $该术语用于减弱由于入射角而引起的辐照度贡献(我认为这只是朗伯的余弦定律)。但是,在渲染方程式中,我们已经明确使用了$ \ cos \ theta $项的朗伯定律:$$ \ int_ \ Omega L_i(\ omega_ {i})\,f_r(\ omega_ {i} \ rightarrow \ omega_ {o})\,\ cos \ theta_ {i} \,d \ omega_ {i} $$

我假设我们没有两次应用兰伯特定律,所以这到底是什么dA ^ \ perp $术语?

评论

渲染方程的余弦是由于立体角的缩短效应,而不是兰伯特定律。

这两个余弦基本相同。如果您认为辐射(在辐射公式上)是传入的,则对公式重新排序将为您提供:其中dPhi / dA为dE。

#1 楼

您的主要想法或多或少是正确的。隐藏在投影面积度量中的余弦$ dA ^ \ perp = dA \ cos(θ)$补偿了由于入射角引起的辐照度减弱(兰伯特余弦定律)。这使得辐射与入射角无关。我的猜测是,主要动机是使它使用起来更加实用。 /> 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)} = \ frac {\ mathrm {d} L_ {o} \ left(\ omega_ {o} \ right)} {L_ {i} \ left (\ omega_ {i} \ right)\ mathrm {d} \ sigma ^ {\ bot} \ left(\ omega_ {i} \ right)} = \ frac {\ mathrm {d} L_ {o} \ left(\ omega_ {o} \ right)} {L_ {i} \ left(\ omega_ {i} \ right)\ cos \ theta_ {i} \ mathrm {d} \ omega_ {i}}
$$

可以改写为

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

可以集成到半球上,从而获得沿给定方向反射的辐射度/> \ int_ \ Omega f_ {r} \ left(\ omega_ {i} \ rightarrow \ omega_ {o} \ right)L_ {i} \ left(\ omega_ { i} \ right)\ cos \ theta_ {i} \ mathrm {d} \ omega_ {i}
$$

Voila,渲染方程!

结论:尽管两个余弦都来自相同的基本原理,但它们具有不同的用途。

评论


$ \ begingroup $
PS:抱歉,符号的改变(ωi,ωo与ω′,ω)。我觉得这更实用。如果您感到困惑,我可以重写它。
$ \ endgroup $
– ivokabel
19年7月9日在15:12

#2 楼

由于您似乎想对辐照度进行解释,因此请同时考虑辐照度和辐照度定义:
$$ E = \ frac {d \ Phi} {dA},\ quad L = \ frac {d ^ 2 \ Phi} {d \ omega dA ^ {\ perp}} $$
我们可以将辐射度定义重新定义为:
$$ d ^ 2 \ Phi = L \ cos \ theta d \ omega dA $$
在立体角$ d \ omega $(按Lebesgue-Stieltjes的意义)上对两边进行积分可得出:
$ dd \ Phi = dA \ int _ {\ Omega} {L \ cos \ theta d \ omega} $$
,因此:
$$ E = \ frac {d \ Phi} {dA} = \ int _ {\ Omega} {L \ cos \ theta d \ omega} $$
因此,您可以将辐照度视为相对于立体角度量的辐射积分,反之亦然,您可以将辐照度视为相对于立体角度量的辐照度的导数。其他答案也提供了到渲染方程式的链接。所以不,您没有余弦两次。尽管如果要用其面积公式重写渲染方程,则会得到另一个余弦项(这是由于微分面积斑块投影到半球上)。这使用以下关系:
$$ d \ omega = \ frac {\ cos \ theta_y} {r ^ 2} dA(y)$$
然后可以将渲染公式重写为:
$$ L_o(x_0 \ rightarrow x _ {-1})= \ int_ {S} {f(x_1 \ rightarrow x_0 \ rightarrow x _ {-1})L(x_1 \ rightarrow x_0)\ cos \ theta_ {x_0} \ frac {\ cos \ theta_ {x_1}} {|| x_1-x_0 || ^ 2} V(x_0,x_1)\,dA(x_1)} $$
因为可见度项$ V(x_0,x_1)$最初在立体角公式中是隐式的,所以出现在其中。这是因为如果在之间存在封堵器,则无法在点$ x_0 $和$ x_1 $之间的直线上获得辐射亮度,这将通过使用$ L_i(x_0,\ omega = x_0 \ rightarrow x_1)$,它使我们得到的辐射是从方向$ \ omega $到达$ x_0 $的,请注意,这是考虑到该辐射的起始点,而不是$ x_1 $。形式上$ L_i(x_0,\ omega)= L(r(x_0,\ omega),-\ omega))$,请注意光线投射运算符$ r $,其中隐含了可见性项,因为$ r(x_0,x_0 \ rightarrow x_1)\ ne x_1 $(如果它们之间有封堵器。

评论


$ \ begingroup $
这是第三余弦:)
$ \ endgroup $
–ali
19年7月9日在12:58

$ \ begingroup $
@ali没有第三余弦。兰伯特定律只有一个,而我在这里展示的那是微分面积元素在半球上的投影。其他余弦可能只出现在brdf中,但这是完全不同的事情。
$ \ endgroup $
–lightxbulb
19年7月9日在13:15

$ \ begingroup $
@eclmist是正确的,有两个余弦项:1.cosine(theta),它是接收贴片法线与入射辐射之间的角度。 Li的定义中隐含了第二个余弦(与面积立体角不同),这里是入射辐射。在路径跟踪中,它要么是具有已知辐射的光源,要么是未知的间接辐射的光源,可以递归求解,因此无需乘以第二余弦。如果不知道传入辐射,则必须进行计算,您需要从发送者的角度使用辐射定义。 en.wikipedia.org/wiki/亮度
$ \ endgroup $
–ali
19年7月9日在15:47



#3 楼

这两个余弦项基本上是指缩短效应,即:

落在补丁上的辐照度必须通过补丁与源的夹角的余弦值进行修改。 >现在从辐照度的定义开始:


辐照度是单位面积的通量,因此: />


,它是辐射的定义,具有与辐照度定义相同的余弦项(将半球上的辐照度积分并乘以BRDF得出渲染方程)。 br />

因此,两个余弦项均指一种效果,但我认为在渲染方程式中有两个余弦项是正确的。在等式中可见的第一个补偿了接收器贴片上的辐照度的减弱,而在辐射定义中隐含的第二个余弦值对应于被缩小了表面积的源贴片的辐射度。在路径跟踪中,此辐射度(Li)来自具有已知辐射度值的直接光,或来自未知且将被递归求解的间接光。但是,如果要计算源辐射度,则也需要将两个项相乘。

评论


$ \ begingroup $
渲染方程的立体角公式中有1个余弦项,这是由于朗伯定律所致。如果采用面积公式,则会得到第二个余弦项,但这一次是由微分面积元素与立体角之间的关系引起的。
$ \ endgroup $
–lightxbulb
19年7月9日在9:56