简体中文
简体中文

Galacean Engine v0.6 发布

Bo Kou
November 19, 20217 min read

忽如一夜春风来,千树万树梨花开。经过两个月的努力,从秋天到冬天,Galacean Engine 终于引来了 0.6 版本的发布。

  • 新版本增加**离线烘焙工具包,**使用户能够更快更好地获得高质量的 PBR 渲染效果;
  • 增加强大的** PhysX 物理系统**,在功能和性能上相比上个版本都有明显提升;
  • 增加输入系统,弥补了引擎在交互功能上的短板,大幅减少编写交互功能的代码量;
  • 还有其他微小而美好的功能打磨和更新...

还在等什么,一起来尝鲜吧!

渲染系统

新增离线烘焙工具包。在之前的 PBR 美术工作流中,不管是开发者还是美术开发者,都会因为 PBR 的复杂概念和 IBL 烘焙、漫反射球谐烘焙等美术资源的割裂,很难上手整个渲染流程。因此,我们开发了离线烘焙工具包,并集成到了编辑器和 ** glTF Viewer**,然后上传到编辑器中,即可绑定环境贴图,其中的 IBL 离线烘焙、漫反射球谐烘焙等过程都会自动处理,就算您是零基础的用户,也能轻易上手。除此之外,我们在渲染侧实现了离线烘焙、HDR 渲染、色彩空间校正,PBR 的渲染效果也比之前更加逼真。

editor.gif

由于编辑器暂未开放,直接使用引擎的开发者可以使用 glTF Viewer ,将 HDRI 贴图拖入到 glTF Viewer 中得到烘焙产物。

gltf-viewer-mini.gif

物理系统

新增物理系统。引入了由 WebAssembly 编译的** [PhysX](https://developer.nvidia.com/gameworks-physx-overview) 作为物理系统的底层,并且设计了多后端架构。因此,我们对物理组件进行了一次合理的 BreakingChange 调整。在一套接口下,我们实现了 _Physics-Lite_(轻量版,不依赖 PhysX,功能简单)** 和_ Physics-PhysX_**(高级版,可以实现复杂的物理效果)**两个物理包,前者基于0.5 版本中遗留的物理系统,后者基于 PhysX 4.1,兼容重度轻度物理场景与物理场景。开发者只需要在引擎初始化时进行配置,后续的开发过程中无需关心到底使用了哪种后端物理包。除了接口的重构,Physics-Lite 在功能上也做了同步升级,支持多 ColliderShape 的组合。未来我们主要会开发 Physics-PhysX,并且适度增强 Physics-Lite 的功能以支持轻量级应用。

编辑器也全面适配最新的物理组件,添加UI列表功能,使得在同一个碰撞器中添加多种 ColliderShape

截屏2021-11-08 下午12.54.54.png

详细接口设计与架构可以参考 Wikihttps://github.com/galacean/engine/wiki/Physical-system-design),后续我们会在公众号等平台推出《物理第二弹:物理多后端与组件架构设计》,《物理第三弹:实现轻量级碰撞检测算法包》等一系列介绍 PhysX 以及物理组件架构的技术文章。

输入系统

新增输入系统。该系统是引擎功能长期缺失的部分,之前开发者反馈实现点击等交互需求的代码比较繁琐,v0.6 全新的输入系统将大幅减少编写交互功能的代码量。支持了 Pointer 类型的事件,抹平了鼠标和触屏事件的差异,能够满足常用的点击、脱拽等交互需求,并且在脚本组件的生命周期函数中增加对交互事件的响应,简化了注册输入事件的成本。鼠标滚轮(Wheel)、键盘(Keyborad)等事件会在以后的版本中支持。

inupt.gif

其他更新

引擎功能

  • 动画系统增加了状态机脚本,开发者可以方便的在动画状态开始/更新/结束处编写自己的业务逻辑。
  • PrimitiveMesh 新增 createCapsule() 方法,可快速方便的创建圆柱体。
  • Texture2DRenderColorTextureRenderColorTexture 的读取像素接口 getPixelBuffer() 增加 miplevel 参数,可以指定读取像素的纹理等级。
  • Camera.render() 方法增加 miplevel 参数,可指定渲染的纹理等级。
  • glTF 解析 ModelMesh 时支持更多 UV 通道和顶点色。
  • Animator 增加 getCurrentAnimatorState(),可以获取当前播放的动画状态。
  • 精灵 Sprite 增加克隆功能。
  • 四元数 Quaternion 增加 rotateAxisAngle() 方法。
  • SkyBox 材质增加 RGBM HDR 编码格式支持。
  • 引擎入参增加色彩空间配置,默认线性空间。
  • 直接光照改为物理单位,即除以 PI。如果觉得之前的场景变暗,属于正常现象,可以尝试添加HDR环境贴图。

详见 Change Log:https://github.com/galacean/engine/releases/tag/v0.6.0

编辑器功能

  • 资产面板新增目录树功能,支持资产拖拽移动。
1636025957114-48bf100a-7849-4131-aecf-5fbb757036ab.gif
  • 优化 Gizmo 用户体验。
  • 新增脚本组件名字优化。
  • 完成雨燕工程的打通。
  • 修复若干 Bug,优化体验。

0.7 版本预告

  • 物理:进一步挖掘 PhysX 物理引擎特性,扩充 DynamicCollider 的方法以支持刚体运动,并且增加刚体约束,角色控制器等组件。
  • **纹理:**对纹理的结构进行整合重构,并新增 Texture 纹理数组等功能。
  • **文字:**增加 2D 文字系统,进一步完善功能闭环和 2D 能力。

写在最后

欢迎大家 star 我们的 github 仓库,也可以随时关注我们后续 v0.7 的规划,也可以在 issues 里给我们提需求和问题。开发者可以加入到我们的钉钉群里来跟我们吐槽和探讨一些问题:

Galacean Logo
Make fantastic web apps with the prospective
technologies and tools.
Copyright © 2024 Galacean
All rights reserved.