蚂蚁互动图形引擎 Oasis Engine v0.8 发布

简介: 蚂蚁互动图形引擎 Oasis Engine v0.8 发布


历经数月,蚂蚁互动图形引擎 Oasis Engine v0.8 正式发布,本次里程碑除了原本的 Engine 仓库外,为了 Oasis 生态更健康的发展,还为大家带来了包含一定业务向且具备通用性功能的工具包( Engine Toolkit )仓库。

Engine 物理方面增加了角色控制器,可以大幅减少角色类互动业务的开发成本,同时还引入了物理关节,可以快速完成弹簧、铰链等物理仿真效果。精灵方面增加了 slice(九宫)绘制模式文字方面通过内部机制的优化大幅减少了内存占用,并提升了一定性能。在交互方面增加了 Pointer Button 功能 ,交互功能也逐步趋于完善。

Engine Toolkit 仓库除包含原有 Engine 仓库的相机控制器、GPU 拾取性能数据统计功能外,本次里程碑还新增了辅助线框绘制、平面阴影材质、蒙皮骨骼预览、Gizmo、后处理外描边、线条绘制等功能,这些功能通常可以开箱即用,也非常欢迎开发者贡献该仓库。另外 Oasis Editor 的部分核心功能未来也由 Engine toolkit 提供支持,相信很多内行的同学已经看出本次里程碑新增的功能均为编辑器所需的核心功能。

  Engine

物理更新

新增角色控制器

新版引擎支持了角色控制器组件,角色控制器支持胶囊体或盒子形状 。通过角色控制器可以为角色提供更多基于物理的反馈,配合 Animator 动画能力可以轻松实现障碍物翻阅,爬坡运动等功能。

新增基础物理关节

另外还新增了固定关节,铰链关节和弹性关节,通过关节可以更加容易的控制动态碰撞器的运动约束,让物理仿真型互动效果更丰富,实现更简单。

2D 更新

文字

文字系统底层大重构,文字的纹理基于单个字符进行缓存,对于大量文字渲染,性能和内存均得到大幅提升,以官网示例文字弹幕为例,性能提升 20%,如下,上为重构前,下为重构后:

内存方面,基于字符缓存可以使内部字符纹理得到最大程度的复用,重构后文字弹幕示例内存至少节省了 50%,内存对比如下,上为重构前,下为重构后(空画布内存 33.6 M):

精灵

精灵部分进行了大量重构,主要迎来两个更新:

  • 首先是渲染器可选择绘制模式 SimpleSlicedSimple 为默认模式对应 0.7 版本中的绘制,Sliced 则为新增的九宫绘制,与之配套的是开发者可以设置 SpriteBorder 达到自己期望的拉伸效果。

94acb9d48272c971662af915de9b90d7.gif

  • 同时,我们将控制渲染尺寸的属性放在了 SpriteRenderer 中,开发者可以通过 widthheight 来设置。

交互更新

InputManager 新增三项能力,已经解除对 H5 原生事件的依赖:

  • 支持滚轮,开发者可以在脚本系统中直接获取本帧滚轮改变的差值。
  • 获取触控按键状态,开发者可通过isPointerHeldDownisPointerDownisPointerUp 获取全局的触控按键状态,
  • 获取触控光标位置,开发者可通过 pointerPositionpointerMovingDelta 获取光标此刻在屏幕空间中本帧的位置与位移。

动画更新

BlendShape 动画在 webgl1.0 模式下能力得到增强,之前版本 webgl 1.0  模式下的 BlendShape 动画最大支持数量有一定限制,超过数量限制则在运行时中永远无法播放。新版本采用动态策略解决最大数量限制,运行时根据动画的权重比,动态播放权重影响较大的几个 BlendShape 动画,提升了 webgl1.0 降级模式下的动画效果和易用性。

其他

  • 相机支持 Color、Depth、Stencil 原子化清除能力,可以更灵活的控制渲染混合效果。
  • Shader.getMacroByName 增加变量宏缓存能力,ShaderData 增加 getMacros() 获取当前宏集合方法。
  • 数学类(Vector3Vector4Color 等)增加 copyFrom() 方法,支持和 Object 对象进行数据交互。
  • Renderer 增加 priority属性,增强渲染排序能力,解决深度相同对象渲染冲突问题。
  • Spritepivotreigion 调整至左下角。
  • 增加组件依赖装饰器 dependentCompoments ,配置组件依赖关系更简单。

  Engine Toolkit

辅助线绘制

三维空间中很多无形对象都需要可视化辅助调试,比如物理碰撞器、相机、光等。尤其是物理组件的调试一直是用户很大的痛点,此前的调试要么需要依赖 NVIDIA PhysX Visual Debugger,要么只能靠猜来判断碰撞器的位置。这个里程碑新增的 @oasis-engine-toolkit/auxiliary-lines 良好的解决了该问题。

骨骼查看器

我们在查看附带骨骼动画的模型时,不能一目了然的概览其骨骼情况,是令人非常头痛的问题。该特性可以帮助开发者快速预览模型骨骼概况,并根据骨骼权重展示不同长短以及大小,也支持颜色、粗细等配置。


Gizmo

新增 Gizmo 组件,可通过可视化的方式的进行物体拖拽、旋转、缩放,Gizmo 是三维可视化交互工具的核心功能之一。

描边

无论是在编辑器还是互动业务中,我们经常有高亮选中某个模型的诉求,Outline 采用全屏后处理的模式,可高亮显示模型以及子节点的外轮廓,并支持调整颜色和粗细。

平面阴影

