光源

作者:追风剑情 发布于:2016-9-4 0:29 分类:Shader

辐照度(irradiance)

在实时渲染中,我们通常把光源当成一个没有体积的点,用l来表示它的方向。那么,我们如何测量一个光源发射出了多少光呢?也就是说,我们如何量化光呢?在光学里,我们使用辐照度(irradiance)来量化光。对于平行光来说,它的辐照度可通过计算在垂直于l的单位时间内穿过的能量来得到。在计算光照模型时,我们需要知道一个物体表面的辐照度,而物体表面往往是和l不垂直的,那么如何计算这样的表面的辐照度呢?我们可以使用光源方向l和表面法线n之间的夹角的余弦值来得到。需要注意的是,这里默认方向矢量的模都为1。

11111111.jpg

在左图中,光是垂直照射到物体表面,因此光线之间的垂直距离保持不变;而在右图中,光是斜着照射到物体表面,在物体表面光线之间的距离是d/cosθ,因此单位面积上接收到的光线数目要少于左图。

因为辐照度是和照射到物体表面时光线之间的距离d/cosθ成反比的,因此辐照度就和cosθ成正比。cosθ可以使用光源方向l和表面法线n的点积来得到。这就是使用点积来计算辐照度的由来。

标签: Shader

Powered by emlog  蜀ICP备18021003号-1   sitemap

川公网安备 51019002001593号