<三>使用光照与阴影增强3D物体的立体效果
运行预览场景可以看到,画面有些偏暗,场景不好看。
一个物体最终呈现的效果受到几个方面的影响:
- 自身的材质参数
- 环境光照参数
- 光源参数
- 阴影参数
环境光照参数
为了更好的理解环境光照参数对物体的影响,这里先隐藏地板和角色,并在场景中创建一个用于测试的球体。
同时禁用主光源Main Light,先关闭光源参数对物体的影响。

这里球体的外观就单纯的受环境光照的影响。
环境光照的参数设置在场景节点的Ambient属性下。
对于环境光的理解:当把物体放在某处时,该物体会受到环境的影响而显示不同于它本身的外观。或者说周围事物的反射光,它不仅影响被摄物体的光照效果,还与周围环境形成整体感。
Ambient分组下有3个属性:

- Sky light
天空光照颜色,用来模拟天空光照对物体的影响,这里调整天光颜色,可以看到球体颜色在跟随变化,上半部分收到的影响更明显。
![image]()
- sky illum
天光亮度用于调整天光的强度,值越小越暗,值越大越亮 - ground light
地光颜色,和天光颜色同理,球体的下半部分受影响更明显
这里把天光颜色设置为6B79A0
天光亮度设置为20000
地光颜色设置为3F3728
另外,CocosCreator还提供了基于环境贴图的环境光照设置
![image]()
这里不再展开
光源参数
世界空间中光效可以抽象为3种,1是方向光,方向光的特征是沿直线照射,不会随着距离而衰减,如太阳离我们足够远,也会被视为方向光。游戏场景中也常把方向光作为主光源,来模拟现实中的太阳光或月光。
2是球形光,球形光会对周围任意方向的景物无差别的照射,而且会随着距离而衰减,如无遮挡的路灯、灯泡。3是聚光灯,聚光灯会朝着某个方向发出散射的光。
关闭环境光(把天光亮度设置为0),启用主光源。

可以看到主光源是一个方向光,改变方向光的颜色也会影响物体的显示。例如在黄昏的夕阳照射下,满眼都是金黄色。
光源强度的设置和环境光一样,值越大越亮。
这里把方向光的颜色设置为FFF4D6,把主光源的强度设置为120000
删掉测试球体,把天光强度恢复为20000
显示地面和玩家

可以看到,整个画面自然了不少。
但是物体没有阴影,整个立体空间的效果还是差点意思。
阴影设置
选中场景根节点,在属性设置中找到Shadow

启用实时阴影,阴影类型选择阴影贴图,阴影贴图尺寸选择2048 x 2048
这个设置是最好的阴影效果设置。至于其他的参数影响这里不做展开。
但是启用实时阴影并设置好阴影参数后并没有发现物体的影子。
这是因为场景中可能会有多个光源,每个光源都可能产生阴影。为了实时运行效率,默认情况下光源是不产生阴影的,需要手动开启。
选中主光源,会发现方向光下面有一个动态阴影设置属性,这里选择开启阴影,阴影边缘的柔和度选择soft_2x。

但是发现物体还是没有阴影。
这是因为还有一步开关设置。因为场景中可能会有很多的3D物体,而有些物体(比如一些小的物体)是不需要阴影的,少绘制一些阴影可以有效的提升运行效率,所以在CocosCreator中物体默认是不开始阴影的,需要手动开启。
这里选中需要阴影的物体(Player),在属性设置中的动态阴影设置中把阴影投射打开。

这样就可以看到阴影啦,看上去立体的效果更好啦。
总结一下:阴影的开启需要3步开关,第一步打开场景的阴影设置;第二步打开光源的阴影设置;第三步打开需要投射阴影的物体中的阴影设置。


浙公网安备 33010602011771号