消灭高分辨率产生的隐形性能怪兽
精华03/16117 浏览开发心得 包含 AI 合成内容
之前发现个神秘的问题
我的A电脑 B电脑 跑自己做的2D射击游戏都是顺顺的 60FPS
但是C电脑 明明有最强的硬件配置,4070Ti + 170刷 2k电竞屏,却只能跑 38FPS
Why?
让AI列出了所有的性能开销
同时计算出了 两次刷新的间隔
发现在所有统计之外,有个神秘的idle 25ms 延迟
idle 就是 AI不知道这啥机制,反正有个延迟存在
在没问题的电脑与手机上 这数值都压在 10ms以下
找了半天被哒啦啦呼悠说这是
屏幕刷新率、引擎底层限制没法解
最后我发现了个神秘的状况
当我把游戏拖动到文书用的副屏时,FPS直接飙升到 80 !!!?
这时 我意识到 这问题还有救
最后 我发现 主要问题出在 解析度上
解析度越高 这个神秘的 idle 延迟 就越高
可能的理由有很多种
第一种可能的怪兽 : 我的光影渲染复杂
要先画黑影
再用白色光锥范围去挖洞
最后打上渐层色 跟周围淡淡光影
给了个优化算法
话黑影跟挖洞一步完成
去掉渐层跟周围光影
25ms > 23ms
看来优化错人了...
第二种可能的怪兽 : 我的游戏画这么大面积就是耗时
那我门试试手机 画小再放大巴
哒啦啦这时用了我5k积分 怎样都无法成功把画面画在较小贴图上,再拉伸贴图缩放到整个画面
尝试了五次都以灰屏失败告终,直接让退回git 要他完全依照手机方案去做,不要自己乱搞新方向。哒啦啦说没错,就应该直接用现有方案。 然后... 发现手机版只是用原图做缩放,实际还是画一样大的面积,没区别
尝试第三种思路 : 先把所有游戏内的显示内容全屏蔽,只留FPS的数据界面
关闭后 还是 23ms左右
此时让哒啦啦看看 到底代码里面还跑了什么东西
这时哒啦啦终于找到了最大的原因
我一个2D游戏 跑去走了3D渲染的绘制 & 屏幕清除流程![[表情_斜眼笑]](https://img-tc.tapimg.com/market/images/d1b1dcc88719f6c9a639728cde152c4b.png)
![[表情_斜眼笑]](https://img-tc.tapimg.com/market/images/d1b1dcc88719f6c9a639728cde152c4b.png)
去到后idle 直接降了 13左右的 idle
至此,今天的优化就先告一段落
搞射击游戏、动作游戏等会需要流畅画面的人,务必要检查下 你在不同解析度下是否有严重的性能损耗,很可能存在完全没必要的性能浪费可以优化





