Unity优化技巧,此时无光胜有光

在unity中,常常会碰到场景里错综复杂,光照信息众多,而导致性能明显降低的情况。

我们举个例子(左下角圆圈圈是操作角色移动用的手柄,该场景可以漫游):

这是个在安卓平台应用的写实风格场景,通过URP管线,利用灯光实时渲染而成。在这个场景中,我们可以看到:

Batches 已经达到685,

PassCall到达234。

在低端平台上,可能会导致严重卡顿。

我们优化的目标,就是降低这两个数值。

因此,今天我们的知识点在于灯光。

在Unity2021版本中,URP管线的灯光有三种模式:realtime(实时),mixed(混合),baked(烘培)

其中realtime实时光非常消耗性能,但是可以产生实时光照效果;烘培光最节省性能,能提供静态烘培;而mixed混合光照,鉴于两者之间。

目前对这个独立的场景,我们将针对灯光进行优化。也就是我们将会把灯光信息,烘培到灯光贴图里。这个操作可以直接在unity里完成。

▷ 首先,我们打开window菜单里的rendering选项。

▷ 然后点击lighting选项。

▷将mixed lighting选项下的baked global IIIumination勾选,然后lightingMode选择 Subtractive。

为什么要选择 Subtractive?

我们来看官方文档的解释:

Lighting Mode 决定所有场景中使用 Lighting Settings Asset 的所有混合光源的行为,可用的模式有:

· Baked Indirect 模式将实时直接光照与烘焙间接光照结合在一起,提供实时阴影。这种光照模式提供逼真的光照和合理的阴影保真度,适用于中档硬件。

· Shadowmask 模式将实时直接光照与烘焙间接光照结合在一起,为远处的游戏对象启用烘焙阴影,并将烘焙阴影与实时阴影自动融合。这是最真实但也是最耗费资源的光照模式。您可以使用质量设置 (Quality Settings) 来配置其性能和视觉保真度。这种光照模式适用于高端或中档硬件。

· Subtractive 模式提供烘焙的直射和间接光照,仅针对一个方向光渲染直接实时阴影。这种光照模式不能提供特别逼真的光照效果,适合于风格化的艺术效果或低端硬件。

▷ 我们的平台为安卓平台,所以我们选择subtractive。

▷ 之后选择用GPU渲染。

▷ 质量全部都要调为高质量。

▷ 组后点击。

▷ 生成光照贴图,等待一段时间后,渲染完成。

这时候,我们看到batches 下降到490,PassCall  下降到103。

Disable掉场景内灯光,灯光信息也依旧存在。

此时,无光胜有光,没有实时光,但是有光照信息,节省了资源,可以让CPU和GPU在别的地方发挥光和热。

最后我们验证这个方法能否在安卓手机上运行。

▷ 点击file - buildingSettings

▷ 选择安卓平台并且插上测试安卓手机BuildAndRun

▷ 打包出货

大家可以点击这个→灯光demo 链接,安装APK看看实际效果。(注:该APK只适合安卓用户下载,IOS系统暂时无法下载预览。

最后,这个灯光贴图的优化方法,可以应用到很多地方,比如我们以后做倒车入库或者车库内漫游选车、元宇宙等大规模场景建筑物城市等,这可以让低端手机也能感受到写实场景的魅力。

今天的介绍就到这里了,如果你还有其他疑问,欢迎联系我们~~


↓↓↓↓↓↓↓

喜欢此篇文章欢迎评论收藏分享支持小编~

更多技术干货,行业前沿动态,请关注上海怿星科技官方公众号:怿星科技eplanet

 

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值