Unity手机游戏发热发烫优化技巧

2023-08-19 04:14:52 来源: 哔哩哔哩


【资料图】

做性能优化定位问题的时候我们要确定好是哪个部分占用的CPU+GPU资源导致发热。一个一个模块的排查: 渲染模块,物理引擎模块,逻辑算法模块,其它,排查的时候,我们一般会一个一个的内容重建,比如,排查渲染模块,我们可以只做渲染,做同等规模的游戏地图与渲染单元,查看运行结果,分析CPU占用率,看是否引起发烫。物理引擎模块可以通过增加和减少物理计算单元来定位是否为物理引擎的问题。隔离掉逻辑算法代码,看CPU占用率是否有改善。如此根据自己的游戏逻辑逐步定位性能热点一般低温烫伤容易发生的温度在42~51度。基本上40,42左右就是一个临界点。一般CPU总占用率肯定超过>80%。在游戏开发项目中,越早进行机器的性能测试,是否发热等指标,能帮助我们快速的定位是加入了哪些功能导致了机器发热,同时测试机器最好都准备几个有代表性高中低端手机。一般做项目的时候,每个礼拜都要完整的真机测试有代表性的机器。(1) 做好高中低端机型的适配, 高端手机上高端效果,低端手机上低端效果,比如高端手机正常,低端手机发烫,可以针对低端机考虑关闭光照计算,关闭阴影计算,切换一些更简单的shader, 关闭一些特效。 指定一些规则,然后游戏运行后自动判定分类手机的类型,来开关相关的参数。(2) 调整以下目标运行时候的最高FPS, 默认情况下游戏引擎控制FPS在60左右,如果我们中低端机所有的优化已经搞完了,虽然画面流畅,但是手机还是发烫,就可以看下游戏运行中实际的FPS,如果游戏的实际FPS 超过了一个流畅运行的最低限制(一般是30FPS),可以考虑根据机型适配游戏的最高FPS为30,这样导致的结果就是CPU拼命的工作让实际帧率维持在60FPS,你减少最高帧率到30FPS,这样CPU帧率到了30就可以休眠一点时间,从而维持流畅的情况下减少发热。(3) 渲染常用的优化手段: 优化渲染规模,使用增强细节的手段来代替模型面数,提升shader性能。空间换时间来提前预制烘培,合并drawcall, 减少set pass call,优化动画组件将顶点动画烘培到纹理中。等等。(4) 物理引擎的常用优化手段: 修改物理引擎迭代计算的参数,降低刚体迭代的数目,使用更高效的方式替代物理引擎。等等。(5) 优化数据结构内存占用与算法: 缓存池减少节点反复大规模的删除与创建,优化算法,降低算法复杂度,空间换时间(预先计算好结果存储起来,运行时查表即可),时间换空间,多线程优化等。可以把部分的计算放到GPU中。等等。

标签:

[责任编辑:]

最近更新