当前位置:   article > 正文

LayaAir3.0今日公测发布,新特性全面概述

laya3.0

历时两年研发,两个月的封闭测试。

今天,LayaAir3.0版本终于进入了开放性的公测阶段。

在此,我们首先感谢一直以来关注LayaAir引擎以及积极参与封闭测试的开发者们。

下面开始进入正题,介绍LayaAir3.0版本带来的引擎与IDE新特性。

3.0引擎新特性

基于元宇宙在未来的明确性发展趋势,LayaAir 3.0引擎的核心定位是面向泛行业元宇宙大型项目的全平台高性能3D引擎,这也是引擎设计与更新的主要基调。

01

可编程的渲染管线设计

LayaAir 3.0引擎在设计上共分为四层,分别是开发者使用的引擎上层、可自由拼装拆卸替换的核心算法模块层、可保障多平台支持的渲染接口层、分别应用于Web与Native的渲染内核层。

cdd2dcff4f1fb9469049bb02cc050429.png

其中的核心算法层,经过对引擎的重构,拥有高度的可扩展性和出色的自定义功能。开发者可以基于引擎的核心架构,扩展自己独有的引擎功能,比如脚本系统、组件系统、后期处理系统、渲染命令流系统、合并批次系统等等,来满足各式各样的项目需求。

在这一层里,引擎对渲染核心功能模块解耦,提供可拼接拆装的积木式架构,比如场景管理模块,渲染排序模块,裁剪模块等等。开发者都可以通过接口的形式,使用自己扩展的功能。

同时,引擎也提供了使用命令流功能来收集渲染指令和参数,组成一串渲染指令在渲染流程中插入,从而实现开发者的各种渲染需求。

基于引擎新架构,开发者可以扩展或者替换引擎中核心算法。例如,开发者可以在Native APP版本里,用C++语言的算法去替换掉JS引擎中的算法,这样可以减少因语言级差异导致的Native APP版本性能下降。

在引擎与Native层的数据交互方面,Native层应用共享数据的方式来进行Native层与引擎上层数据的传输,优化语言层之间的数据同步性能。

另外,引擎的渲染底层以及部分对性能消耗较大的核心模块,也直接在Native层进行了实现。不仅进一步提升了Native版本的性能,也为Native层接入更多原生API与平台做好了准备。

02

支持WebGPU

在引擎的四层设计里,渲染内核层也是需要重点提及的地方。WebGPU是基于新的图形标准的API、支持CPU多线程、支持通用计算能力,这些都不是当前的WebGL具备的优势。当然,WebGPU当前还处于早期阶段,没有正式发布,也没有全面普及。所以LayaAir 3.0引擎,在Web端,除了面向当下的WebGL图形API,也支持面向未来的WebGPU图形API。在Native APP版本也是对应的,除了OpenGL之外,也支持Vulkan与Metal。

当前还是开发版本,不久后将正式面世

03

性能进一步提升

极致性能一直是LayaAir引擎的核心追求,在3.0的性能方面,我们不仅在引擎性能上继续突破,也提供了更多项目性能的优化方式。

首先,是基于BVH的场景架构管理。采用该优化方案后,在随机1000个物体的DEMO中,在裁剪效率方面,普通方案需要调用1000次裁剪,采用2.0引擎的方案,用233次找到八叉树节点,又用了300次找到视锥节点进行裁剪。而3.0引擎的方案,仅用了226次即可找到视锥节点进行裁剪。如下图所示:

28861bae867d38adf3ad1e8e8889db03.png

除了裁剪,例如LOD、动态物体、ReflectionProbe等等,均可采用该方案进行优化,并且使用该方案,当物体越多时,优化效率的提升会越明显。

另外,3.0引擎强大的Batch系统,为开发者提供Instance合批、顶点合批、以及自定义合批接口。

通过案例实测表明,当游戏处于8万节点,其中4万渲染节点的情况下,通过开启Batch,仍然保持流畅运行。

93dec0841a14fadd1d11d88c97009477.jpeg8万节点4万渲染节点,未开启Batch仅20帧

c2f6f77a81187466444515baa5bd562b.png8万节点4万渲染节点,开启Batch达到53帧

3.0引擎还新增支持了LOD功能,用于减少远处场景的面数、优化渲染节点管理。

721c791654c114c800095851a2856ecf.pngLOD未开启,模型面数达到274万

94fb105ff249ba223ad0fd1ac0eb741d.pngLOD开启后,模型面数减少到176万

04

渲染升级

3.0引擎重构了PBR材质,使PBR效果更加符合物理渲染。引擎材质增加了各向异性,细节纹理等更加常用的功能。

35f44f009880a63cdae0d73a5a6928d5.png

3.0引擎的渲染空间,从2.0的Gamma升级为linear,并提供了ACES等颜色空间转换,对接国际流程,效果得以提升。

下图为3.0引擎重构PRB材质流程与线性空间的接入后与2.0引擎的效果对比。

f6eacc2982dfa3fa3e7f2c49e27d972e.png

另外,在后期处理模块,3.0引擎正式提供HDR标准ACES空间转换,以及丰富的后期处理管线。引擎提供SSAO,景深,泛光,以及颜色调整等后期处理,开发者也可以更加自身的需求,增加一些自定义的后期处理模块。

例如下图的对比中,开启后期处理后,效果提升明显。

595a8258e2488f044094665798d62986.png未开启后期处理

f34dd2750bd089ea597ac2d8d70d875d.png已开启后期处理

