我正在读《基于物理的渲染》一书(Pharr,Humphreys)。在“光”一章中,他们讨论了近似估算各种光的总发射功率。例如,点光源的总功率为intensity * 4 * pi。这里的4pi表示整个球体的立体角。
这对我来说很有意义,因为强度*立体角=功率(如果需要,也可以是辐射通量)。您也可以按单位查看。强度为W / sr,立体角为sr,因此W/sr * sr = W和功率以瓦特为单位。它会签出。根据我对这本书的理解,他们将散射区域光发出的总功率计算为DiffuseAreaLight
由于辐射的单位为W /(sr * m ^ 2),所以乘以面积即得到W / sr。这使我认为pi因子代表立体角-但是为什么只有1pi?我会猜到2pi,因为区域光的每个点都会在一个完整的半球中辐射(相当于2pi球面度)。

您可以在此处找到本书中提到的实际代码。

我误会什么?为什么用emitted radiance * area * pi散射区域光是有意义的?

#1 楼

辐射度(以通量计)具有以下定义:

$ L_o = \ frac {\ mathrm {d} \ Phi} {\ mathrm {d} \ omega ^ \ perp \ mathrm {d} A}
= \ frac {\ mathrm {d} \ Phi} {\ cos {\ theta} \ mathrm {d} \ omega \ mathrm {d} A} $。

因此为了获得总发射功率,我们需要在光的整个区域进行积分,并且需要在投影的半球立体角(在表面法线方向)上进行积分。 pbrt中区域光的辐射是恒定的。这给我们:

$ \ Phi = \ int_A \ int_ {H ^ 2(\ mathbf {n})} L_o \ mathrm {d} \ omega ^ \ perp \ mathrm {d} A =
\ int_A \ int_ {H ^ 2(\ mathbf {n})} L_o \ cos \ theta \ mathrm {d} \ omega \ mathrm {d} A =
\ int_A L_o \ int_0 ^ { 2 \ pi} \ int_0 ^ {\ pi / 2} \ sin \ theta \ cos \ theta \ mathrm {d} \ theta \ mathrm {d} \ phi \ mathrm {d} A =
\ int_A L_o \ pi \ mathrm {d} A =
A \ cdot L_o \ cdot \ pi $

评论


$ \ begingroup $
现在我明白了,谢谢。似乎大多数人在定义辐射度时使用投影面积而不是投影立体角。我想这在实践中没有任何区别。我可以看到使用投影立体角进行数学检查,但是从直观上看,这对我来说没有多大意义(使用投影面积对我来说似乎是“正确的”方式)。您能否以视觉/几何方式描述/显示使用投影立体角的原因?
$ \ endgroup $
– RasmusRønnNielsen
16年7月5日在17:32

#2 楼

我认为这样的假设(也许没有说,我没有方便的文字)是,辐射以余弦瓣分布形式发射。这意味着发射器法线与发射方向之间的角度的余弦与衰减成比例。

如果您查看全局照明摘要,则在“半球几何”下,方程组(30) ,您会看到由余弦波瓣调制的半球上的积分正好是pi。