羔羊引擎,是一个开源引擎框架,可以移植到任何平台,此案例以白鹭引擎为例,使用白鹭引擎的底层渲染,构建上层应用架构,同时此处对白鹭做了性能优化
GYLite+egret
无需安装,直接使用vscode运行demo工程
在羔羊引擎的加持下,白鹭引擎突破性能瓶颈,得到质的飞跃!
1、文字动态合批,可以合到任何指定UI图集中,只要不超过一张图集的空间,并且不会再受到文本数量限制,你可以使用无限数量文字 (PS:此前白鹭文字是整个文本框作为一个drawcall绘制的,并且文本框大小会受到限制,如果超过一定尺寸,白鹭缩小文本框绘制后再放大导致文字模糊) 2、graphics绘制,也参与合批,并且绘制大小也不受限制(PS:此前绘制尺寸不得大于1365),新增beginBitmapFill、位图线条、渐变线条等接口,仿照as3的Graphics类 3、图片、文字、graphis均能合在一个批次
下面看效果 组件里面带文字,drawcall只有9,未优化前是30左右 列表里面带文字,只有10,未优化前70多 这个巨大的excel,未优化前有400个drawcall,当前只有14左右 文字大量渲染,性能也是很高的 各种graphics绘制,不会产生额外的drawcall
目前此版本会产生drawcall的因素只有跨图集,滚动裁切和滤镜
合批使用方法,只需要用GYSprite或其子类作为父级容器,通过enableBatch方法打开容器的合批功能,并且通过setBatchAtlasName方法设置指定图集名称(请注意,如果不设置合批的图集名称,则内部会使用一个默认图集名称),则此容器下面的所有小于512的图将会合批到一个指定setBatchAtlasName指定名称的图集中(指定自己已经打好的图集名称也是可以的,注意前提是你的图集有足够多的空闲空间) 注意图集是否合满,默认创建图集是2048×2048,如果合满,则会报异常,可以使用下面方法查看atlasId的图集的情况 GYLite.AtlasRender.getInstance()._atlasDict[atlasId].debugShow(),如下图
demo:http://zsh.freecao.com/GYLite_Batch/main.html?g_v=20221124224649&entry_v=
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。