一、灯光
灯光的两种主要方式:烘焙和实时光
电脑计算灯光主要分三步:
- 通过光源计算灯光的颜色、方向和范围。
- 当光线照到游戏对象的表面时,会照亮游戏对象的表面并且更改游戏对象的颜色。
- 计算灯光与游戏对象表面的碰撞角,之后灯光会发生散射。不断重复步骤1与步骤2(这依赖于灯光的设置)。随着不断的散射,光线的属性会随着照射到游戏对象表面而不断改变(就像现实世界一样)。
烘焙(Baking)
烘焙(Baking)指的是完全提前计算纹理和对象的光照以及阴影。
点光源(Point Light)
所有的灯光都是从一个中心位置发射出来,辐射到各个方向。
点光源属性.png聚光灯 (Spotlight)
聚光灯的光线开始于一个中心点,然后以圆锥体的形式发出光
额外属性:Spot Angle。该属性确定由聚光灯发出的光的圆锥体的半径。
定向光(Directional Light)
定向光类似于聚光灯,它也可以对准目标照射。与聚光灯不同的是,定向灯光会照亮整个场景。可以把定向光视作太阳。
因为定向光是平行发光的,它的位置无关紧要,起作用的只有定向灯光的旋转角度。
Cookie
如果在墙上点亮一盏灯,然后把手放在灯光与墙之间,可能会发现一些灯光被手阻挡,从而让手在墙上留下阴影。我们可以在Unity中使用Cookie模拟这种效果。Cookie是一种特殊的纹理,你可以把它们添加到灯光中,用来控制光源的发光方式。对于点光源、聚光灯和定向光来说,Cookie的使用稍微有点不同。聚光灯和定向灯光中的Cookie都使用黑白平面纹理。聚光灯不会重复Cookie,但是定向灯光会。点光源也使用黑白纹理,但是它们必须放在立方图中。
给聚光灯添加Cookie
1.创建一个新项目或场景,删除场景中自带的定向光。
2.向场景中添加一个平面,把它定位于(0,1,0)处,并把旋转方式设置为(270,0,0)。
3.首先选中Main Camera,然后给它添加灯光,使用Component>Rendering>Light命令,把灯光类型更改为Spot。把范围设置为18,把聚光角度设置为40,并把强度设置为3。
4.把biohazard.png纹理从本书配套资源中拖到Project视图中。选中该纹理,然后在Inspector视图中把纹理的类型改为Cookie。将灯光类型设置为Spotlight,将alpha源设置为From GrayScale。这样就可以让Cookie在黑色的地方阻挡灯光。
5.选中Main Camera,单击并把biohazard纹理拖到灯光组件的Cookie属性中,就会看到biohazard图标投射到了平面上
6.尝试各种灯光范围和强度参数。
带有cookie的Spotlight.png
网友评论