LayaAir3.3.0正式版终于来了,性能大幅提升,新UI系统已完善
自 LayaAir 3.3.0-beta.1 于 1 月 4 日发布以来,便广受开发者好评!不少开发者甚至未等正式版发布,便已基于 beta 版本完成项目开发并成功上线微信小游戏平台。
原计划于 6 月 30 日发布的正式版本,在优化过程中迎来了“加码升级”——我们将原本 3.4 版本中的部分性能突破提前引入,对 2D 底层架构进行了重构。这虽然带来了一些意料之外的问题,导致正式版延期四周。但换来的,是引擎性能成倍跃升的震撼体验。这一次的等待,绝对值得!
接下来,将简要回顾 LayaAir 3.3.0 bete 版本的重要功能更新,并介绍正式版在性能优化方面的关键提升等新特性。现在,LayaAir 3.3.0 正式版现已发布,欢迎开发者前往官网(LayaAir.com)下载。
01
回顾四个beta版本
3.3的核心主题是2D能力的巨幅提升,所以在这四个beta版本中,主要是围绕2D新功能的增加与优化。
1.1
3.3.0-beta.1的新特性
在首次发布的3.3.0beta版中,我们不仅补全了所有的2D短板,例如,2D粒子、2D相机、2D自定义Shader等。更是在很多方面处于国产领先,例如,全球唯一拥有双UI系统的游戏引擎、2D灯光与阴影、2D拖尾、2D寻路、内置瓦片地图编辑等等。
更详细的介绍可查看相关的公众号文章《LayaAir3.3已发布,补全了所有2D的短板!》
1.2
3.3.0-beta.2的新特性
试玩广告是一种创新的交互式广告,与传统广告不同,它具有高度的互动性。用户无需下载或跳出当前场景,通过10秒-30秒左右的试玩,就可以体验游戏内容,从而提升用户转化率。
beta.2的版本中,除了常规的更新之外,核心特性就是对于试玩广告的支持,例如,微信试玩广告的发布、HTML5单个文件网页、引擎库更细致的分割等。
更详细的介绍可查看相关的公众号文章《LayaAir3.3.0-beta2针对试玩广告做优化,让广告用户获得极速体验》
1.3
3.3.0-beta.3的新特性
在beta.3版本中,也有比较多的重要更新内容,例如,新增了 Spine 4.2 的运行时库,在 Spine 动画上支持了物理特性。
还重构了 2D 物理,使得 2D 物理的流程与 3D 物理流程统一起来。
TileMap 相关的能力也进一步增强。例如,支持在 LayaAir3-IDE 中将第三方工具 TiledMap 编辑工具制作的地图(tsx\\tmx\\tx)导入,并自动转换为 LayaAir3 内置的 tileMap 地图格式(tres)等功能。
除此之外,还进一步完善了新UI系统、新增层级面板节点的略缩图显示、优化(绘图编辑、形状编辑、适配)形状按钮的位置与显示、本与序列帧动画混排、自定义添加菜单快捷键等等。
更详细的介绍可查看相关的公众号文章《LayaAir3.3.0-beta.3重磅更新!Spine4.2、2D物理、UI系统、TileMap等全面升级!》
1.4
3.3.0-beta.4的新特性
在beta.4版本中最重要的更新是,全面重构了各平台的小游戏适配库并开源。使得更健壮与易用。
然后就是分包模块中支持了WASM子包功能、预览运行面板加了显示stat信息的开关、3D物理新增组合碰撞形状与睡眠检测功能等等。
其它能力,后面的小节中逐个重点介绍。
02
全面完善的新UI系统
3.3.0正式版开始,基于 FairyGUI 架构的新 UI 系统已经稳定和完善,并成为默认首选的UI系统。新UI系统文档也在官网提前上线了。
新 UI 系统用更简单的组件结构,设计出更强大且更丰富的 UI 组件类型,带来了更强的易用性。
以控制器(Controller)为例,当界面中包含两个或以上的页面时,可通过与齿轮(Gear)的结合,实现极为便捷的交互体验——页面切换时自动触发齿轮联动,修改属性无需编写任何逻辑代码,美术人员便能轻松完成按钮切换、界面切换等实用的动态功能。
布局系统也是新UI系统的强大能力,例如“关联布局”可以定义任意两个节点间的位置、大小、比例等关系;“BOX容器”支持四种排布方式:单行、单列、横向优先网格排列、纵向优先网格排列,并且支持分页、对齐设置以及每个网格占位的精细控制,全面弥补了传统 UI 系统中 BOX 容器排布能力的不足。
比如,当 BOX 容器中有多个居中排列的按钮,启用 “Fold Invisibles” 选项后,删除任意一个按钮,系统会自动根据设定间距重新排布,依然保持等距居中的效果。
针对出海项目日益增长的需求。在新 UI 系统中,国际化能力更强大也更易用,支持一键收集所有界面文本,并能在编辑器中实时预览翻译效果,大幅提高效率。
3.3.0 正式版开始,我们在IDE中提供了一个新 UI 系统入门的模板项目,涵盖了新 UI 系统组件的使用实例,方便大家学习和理解新 UI 系统。
关于更多新 UI 系统的强大能力,欢迎大家前往官网文档中查看了解,我们还提供了完善的使用文档。
//文档地址https://layaair.com/3.x/doc/IDE/uiEditor/FairyGUI/readme.html
03
性能大幅提升
3.3.0正式版中的性能提升也是大家最关注的模块之一。性能的优化涉及 UBO 优化、材质合批、WebGPU 渲染优化、全新的 2D 渲染架构设计等。
3.1
减少批次
早在 beta.3 版本中,材质合批功能便已完成。3.3 引擎的材质合批基于 UBO(统一缓冲对象)机制实现,能有效减少渲染过程中的状态切换和批次数。在一个包含多种颜色、金属度和粗糙度变化的 PBR 示例场景中,关闭 UBO 合批时渲染批次高达 1500+,帧率仅 49FPS;而启用 UBO 合批后,渲染批次显著降低至 7 次,帧率提升至满帧 60FPS,性能提升效果十分显著。
3.2
Native优化
在 Native 引擎层面,LayaAir 3.3 对 JS 与 C++ 的交互架构进行了重构,优化了跨语言调用机制,消除了冗余的调用路径,显著提升了执行效率。通过这一系列底层优化,整体渲染性能获得明显增强,特别是在高频调用和复杂场景中的表现更加稳定高效。
在实际测试中,3.3 版本在同时渲染 23377 个物体的 Demo 中,展现出明显的帧率提升效果。我们在 OPPO R17、iPhone Xs Max、Windows PC 等多个平台进行了横向对比,进一步验证了优化成果的广泛适用性与性能价值。
特别是在 2D 场景下,3.3 正式版在 Native 端的性能提升也十分显著。基于某游戏项目组提供的游戏实例进行测试,不同设备均有稳定提升:iPhone 12 的性能提升约 57%,而红米 K60 的帧率表现提升更是达到 2.6 倍。最终,这些优化效果也在线上正式项目中得到了充分验证,体现出 LayaAir 在 Native 渲染性能上的持续进步与落地成效。
3.3
重构2D底层架构
新的2D渲染架构,为2D的网页端、小游戏端以及Native端均带来了巨大的提升效果。
在新的2D架构中,引入了 2DRenderPass
的概念。从 3.3.0 正式版 开始,每个 2D 游戏或 UI 场景将由主 main2DRenderPass
和多个缓存 2DRenderPass
组成。只要某个节点触发了 RenderTexture 切换操作(如 PostProcess2D
、cacheAsBitmap
、mask
等),即被缓存成一个2DRenderPass
,从而更高效地管理渲染。
新架构支持的核心特色功能包括:2D 自定义排序(zIndex)、更易用的自定义 Shader、自定义合批流程、Native 端可下沉 2D 渲染流程、2D 后处理等。
在静态Graphic的Demo中,帧率由 14-16 FPS 提升至 37-39 FPS,性能增长超过 200%+;
在动态Graphic的Demo中,帧率从 9-10 提升至 14-15,性能增长超过 50%。
3.3.0 版本的 zIndex 优化方案,在 4000 个组合体、共 12,000 个精灵的场景中,帧率从未优化时的 4FPS 提升至 60FPS,性能提升极为明显。
3.4
WebGPU 优化
在 LayaAir 3.3 中,WebGPU 渲染后端的稳定性和性能得到了大幅提升。相较于 3.2 版本,调用效率提升了约三倍,显著降低了渲染管线中的性能开销。我们对 WGSL(WebGPU 着色语言)的生成流程进行了重构,现已支持一键导出 SPIR-V 格式,方便开发者跨平台调试与集成。
在底层架构上,新增了基于 WebGPU 的 DeviceBuffer
模块,支持直接生成 StorageBuffer
,为数据处理和 GPU 计算提供了更高效的路径。同时,RenderTexture
也新增了 Storage
接口,允许开发者结合 ComputeShader
使用,充分发挥 WebGPU 的并行计算能力,实现更灵活高效的图像处理与逻辑运算。
为验证 WebGPU 的实际效果,我们设计了一个包含 3000 个 ComputeShader 的极端测试场景。在该场景下,WebGPU 渲染管线在 PC 端 Chrome 浏览器中的性能提升超过 2 倍,在 Android Chrome 浏览器上更是达到了 3 倍以上,展示出强劲的跨平台图形处理能力。
04
结束语
LayaAir 3.3.0 正式版本里除了以上的重要内容,还有很多常规的更新内容,开发者可以前往官网下载的栏目里查看更新日志。以下也列出一部分要点:
新增:IDE 预览服务 中支持了 保护源代码映射 的设置选项(默认打开),勾选后,除本机外,来自内网的请求也无法获得sourcemap文件,进一步增强了项目开发时的代码安全性新增:支持单页的HTML的发布,以及支持压缩新增:节点菜单增加替换预制体功能,用于快速替换节点为另一个预制体,并保留相同名称和类型的属性值。新增:属性面板中点击属性的标题,弹出右键菜单,可以复制、粘贴和重置单条属性的值。新增:增加了2D的后期处理效果,用于替代原来的滤镜效果(原滤镜仍可通过代码使用)新增:新增UI系统的项目配置优化:全面完善了FairyGUI框架的新UI系统优化:增加两个节点互相设置遮罩的禁用与警告,避免因为互相设置遮罩导致显示问题。优化:优化了程序蓝图功能,使其变得更加稳定和易用
LayaAir 3.3.0 是一个具有重要意义的里程碑版本。从这个版本开始,LayaAir不再只是 3D 引擎领先,2D 引擎也不再具有短板, 并且还具有了明显的领先优势。引擎的整体性能也大幅提升,开发体验与运行表现显著增强。因此,我们强烈推荐开发者升级到 3.3 这个版本中来。
END