问题来源
- 今天在学习BRDF的时候遇到立体角这个概念,然后自己学习了一遍, 在这里和大家分享一下。
立体角定义:
-
以观测点为球心构造一个单位球(r = 1),任意物体投影到该球面上的投影面积(s),即为该物体对于该观测点的立体角。因此,立体角是单位球面上的一块面积。
二维平面上过渡理解:
在二维平面上我们先来理解圆心角这一概念,在这里我们知道 圆心角 = s / r,(
代表圆心角, s 代表圆心角对应的弧度,r就是圆所对应的半径),这个概念概念我相信大家是非常熟悉的,如果还有不熟悉的请去回顾一下自己以前学习过的有关圆心角的基础知识。那么接下来我们考虑一下极限的情况,我们让是上面公式中的弧长s 等于对应圆的周长,根据公式我们可以得到此时对应的圆心角的弧度为:2
π。立体角和圆心角非常类似,立体角有
= A /
sr(立体角一般用
表示,A是这个立体角对应的球表面积,r在这同样表示圆球的半径,sr是单位,叫球面度) ,同样的 我们来将A 赋值为 4π
,也就是整个球的表面积,我们可以得到此时的立体角为4π。
立体角应用-立体角转换到球形角:
- 首先我们需要知道的是球面坐标方程如下:
这里就不再做过多的赘述,如果有不懂的话就自己去补补这方面的知识。
2.接下来我们就需要讲讲怎么来进行我们的转换:
如图所示:我们可以很容易的得到角对应的弧长为:
,
所对应的弧长为:
,到这里了, 到这里了我们可以很容易得到这两个弧长的微分形式分别为:
d
和
d
,那么 我们可不可以以微分的方法来近似的计算球面坐标的立体角呢?回答当然是可以的。在这里我们可以得出立体角:d
=
d
*
d
。又由于我们从上图中可以得到一个
和
的关系,
=
。我们知道我们所在的球体为单位球,那么可以得到,
= 1, 所以
=
。所以 d
=
d
d
。这里我们就得到了我们需要的结果了。所以在某些应用中我们需要求 球面坐标的立体角的时候,就可以使用该结果。