增加平面阴影材质,平面阴影材质虽然有一定局限性,需要地面不能有明显凹凸,但在符合规范的场景下,其具备更好的性能,该效果通常在特定业务中被广泛使用。

画线

使用 WebGL 绘制宽度大于 1 的线一直是难点,新增的 Lines 工具可以渲染实线虚线,并且支持自定义线宽、lineCap 和 lineJoin 等功能,也是业务中很常见的需求,例如开发者可以将该功能用于制作地图导航线。

控制器

基于 InputManager 重构的 OrbitControlOrthoControl 减少了70%代码,同时支持键盘和鼠标的自定义快捷键。

  文档更新

文档 更新内容
安装 Oasis 更新引擎 0.8 包体结构
初始化画布 更新画布尺寸检查与画布尺寸更新时需要同步的操作
加载 3D 模型 补充支持的模型类型
第一个游戏 优化 2D 项目屏幕适配逻辑
引擎 优化标题层级
补充引擎状态接口描述
场景 补全增删改查描述
实体与组件 补全增删改查描述
变换 补充变化的一些基本概念
相机 优化结构
补充相机朝向,剔除与多相机相关内容
材质 优化内容结构,细化渲染状态与队列
纹理 增加 UV 坐标,纹理格式等相关内容。
纹理压缩 增加压缩纹理格式支持示例
精灵与精灵渲染器 更新渲染模式
更新 region 与 pivot 示意图
更新 SpriteRenderer 在三维空间的位姿示意
动画控制器 增加示例代码与动画控制器内的层级描述
物理 增加物理不同包的指标对比
增加物理追帧的描述
增加为 MeshRenderer 添加包围盒的示例

  示例更新

  0.9 里程碑预告

接下来会把更多的关注点放到用户层关注的高级功能,帮助开发者提升渲染效果和开发效率。渲染方面计划增加可支持大型场景渲染的实时阴影,动画方面会支持任意属性编辑,特效方面会增加拖尾效果。

  小彩蛋

编辑器在这个里程碑经过了一次重大设计迭代和代码重构,支持 2D、3D、数字人等三类项目的创建,后续还会扩展更多实用的业务模板,比如 AR、动效等模板。此外,编辑器已支持第三方插件能力,基于插件机制可以快速支撑业务功能。接下去几个月,我们将在内部做进一步的测试和功能完善,期待年底开放与大家见面。

如下图所示,我们制作了数字人插件,用来实现捏脸、换装、动画等数字人业务需求。

  如何进一步了解我们

Oasis 开源社区群 (钉钉):

Oasis 开源社区群管理员 (微信):

网站

官网地址

https://oasisengine.cn

Engine 源码地址

https://github.com/oasis-engine/engine

Engine Toolkit 源码地址

https://github.com/oasis-engine/engine-toolkit


相关文章
|
6月前
|
vr&ar 异构计算
Galacean Engine 1.2 重磅发布!
Galacean Engine 1.2 重磅发布!
176 1
AppsFlyer 研究(十五)SRN平台 -Facebook对接配置
AppsFlyer 研究(十五)SRN平台 -Facebook对接配置
194 0
|
存储 编解码 缓存
蚂蚁互动图形引擎 Oasis Engine v0.7 发布
蚂蚁互动图形引擎 Oasis Engine v0.7 发布
246 0
|
机器学习/深度学习 存储 人工智能
《云上新势力 CLOUD IMAGINE》——Part 2 演讲/文章合集——文章8:《OPPO云边端的协同实践》(上)
《云上新势力 CLOUD IMAGINE》——Part 2 演讲/文章合集——文章8:《OPPO云边端的协同实践》(上)
291 0
|
SQL Linux
当理念冲突时,这些大佬选择与Meta分道扬镳,投身更开放社区
当理念冲突时,这些大佬选择与Meta分道扬镳,投身更开放社区
137 0
|
前端开发 数据可视化 架构师
Oasis 开源一周年沙龙来啦,2月26日,直播间不见不散!
Oasis 开源一周年沙龙来啦,2月26日,直播间不见不散!
154 0
|
人工智能 算法 Linux
3个月实现产品落地,这个GitHub 8000星的AI实时换脸项目有APP了
让视频会议不再枯燥,一键换脸,想用谁的身份开会就用谁的身份。现在,这个名为 Avatarify 的 AI 换脸项目可以在苹果商店中下载使用了。
1420 0
3个月实现产品落地,这个GitHub 8000星的AI实时换脸项目有APP了
|
移动开发 前端开发 JavaScript
国内再添开源图形引擎:蚂蚁 Oasis Engine 实践之路
随着互联网技术的发展,Web 前端也出现了不同分支,除了传统网页开发以外,前端图形领域也逐渐独立为一个重要方向。虽然目前从整体上来看,前端图形领域还是比较小众的领域,但从发展势头来看,其未来发展前景还是值得关注。
819 0
|
Cloud Native Java Go
社区会议|MOSN 社区将会发布 1.0 版本,同时推动下一代架构演进
2 月 24 日,MOSN 举办了 2022 年首次的社区会议。 MOSN 社区在会议上提出了新一年的 Roadmap,社区成员分享了 MOSN 在不同场景下落地实践的经验,以及大家一起大开脑洞,探讨了更多我们可以创造的可能性。
社区会议|MOSN 社区将会发布 1.0 版本,同时推动下一代架构演进
|
JavaScript 前端开发 API
五福背后的 Web 3D 引擎 Oasis Engine 正式开源
Oasis 从开源走向新的起点,用 3D 化的交互和表达让世界变得更美好。
五福背后的 Web 3D 引擎 Oasis Engine 正式开源