灵感来源
一直看
苹果公司宣传ta的ProMotion技术,可以实现1-120hz自适应刷新率,可以实现终极省电,当时脑中就有个模糊的想法,软件或者游戏引擎能不能主动减少刷新率,来实现类似效果
只是一直上班没有去行动,最近休息后,随着iPhone 17发布,ProMotion下放到基础款iPhone的新闻火热起来,我的灵感又再次迸发,于是看了看引擎源码, 花费些许时间,也实现了0-GameRate自适应刷新率
先看效果
可以看到界面变化时gpu刷新率自动增加;
静止时,GPU刷新率降至1,Cocos帧率保持60,渲染耗时却降至0.0x

spine动画停止时,界面恢复纯静态,渲染耗时自动降低
原理揭秘
以ccc2.x为例
首先我们得知道Cocos的界面何时完全静止;似乎Cocos没有一个属性告诉我们,翻翻源码可以发现cc.Node的renderFlag属性可以得知节点的大部分变化,这些变化大多会引起界面变化
那就好实现了,当任意Node的renderFlag发生变化,记录下一个值代表当前帧需要正常刷新率
然后在渲染时,如果是正常刷新率,则正常渲染, 否则不渲染
如果静态界面是渲染耗时特别高,那优化后就不是百倍优化了,是千倍,乃至无限倍
是不是很简单?没错,只需要一个灵感,就可以实现苹果引以为傲的ProMotion自适应刷新率
当然上述只是实现之前的思考,具体实现会面临很多问题,请静待下期深入揭秘
立刻了解实现
当然,具体实现已经上架Store : Cocos ProMotion
购买后赠送 Cocos Inspector / Assets Manager 二选一 全都送,详情查看上面Store链接之额外福利
赠送加上折扣,约等于不要钱,还等什么 
暂时只实现ccc2.x版本, 3.x
后续支持已初步支持h5 2d项目,无需重复购买

可以看到界面变化时gpu刷新率自动增加;




