在之前的实践场景中,一般只有一个光源且光源类型是平行光。但实际光源类型不止一种,且需要被区别对待。
光源种类
在之前的文章中多多少少地提到了Unity中支持几种不同的光源,其中包括点光源(point lights),聚光灯光源(direct lights),平行光光源(directional lights), 面光源(Area lights)以及发光物质(Emissive materials) 和 环境光(Ambient light)。
由于每种光的几何定义不同,因此它们对应的光源属性也就各不相同。因此需要区别对待。
点光源
点光源位于空间中的某个点,并且均匀地向所有方向发出光。入射到表面的光的方向是从接触点回到光源对象中心的线。强度随着与光的距离而减小,在指定范围内达到零。光强度与到光源的距离的平方成反比。这就是所谓的“平方反比定律”,类似于光在现实世界中的行为。
其在场景中效果如下:
其属性面板示例如下:
点光源的球体半径可以由属性面板上的Range来调整,也可以直接拖拽球体的线框。其位置属性由面板中Transform组件中的Position属性来定义,其他属性如光源的颜色,强度都是可以在面板中进行设置的。
聚光灯光源
与点光源相同,聚光灯光源具有特定的位置和范围,但是被限制在一个角度上,所以形成锥形照明区域。圆锥体的中心指向灯光对象的向前(Z)方向。聚光灯圆锥体的边缘处的光线也会减少。加宽角度会增加圆锥的宽度,并随之增加这种渐隐的大小,称为“半影”(penumbra)。