蚂蚁互动图形引擎 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


相关文章
|
机器学习/深度学习 人工智能 API
Google I/O 2023 大会上发布了一些令人兴奋的技术和产品,让我们一起来看看吧!
Google I/O 2023 大会上发布了一些令人兴奋的技术和产品,让我们一起来看看吧!
89 0
AppsFlyer 研究(十五)SRN平台 -Facebook对接配置
AppsFlyer 研究(十五)SRN平台 -Facebook对接配置
177 0
|
人工智能 并行计算 安全
国内首个政务领域 Web 引擎 SIG 成立!龙蜥联合儒特科技打造全新一代 Web 架构
龙蜥社区联合儒特科技成立的 Web 引擎 SIG 组,表明了龙蜥对前沿尖端技术探索的前瞻性。
|
存储 编解码 缓存
蚂蚁互动图形引擎 Oasis Engine v0.7 发布
蚂蚁互动图形引擎 Oasis Engine v0.7 发布
237 0
|
机器学习/深度学习 传感器 算法
|
算法 IDE 区块链
关于佛萨奇系统开发源码搭建方案丨Meta Force魔豹联盟系统开发技术讲解
关于佛萨奇系统开发源码搭建方案丨Meta Force魔豹联盟系统开发技术讲解
179 0
|
机器学习/深度学习 人工智能 Kubernetes
Meta 微软等组建元宇宙组织,苹果缺席;Win 8.1 即将停止支持;Xmake v2.6.8 发布 | 思否周刊
Meta 微软等组建元宇宙组织,苹果缺席;Win 8.1 即将停止支持;Xmake v2.6.8 发布 | 思否周刊
171 0
|
移动开发 前端开发 JavaScript
国内再添开源图形引擎:蚂蚁 Oasis Engine 实践之路
随着互联网技术的发展,Web 前端也出现了不同分支,除了传统网页开发以外,前端图形领域也逐渐独立为一个重要方向。虽然目前从整体上来看,前端图形领域还是比较小众的领域,但从发展势头来看,其未来发展前景还是值得关注。
796 0
|
JavaScript 前端开发 API
五福背后的 Web 3D 引擎 Oasis Engine 正式开源
Oasis 从开源走向新的起点,用 3D 化的交互和表达让世界变得更美好。
五福背后的 Web 3D 引擎 Oasis Engine 正式开源
乘云而上的阿里云MVP--第16期全球发布
阿里云最有价值专家,简称阿里云 MVP(Most Valuable Professional),是专注于帮助他人充分了解和使用阿里云的技术实践领袖。 第16期阿里云MVP正式全球发布,本期共有12位来自顶尖高等教育教学领域的专家加入阿里云MVP大家庭,也是首批高校阿里云MVP认证计划。
乘云而上的阿里云MVP--第16期全球发布
下一篇
无影云桌面