第5章第5章光源概述
光源是游戏场景最重要的组成部分之一。三维模型和材质贴图决定了场景的形状和质感,光源则决定了游戏场景中环境的明暗、色彩和氛围。本章主要讲解游戏关卡中光源的种类、属性及不同光源及其阴影的参数设置等理论知识,结合“室外场景灯光实训”拓展实践训练,最后完成“废弃仓库”游戏关卡场景中的灯光设置。
重点与难点
重点: 光源的种类。
难点: 光源的属性设置。
5.1光源概述
在游戏场景中,网格模型和材质贴图决定了场景的形状和质感,光源则决定了场景环境的明暗、色彩和游戏氛围。每个游戏场景可以使用一个或多个光源,使游戏的视觉效果更加完美。
创建光源的方式同创建其他游戏对象相似,单击菜单栏中的GameObject→Light选项,进而选择要创建的光源,或者在Hierarchy(层级)视图菜单中单击Create按钮,选择要创建的光源,如图51所示。
图51创建光源
[1][2][1][3]5.2光源类型
Unity提供了4种类型的光源,几乎能够模拟现实中的所有光源。
1. Directional Light: 方向光源
方向光可以被放置在任何位置,它可以影响场景里所有的物体,类似于自然界中太阳的照明效果,因此又称太阳光。方向光源是最不耗费图形处理器资源的光源类型,如图52所示。
2. Point Light: 点光源
灯光从一个点向四周发出的光线,影响其设置半径范围内的所有物体,类似灯泡的效果。点光源的阴影是较耗费资源的光源类型,如图53所示。
3. Spotlight: 聚光灯
灯光从一点发出,从一个方向照射出一个锥形灯光,处于锥形区域内的物体会受到光照,类似射灯的效果。聚光灯也是较耗费处理器资源的光源类型,不宜多用,如图54所示。
4. Area Light: 面光源
该类型光源无法应用于实时光照,仅适用于光照贴图烘焙,如图55所示。
图52方向光源
图53点光源
图54聚光源
图55面光源
5.3光源属性
所有类型光源的基本属性参数如图56所示。
图56光源的属性
1. Type
此处可以更改光源的类型。
2. Range
该项控制光线从光源对象的中心发射的半径距离,只有点光和聚光灯有此参数。
3. Spot Angle
用于控制光源的锥形角度。
4. Color
用于调节光源的颜色。
5. Intensity
用于控制光源的强度,聚光灯及点光的默认值是1,方向光默认值是0.5。
6. Cookie
用于为光源指定有alpha通道的遮罩,使光线在不同的地方有不同的亮度。如果光源是聚光灯或方向光,可以指定一个2D纹理。如果光源是一个点光源,必须指定一个Cubemap(立方体纹理)。图57阴影类型
7. Cookie Size
用于控制缩放Cookie投影。
8. Shadow Type
为光源选择阴影类型,可以选择No Shadows(关闭阴影)、Hard Shadows(硬阴影)、Soft Shadows(软阴影),如图57所示。软阴影会消耗更多的系统资源。阴影开启后的效果如图58所示。
图58阴影效果
5.4阴影属性〖*2〗1. Strength该项控制光源所产生的阴影的强度,取值范围是0~1,0表示阴影完全消失,1表示阴影呈黑色。
2. Resolution
该项控制阴影分辨率的质量,有5个选项,由上至下代表: 使用质量设置、低质量、中等质量、高质量、更高质量,如图59所示。图59分辨率的质量
3. Bias
该项设置灯光的位置与阴影的值的偏移量。取值范围是0~0.5。当值过小时,物体的表面会有来自于自身阴影的错误显示;当值过大时,阴影就会离游戏对象过远。
4. Softness
该项控制阴影模糊采样区的偏移量。
5. Softness Fade
该项控制阴影根据与摄像机的距离进行淡出的程度。
6. Draw Halo
勾选该项,开启光晕效果。
7. Flare
该项可以为光源指定耀斑的效果。
8. Render Mode
光源的渲染模式有三种,如图510所示。
(1) Auto: 自动。根据光源的亮度及运行时质量的设置,确定光源渲染模式。
(2) Important: 重要。光源逐像素进行渲染。
(3) Not Important: 不重要。光源总是以最快的速度进行渲染。
9. Culling Mask
选中层所关联的游戏对象将受到光源照射的影响。
10. Lightmapping
用于控制光源对光照贴图的影响,如图511所示。
图510渲染模式
图511光照贴图
(1) RealtimeOnly: 仅实时灯光计算,不参与光照贴图的烘焙计算。
(2) Auto: 自动。
(3) BakedOnly: 仅作光照贴图的烘焙,不进行实时灯光计算。
11. Width
该项设置面光源影响区域的宽度。
12. Height
该项设置面光源影响区域的高度。
5.5项目拓展
前面讲了光源的种类、属性参数等理论知识,下面做一个光源的项目拓展训练。
(1) 启动Unity应用程序,打开官网配套素材中的/Unityclass/part5/05灯光训练项目工程,打开test_light场景。场景中已经创建了地形、植被、配景等游戏对象,如图512所示。
图512test_light场景
(2) 依次打开菜单栏中的GameObject→Light→Directional Light选项,为场景添加一个模拟的太阳光,手动创建一个光源后,Unity会自动开启灯光按钮以启用光源照明效果,此时场景便明亮了许多,如图513所示。
图513添加太阳光后效果
(3) 创建方向光一般用于模拟日光的照明效果,本例想表现午后的阳光效果,所以需要将光源设置为偏暖的色调,在Inspector视图中单击光源对象的Light组件中Color项右侧的色条,进而在弹出的Color对话框中调节光源的颜色,如图514所示。这样,午后场景的色调就初步调节完毕了。
图514午后的阳光效果
(4) 当前场景看起来亮度有些偏暗,调节Intensity(强度)到合适的数值,本例中将该参数设为0.6。
(5) 调节完光源的颜色以及强度之后,整个场景的效果有了一定的提升,但还不是很完美,因为在真实的世界中,光线照射在物体上会有投影。接下来,需要为光源设置投影。单击Shadow Type项右侧按钮,在弹出的下拉列表框中选择Hard Shadows(硬阴影),如图515所示。到此,场景主光源便设置完毕。
图515设置投影
(6) 在真实的环境中,物体除了接受阳光的照射影响以外,还会受到大气漫反射光的影响,在蓝色天空情况下,大气漫反射光会呈现出偏蓝的颜色。因此需要为场景添加辅助光源,依次打开菜单栏中的GameObject→Light→Point Light选项,为场景添加一个点光源,并根据场景的情况适当调整点光源的位置、强度、范围、颜色等参数,如图516所示。
图516添加环境辅助灯光
(7) 通过对比添加辅助光源前后的效果,可以发现辅助灯光对场景氛围的影响,根据效果仔细调整,增加冷暖对比。完成的灯光效果如图517所示。
图517最终灯光效果
5.6项目实践
第4章的项目实践完成了基本游戏场景的拼接,本章项目是根据图518给“废弃仓库”游戏场景设置灯光(项目制作步骤可参考附录A)。
(1) 删除场景自带的Directional Light,创建Point Light,移动到房间内适当的位置,按照图518的灯光参数和效果设置好第一个房间的灯光。
图518房间1灯光设置图
(2) 创建第二个房间的Point Light,或者复制第一个房间的灯光,快捷键是Ctrl+D,修改灯光设置,按照图519的灯光参数和效果设置好第二个房间的灯光。
图519房间2灯光设置图
(3) 创建第三个房间的Point Light,修改灯光设置,按照图520的灯光参数和效果设置好第三个房间的灯光。
图520房间3灯光设置图
(4) 第四个房间的Point Light,修改灯光设置,按照图521的灯光参数和效果设置好第四个房间的灯光。
图521房间4灯光设置图
(5) 创建走廊的灯光,光源整体效果如图522所示。
图522场景灯光参考图
课后习题〖*2〗一、 填空题1. Unity提供了4种类型的光源,分别是()、()、()、()。
2. 三维模型和材质纹理决定了场景的()和(),光源则决定了场景环境的()、()和()。
3. 阴影的类型有()、()、()三种。
4. 如果场景亮度有些偏暗,需要调节()参数到合适的数值。
5. 灯光渲染路径有()、()、()三种类型。
二、 综合题
1. 室外环境通常用哪些灯光模拟?怎样设计灯光?
2. 室内环境通常用哪些灯光模拟?怎样设计灯光?