蚂蚁图形引擎 Oasis v0.6 发布

来源: OSCHINA
编辑:
2021-11-21 08:44:00

蚂蚁图形引擎 Oasis Engine 0.6 版本已发布,Oasis Engine 是一个移动优先的高性能 Web 图形引擎,被广泛应用在支付宝五福、打年兽等各种互动业务中的图形引擎。

主要变化:

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

以下内容来自发布公告:

渲染系统

新增离线烘焙工具包。在之前的 PBR 美术工作流中,不管是开发者还是美术开发者,都会因为 PBR 的复杂概念和 IBL 烘焙、漫反射球谐烘焙等美术资源的割裂,很难上手整个渲染流程。

因此,我们开发了离线烘焙工具包,并集成到了编辑器 glTF Viewer 中,用户只需要从网上选择满意的 HDRI 贴图,然后上传到编辑器中,即可绑定环境贴图,其中的 IBL 离线烘焙、漫反射球谐烘焙等过程都会自动处理,就算您是零基础的用户,也能轻易上手。除此之外,我们在渲染侧实现了离线烘焙、HDR 渲染、色彩空间校正,PBR 的渲染效果也比之前更加逼真。

由于编辑器暂未开放,直接使用引擎的开发者可以使用 glTF Viewer ,将 HDRI 贴图拖入到 glTF Viewer 中得到烘焙产物。使用详见教程:https://oasisengine.cn/0.6/docs/light-cn#ibl-%E6%A8%A1%E5%BC%8F

物理系统

新增物理系统。引入了由 WebAssembly 编译的 PhysX 作为物理系统的底层,并且设计了多后端架构。因此,我们对物理组件进行了一次合理的 BreakingChange调整。在一套接口下,我们实现了 Physics-Lite(轻量版,不依赖 PhysX,功能简单)  Physics-PhysX(高级版,可以实现复杂的物理效果)两个物理包,前者基于0.5 版本中遗留的物理系统,后者基于 PhysX 4.1,兼容重度轻度物理场景与物理场景。开发者只需要在引擎初始化时进行配置,后续的开发过程中无需关心到底使用了哪种后端物理包。

除了接口的重构,Physics-Lite 在功能上也做了同步升级,支持多 ColliderShape 的组合。未来我们主要会开发 Physics-PhysX,并且适度增强 Physics-Lite 的功能以支持轻量级应用。使用详见文档:https://oasisengine.cn/0.6/docs/collider-cn

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

详细接口设计与架构可以参考 Wiki,后续会在公众号等平台推出《Oasis 物理第二弹:物理多后端与组件架构设计》,《Oasis 物理第三弹:实现轻量级碰撞检测算法包》等一系列介绍 PhysX 以及物理组件架构的技术文章。

输入系统

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

使用详见文档:https://oasisengine.cn/0.6/docs/input-cn

其他更新

引擎功能

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

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

编辑器功能

  • 资产面板新增目录树功能,支持资产拖拽移动。

  • 优化 Gizmo 用户体验。
  • 新增脚本组件名字优化。
  • 完成雨燕工程的打通。
  • 修复若干 Bug,优化体验。

示例

分类

示例

Mesh

  • More Primitive Mesh

动画

  • Animation State Machine Script

物理

  • Lite Collision Detection

  • Lite Raycast

  • PhysX Collision Detection

  • PhysX Raycast

材质

  • PBR Helmet

  • PBR Base

  • IBL Baker && HDR/LDR

  • glTF Viewer

交互

  • Input Manager

场景

  • Video Background

0.7 版本预告

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

详情查看 release note

展开阅读全文
点击加入讨论🔥(6) 发布并加入讨论🔥
本篇精彩评论
大佬,牛!
2021-11-21 15:36
1
举报
6 评论
23 收藏
分享
返回顶部
顶部