本文来源:支付宝体验科技公众号
经历了近 5 个月的开发,Galacean Engine 终于迎来了 1.2 版本!在全新的引擎版本中,我们带来了诸多重磅功能,如 ShaderLab、粒子、动画、XR 和全新的代码编辑器等等。我们对编辑器进行了更精细的设计,全新的设计风格、操作体验和编码体验将为你带来不一样的视觉和操作感受。此外根据大量项目实践和用户反馈,我们还进行了一系列现有功能的优化和问题修复。
最后,编辑器迎来全面公测!从现在开始,你可以直接体验编辑器而无需邀请码。快来感受全新的编辑体验吧!🔗 👉 https://galacean.antgroup.com/editor
编辑器通用更新
界面设计焕新
在最新的编辑器版本中,我们不仅彻底改变了界面风格,更加入了许多令人兴奋的功能和小组件。虽然界面焕然一新,但仔细观察你会发现,侧边栏、节点树、资产等你熟悉的功能依然保留!我们的最新设计旨在为你带来更加现代化的视觉体验和更加高效的工作流程。
与此同时,我们持续致力于提升编辑器的操作便利性,这意味着你可以更便捷地通过键盘和鼠标之间的结合来操作编辑器。无论是选择颜色、菜单,还是调整数值,我们都提供了键盘和鼠标操作方式的支持。
代码编辑增强
我们还重新设计了代码编辑器。在过去,代码编辑器限制了我们仅能在线使用 @galacean/engine
这个包进行脚本开发,不支持其他包的引入。这使得我们在编写大型功能时非常困难。新的代码编辑器支持你轻松引入第三方包。只需输入包名,选择版本,点击导入,即可快速引入三方包到工作区并提供代码提示功能,就是这么简单!
此外,新的代码编辑器提供了一个悬浮的模拟器来提供场景预览功能,从而给你提供更自由的编码体验。使用模拟器上的工具栏,你可以找到更多的调试功能,比如打开场景的统计信息,或者编辑场景中的脚本参数。
新增项目模板
新增多样化的项目模板,涵盖交互式 2D / 3D 内容、模型展示、动画特效等多种常见业务场景。仅需一键选择模板,即可实现开箱即用,极大简化了项目启动流程,无需再从头开始构建!
渲染功能增强
ShaderLab
新版本支持在编辑器中编写 Shader 代码。你可以通过 ShaderLab 语法创建自定义 Shader 资产,并绑定到指定的材质中。这样你在编辑器中不仅可以使用内置的 PBR 、_BlinnPhong_ 和 Unlit 等材质,还能快速打造定制材质,大幅提升创作自由度。你还可以使用 ShaderLab 轻松实现多 Pass 功能,可以在每层 Pass 中指定不同的渲染状态、Uniform 变量等。以下是基于 ShaderLab 实现的薄膜干涉效果:
新增粒子渲染器
新版本推出了引擎的原生特效系统 -- 粒子渲染器。该高性能 GPU 粒子渲染器每帧可以处理数百万个粒子,创造出酷炫效果、模拟流体运动。在编辑器中添加粒子组件,可即刻体验特效对场景的改变。
粒子渲染器目前支持发射、生命周期内颜色、旋转、大小及纹理表动画等多个模块。编辑器中还内置了针对数值、颜色随机量的编辑面板,通过拖拽即可更改参数、进行实时预览。详细内容参见文档。
场景功能增强
简化场景烘焙复杂性,我们将环境光、烘焙相关配置收敛到了场景面板,并默认开启自动烘焙,你只需要调整天空背景、强度等配置,编辑器就会自动进行离线烘焙得到相应产物。
我们还对场景的阴影面板做了更多配置支持。比如,现在可以在二/四级级联阴影对每个区间分布进行配置。我们还在距离 Shadow Distance 处增加了渐隐功能(Shadow Fade),使阴影不会消失的那么“突然”。
PBR 新增各项异性
我们从社区中采纳了增加各向异性的需求,现在你可以通过调整 PBR 材质的各向异性强度、旋转角度、纹理来控制光线沿着自定义切线方向进行延伸,从而模拟出光盘、头发等各向异性光线反射的效果。
相机纹理获取
相机新增深度纹理获取能力,开启后可以在 Shader 中通过 camera_DepthTexture
纹理属性访问场景深度数据。通过该能力可以实现软粒子和水面边缘过渡,以及一些后处理效果。详见文档。
相机新增非透明纹理功能,开启后可以在 Shader 中通过 camera_OpaqueTexture
纹理属性访问场景非透明物体渲染的内容,通过该能力可以实现空间扭曲、水面折射和磨砂玻璃等效果,详见文档。
新增自定义视图矩阵能力,可以通过设置viewMatrix
实现,如果想重置回使用 Tranform 计算视图矩阵,可以调用resetViewMatrix()
。
// Set custom view matrix const customViewMatrix = new Matrix(); Matrix.lookAt( new Vector3(0, 0, 0), new Vector3(0, -1, 1), new Vector3(0, 1, 0), customMatrix ); camera.viewMatrix = customMatrix; // Rest viewMatrix to the world matrix of the entity transform camera.resetViewMatrix();
模型功能增强
支持增量修改
新版本支持模型的增量修改功能,可以二次编辑已上传的 glTF 和 FBX 模型,包括修改模型 Entity 的属性、增删组件和增删子 Entity 等。例如可以实现粒子随动画所控制 Entity 移动的挂点功能。
支持网格压缩
新增 Meshopt 压缩,能够对模型的网格、动画等几何体数据进行压缩,压缩率约为 50%,可大幅减少项目的模型尺寸。编辑器导出项目支持一键开启,详见文档。
新增基础网格
新增 PrimitiveMesh 资产,极大地减小了基础网格资源尺寸,并且可以很方便的调整网格配置参数。
GLTF Loader 增强
本次里程碑通过 Script 动态加载 glTF 模型也得到了增强,AssetPromise
新增 onTaskComplete
和 onTaskDetail
进度相关回调函数,glTFLoader 也继承了此类,我们现在可以方便地拿到每个事件的加载进度以及某个具体 url 的加载进度。
另外加载后得到的GLTFResource
调整为模板资源,使用方式调整为通过调用方法 instantiateSceneRoot()
创建可加入场景的实例化 Entity
对象,更利于ResourceManager
对 glTF 资源的管理,详见文档。
engine.resourceManager .load("glTF's URL") .then((glTF: GLTFResource) => { // Instantiate glTF root const root = glTF.instantiateSceneRoot(); // Add root to scene scene.addRootEntity(root); });
动画功能增强
新版本的动画编辑器新增支持组件、材质等任意属动画编辑,同时可以结合模型增量修改功能给 glTF/FBX 模型添加动画。此外,动画编辑器还做了一些易用性的更新,如录制模式自动添加属性、支持查看模型中的动画数据、增加节点和动画片段是否匹配的监测等。
新增 XR 系统
引擎核心新增 XR 系统,接入了 WebXR,现在你可以用 Galacean 快速创建 AR/VR 项目,不仅支持锚点追踪,平面追踪,图片追踪和碰撞检测等实用功能,还允许你获取任意设备(头显,手柄等)的实时状态。同时,1.2 版本编辑器中内置了 XR 模版,只需编辑器创建模版
-> 本地构建
-> 手机访问
即可在手机上预览 XR 项目,详见文档。
链接
- 1.2 里程碑完整日志
- Runtime: https://github.com/galacean/runtime/releases/tag/v1.2.0-beta.0
- Editor: https://github.com/galacean/editor/releases/tag/v1.2.0-beta.6
- Beaking Change : https://github.com/galacean/runtime/wiki/Migration-Guide
- 官网地址:https://galacean.antgroup.com