一、Unity的光源类型
Unity一共支持4种光源类型:平行光、点光源、聚光灯和面光源(area Light)。面光源仅在烘焙时才可发挥作用。
Shader中最常使用的光源属性有光源的位置、方向(准确的说是到达某点的方向)、颜色、强度以及衰减(具体的说就是,到某点的衰减与该点到光源的距离有关)这5个属性。这些属性和它们的几何定义息息相关。
1.平行光
照亮范围没有限制的,通常作为太阳这样的角色在场景中出现的。
没有唯一的位置。
它的几何属性只有方向,并且到所有点的方向都是一样的。
没有衰减,光到任何一点的强度都是一样的。
2.点光源
点光源的照亮空间有限,它是由空间中的一个球体定义的。
可以表示从一个点发出的、向所有方向延伸的光。
注意:需要在Scene视图中(有个光照按钮)开启光照才能看到预览光源是如何影响场景中的物体的。
球体半径可以修改Range属性来调整。
点光源有位置属性
方向属性需要用光源位置减去某点的位置来得到它到该点的方向
点光源的颜色和强度可以再Light组件面板中调整。
点光源是会衰减的。
3.聚光灯
照亮空间由一块锥形区域定义。
锥形区域的半径由面板中的Range属性决定,锥形的张开角度由Spot Angle属性决定
有位置属性
方向属性需要用光源位置减去某点的位置来得到它到该点的方向
聚光灯也会衰减
二、unity的光照衰减
前面提过unity使用一张纹理作为查找表来在片元着色器中计算逐像素光照的衰减,这样的好处在于,计算衰减不依赖于数学