Unity3D灯光使用与优化完全指南
Unity3D灯光使用与优化完全指南
本文将详细介绍Unity3D中的灯光使用与优化技巧,包括天空盒反射、太阳耀斑眩光、烘培光照、阴影、全局光照、混合光照模式、环境光遮罩、灯光探针、反射探针技术、自发光材质等。通过图文结合的方式,帮助开发者掌握各种设置和优化方案。
天空盒反射
我们新建一个cube,可以看到它默认收到环境光的影响。
把材质的金属度和平滑度拉满,会发现它会完全反射天空盒。
- 金属度:表示反射强度,1完全反射
- 平滑度:表示反射多少天空盒,1就是全反射天空盒
但是你会发现反射的天空盒很模糊,我们可以增加环境反射分辨率,可以看到清晰了。
配置太阳耀斑眩光
效果:
烘培光照
记得勾选需要受到烘培光照影响的物体为静态,点击烘培。
烘培光照时弹出错误,记得勾选模型下面的选择
阴影
项目配置
光源
模型
模型shader的问题
不要使用透明shader。
全局光照
我们注意这个Shadow caster表示阴影数,过多会对性能造成影响。
记得修改要烘培的物体为静态,灯光模式也修改为烘培。
记得勾选烘培全局光照,不勾选烘培光源不会受到间接光源影响,然后烘培。
效果:
烘培好了,灯光我们可以进行删除,也不会影响。
混合光照模式
我们现在在新增一个会动的cube,灯光肯定会有问题,因为前面的灯光我们是烘培出来的。
当然你可以把灯光简单的改为实时灯光,记得再重新进行烘培。
但是可以看到阴影比较暗,记得打开实时全局光照,不勾选实时光源不会受到间接光源影响,再进行烘培,效果:
最好我们选择mixed混合模式,再重新进行烘培。
一般情况下,我们不会同时开启实时和烘培全局光照,这会造成性能的浪费,这里我们取消实时全局光照,重新烘培。
注意,这里新的cube背面是黑色的原因是我关闭了天空盒和环境照明,修改回来就可以了。
混合照明模式
减性照明模式
减性模式最省性能,但是不支持高光且只能渲染一个光照。
Shadowmask照明模式
因为前面选择了减性照明模式,烘培的阴影无法对我们动态物体产生影响就像下面这样:
修改Shadowmask模式改为Distance Shadowmask(距离阴影蒙版)。
把照明模式改为Shadowmask,重新烘培。
效果:
注意这里的阴影距离,表示如果我们的相机距离目标在150以内,会可以看到动态实时的影子,但是如果距离大于150以外,则显示的烘培阴影。
为了方便测试,我把值改成5看看效果:
间接烘焙照明模式
最费性能,影子更加真实。
超过设定的阴影距离,影子会直接消失包括烘培的影子。
环境光遮罩
开启环境光遮罩,点击重新烘培。
开启环境光遮罩之后,主要模型直接拐角处的变化,变得更加真实。
灯光探针
前面的修改Shadowmask模式改为Distance Shadowmask(距离阴影蒙版),虽然可以解决烘培的阴影对我们动态物体产生影响,但是比较耗性能,我们先改回Shadowmask模式。
我们可以使用灯光探针。
编辑探针包裹不同区域。
反射探针技术
让游戏物体有真实的反射效果。
把小球调成全反射。
在小球身上加添加反射探针。
结果全黑,是因为我们的反射探针默认是烘培模式。
我们需要把想要反射的物体设置为静态,并重新烘培。
关闭反射探针
想要关闭反射探针也很简单,选择反射探测器为off。
可以修改反射探针区域大小
如果场景只有一个物体受到反射探针的影响,把反射探针区域大小调节和该物体一样的最好,这样更加节省性能。
没有实时反射
当然前面反射探针我们使用的是烘培模式,所以肯定无法实时反射内容。
我们可以修改反射探针类型为实时,刷新模式为每帧更新。
运行查看反射效果,就可以实时显示效果了。
自发光材质
勾选材质发射,修改材质的HDR颜色。
记得勾选需要光照的物体勾选伪静态,再进行烘培。
效果:
渲染路径
Unity 的内置渲染管线支持不同渲染路径。渲染路径是与光照和阴影相关的一系列操作。不同的渲染路径具有不同功能和性能特征。应根据项目类型以及目标硬件,确定哪种渲染路径最适合您的项目。
可在 Graphics 窗口中选择项目使用的渲染路径,并可为每个摄像机覆盖该路径。
如果运行项目的设备上的 GPU 不支持所选的渲染路径,则 Unity 将自动使用较低保真度的渲染路径。例如,在无法处理延迟着色的 GPU 上,Unity 使用前向渲染。