3.0引擎还引入了自研的烘焙系统,支持直接光和间接光的效果,使用lightmap的方式来引入更细腻的GI效果。

9b33671495ef8472c7ab152caaef06ad.png

3.0引擎也对反射探针进行了重构,反射探针提供完整的GI参数,开发者可基于项目,调整某个区域的GI效果。

055b76194510d063fb4e9c1b1dfb4508.png

05

其它重要的优化升级

除以上介绍的重要新特性之外,引擎还有许多升级与优化重构的地方。这里我们将例举一二:

    • 重构资源加载模块,将LayaAir2.0 2D与3D的不同资源加载方法整合,使用通用的资源加载API,让加载更加易用。

    • 重构2D时间轴动画,新增支持2D动画状态机,让2D动画更加丰富与易用。

    • 重构了脚本事件与自定义脚本相关,2D与3D不再分别继承不同的脚本类。让脚本的使用更易用。

    • 重新定义了场景概念,重构2D场景与预制体,以便更好支持2D与3D混合开发。

    • 升级了3D多光源,采用集群的方式实现多光源的算法。

    • 重构了Shader模块,全新的.shader文件,以及shader蓝图,更便利的shader材质封装系统,使开发者更加方便开发shader。

3.0 IDE新特性

除了引擎功能的重构与升级,引擎的开发工作流也进行了全方位的升级。从3.0引擎版本开始,3D编辑器震撼登场,开启了LayaAir 3D引擎一站式可视化开发的新篇章。

01

3D场景编辑模块

LayaAir3.0新增3D场景编辑模块,功能包括了模型导入(FBX、GLTF)、模型与摄像机的基础交互、场景环境设置、烘焙、天空设置等等。满足大型3D场景可视化编辑的全部所需。

d8486569142943c3aa8cf887498e3507.png

02

3D材质编辑模块

LayaAir3.0新增3D材质编辑模块,内置了大量常用模型材质着色器的使用与编辑,例如,布林冯、不受光、基于物理渲染、粒子、拖尾、天空盒等材质着色器。同时还支持自定义着色器文件、着色器蓝图文件的使用,以及材质效果预览等等,满足模型材质编辑的全部所需。

84e4f6c2c6c775b4643a150188c4af27.png

03

3D蓝图编辑模块

LayaAir3.0新增3D蓝图模块,支持自定义材质的着色器蓝图可视化连线编辑以及着色器蓝图函数,让自定义材质的门槛大幅降低。

1a3bbc60bd65be731fd5a201834fb120.png

04

3D粒子编辑模块

LayaAir3.0的3D粒子模块,包括粒子系统、粒子特效组件、粒子材质、粒子效果预览、粒子效果播放控制面板几大部分。涵盖了LayaAir粒子效果可视化编辑的全部所需。

b2a0b2c6390b4adf515690212579b217.gif

05

动画编辑模块

LayaAir3.0升级2D时间轴动画编辑器,增加曲线模式与状态机等。新增3D动画编辑与状态机。满足时间轴动画、属性动画、Shader动画、脚本动画等日常动画编辑所需。

56cab3a0c502d2da1154e4654c708b0e.gif

06

物理编辑模块

LayaAir3.0升级2D物理编辑相关功能,新增3D物理编辑相关功能。主要包括了2D物理与3D物理的刚体、碰撞体、约束等众多物理组件,满足物理世界的可视化编辑所需。

94d152138d2594b0497796cacfa62d56.png

07

UI编辑模块

LayaAir3.0的UI编辑模块,在继承2.0引擎与IDE的核心体验与UI组件的基础上,进行了体验优化,以及更好地支持2D与3D混合开发。

下图是将3D的模型通过RenderTexture的方式,直接设置到2D精灵上的操作流程动图。

3332fa58db0a2fe5cc67f152e1f7f53a.gif

08

ECS组件系统

LayaAir3.0的ECS组件系统,主要包括2D与3D的引擎内置组件、组件的管理、自定义脚本组件、组件生命周期方法与事件触发方法等。使得可视化实体节点的代码逻辑更加清晰,交互控制更加便捷,去耦合化让代码维护更轻松。

bfb7b97ec70da1852fc9a774e2019e31.png

09

支持中英双语切换

除了以上的主要编辑模块外,IDE还支持了中英双语切换,并默认使用中文,全面中文界面(包括引擎符号)对中国开发者更加友好。

中文界面下,IDE也允许开发者自由决定是否采用翻译后的引擎符号(引擎组件名称、属性名称等)

e912c31895e69c76e27962885d95fbb1.png

即将推出的新功能

LayaAir3.0公测阶段,除了让大家体验新版本功能的尝鲜外,另一个主要目的是邀请广大开发者共同参与到引擎的完善工作,多提宝贵意见与建议,以及积极反馈BUG,早日迎来3.0正式版本。

所以,今天推出的公测版本,仅仅是LayaAir3.0对外走出的第一步,并非是完整功能版本。在正式版本发布前,我们除了BUG的修复外,还将陆续推出:LayaAir 3D UI模块、LayaAir引擎资源商店、LayaAir IDE插件等大块功能,以及一些易用性优化相关的小功能。

最后,再次感谢开发者朋友们的关注与支持。让我们共同努力,将LayaAir 3.0打造成为一个功能丰富、易用性强的一站式开发工作流。

ef31140e58d30df9cb2e9ba95490752a.png

END

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/253924?site
推荐阅读
相关标签
  

闽ICP备14008679号