找回密码
 立即注册
查看: 323|回复: 0

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

[复制链接]
发表于 2022-9-7 18:22 | 显示全部楼层 |阅读模式
在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


打包出货
最后,这个灯光贴图的优化方法,可以应用到很多地方,比如我们以后做倒车入库或者车库内漫游选车、元宇宙等大规模场景建筑物城市等,这可以让低端手机也能感受到写实场景的魅力。
今天的介绍就到这里了,如果你还有其他疑问,欢迎联系我们~~

END
<hr/>喜欢此篇文章欢迎赞同、评论、收藏、分享支持小编~
更多技术干货,行业前沿动态,请关注上海怿星科技官方公众号:怿星科技eplanet

其它平台官方账号:
CSDN:怿星科技的博客_CSDN博客
Bilibili:哔哩哔哩 ( ゜- ゜)つロ 乾杯~ Bilibili——各种教学视频任你学习!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-24 13:00 , Processed in 0.064316 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表