如图所示,这是一个典型的聚光灯照耀下的场景:灯光从物件顶部左上方照射下来,在地面上形成椭圆形的光区并投下拉长的阴影。
显然,聚光灯的光源、光柱和光区形成了一个圆锥体。实际上,聚光灯从本质上讲就是一个带有方向性的点光源,我们可以通过设置这个锥状体的参数来更改光照效果。
圆锥体的主要参数在于圆锥角,这也就是聚光灯照明范围的决定因素。一般情况下,这个角度在0°到90°之间。在此场景中,锥度成角为175°,整个聚光灯仿佛一个有着半球体照明范围的点光源,如图。
聚光灯的锥角还有一个用途,在三维程序中,针对聚光灯的锥角设置可以算出其深度贴图投影(depth-mapped shadow)。下图即是根据灯光的放置将投影贴图的深度信息贮存于一张灰度图像中。
聚光灯的锥角还决定了物件投影的可视程度。在很多三维应用程序中都提供了“从灯源的视角来观察场景”这一功能,这就可以有效地解决深度贴图投影的问题。在下图中由于灯光成角不佳造成阴影模糊不清。
如果从聚光灯的视角来看看场景你会发现,这个物件本身在场景中占的比例太小了,以致阴影的投射深度不够。这就是问题的根本所在。
造成上述问题的原因有两个:灯光距离物件太远和灯光锥角太大。也许是想用单一的灯源来覆盖较大范围的场景吧。此时可以将灯光移近物件并缩小锥角,而不必去提高投影贴图的解析度,如图。