嘿嘿时隔一年多我又回来了 上次带着同步 这次 一样还是重磅功能 名字叫做: (DrawCall 究极 动态合批)
直接上链接 : http://kyu.jisol.cn:8886/down/vcKfKn3eimwK
开始啰嗦:
这从我前几天一个小Demo说起 在做这个Demo的时候 想着今年找工作老是问DC优化 所以这个Demo我非常注重DC 也跑去充分了解DC 然后 我最终决定使用动态合图的快乐~
在写完Demo 测试时候发现一个严重的问题 因为我Demo是一个动态加载地图 经常移除移入节点 并且字体用的是 BITMAP 然后 高频率的加载地图 莫名导致 DC上升 和 内存上升问题
通过Spector.js发现动态合批并没有最优解 每次移除节点时候动态图片还存在移除节点的图片 尤其是文字 如果要重置动态合批则需要加载新的场景 但是大部分公司的框架加载场景都是预制体加载 很少加载场景 在我看来 动态合批如果没有用好 甚至不如 不合批 所以大部分项目使用自动合批+渲染工具(渲染前修改节点位置 渲染完改回来 有时候 效果不好)
所以经过我两天两夜的爆改引擎 已经达到了下面效果:
1.BITMAP 文字复用 引擎会尽量使用之前的文字贴图
2.贴图没有被使用会自动从合批中释放
效果视频: https://demo.kyu.jisol.cn/engine/录制_2023_05_30_00_50_23_85_x264.mp4
小Demo网址: Cocos Creator | WorldCard (jisol.cn)
提示:
1.建议酌情使用因为没有系统测试呢 (还可以优化不过我着急分享出来)
2.随便用哈 不过前提是以后面试遇我别问我DC哈
3.官方赶紧优化动态合批呗~
4.下载引擎的老铁请留言哈~
5.太晚了先不分享修改内容(有空分享) 自己比对改动地方哈