MPEG 将 glTF 2.0 扩展并集成到 MPEG-I 场景描述 ISO/IEC 23090 中

标准开发是标准开发组织 ( SDO ) 内部,和跨组织高度协作的工作。我们积极参与 3GPP 和 MPEG 工作组,我们为 3GPP 在移动应用方面所做的工作,激励我们应对 MPEG 内部的一项新兴挑战:XR 应用程序的交互式场景描述。最终,我们寻找一种可用于最后一英里 XR 场景描述并适用于各种设备( 包括未来的轻量级移动 AR 设备 )的场景描述格式,这促使我们与 Khronos Group 密切合作,开发了 MPEG-I 场景描述中的一组 glTF 2.0 扩展。最近完成的 MPEG-I 场景描述 ISO/IEC 23090 标准基于 glTF 2.0,使用 MPEG 供应商扩展框架。

在一次 glTF 的聚会演示中,我们分享了导致使用 glTF 的那些用例和要求,并详细介绍了扩展的架构。本博客总结了该演示,解释了将 glTF 2.0 纳入 MPEG-I 场景描述的历程,以及内容创建者和开发者如何开始使用这一新标准,来开发交互式实时应用程序。

作者:
高通技术标准高级总监、Khronos 成员、MPEG 和 3GPP 工作组负责人、元宇宙标准论坛董事会成员 Thomas Stockhammer ;
高通技术标准总监、Khronos 成员、3GPP 和 MPEG 工作组贡献者、元宇宙标准论坛成员 Imed Bouazizi 博士
来源:khronos博客

用例 

元宇宙应用要求许多人能够同时访问和共享动态场景。理想情况下,这些人应该能够获得类似的体验,而不受个人硬件、计算或网络限制的影响。我们通过两个独立的用例来应对这一挑战。

首先,我们研究了在 AR/VR/MR( XR )中访问交互式 3D 场景以进行娱乐( 例如游戏、电影、戏剧等 )的需求。此用例需要考虑以下事项:

  • 需要联合下载或流式传输并并行呈现的静态和动态对象。
  • 数据量巨大,给网络带来压力。
  • 使用多种输入类型( 包括控制器、身体动作、手部动作等 )实现交互式沉浸式体验。
  • 不同的媒体,包括 3D 和 2D 视觉信息、音频、触觉信息等。
  • 多种访问机制,包括下载和智能流媒体。
  • 多种硬件,从功能强大的游戏台式电脑到功能相对有限的移动设备。

此外,我们还研究了新兴的 XR 通话和会议 应用,旨在将现有的基于 IMS 和 WebRTC 的电话服务扩展为支持 AR 的沉浸式多用户体验。此应用涉及创建共享虚拟或混合现实空间,用户可以在其中进行交互:远程用户可以加入具有逼真的 3D 头像的会议,并贡献 2D 和 3D 内容。 

步骤 

两种用例都具有相同的高层的步骤:

1.使用单一的、中心的场景合成功能,不同的参与者可以共享场景。

2.参与者和节点已添加到场景中。

3.随着新用户的加入、新对象的添加以及新资产的共享,场景会动态更新。

4.参与者可以与动画、触发器/动作、化身和姿势跟踪进行交互;从而触发场景更新并分发给所有参与者。

MPEG 将 glTF 2.0 扩展并集成到 MPEG-I 场景描述 ISO/IEC 23090 中

为了促进这些用例在不同硬件上的应用,我们需要一种交换格式来动态地描述场景、为场景做出贡献并聚合对象。

目标设备

MPEG 将 glTF 2.0 扩展并集成到 MPEG-I 场景描述 ISO/IEC 23090 中

我们的目标设备是参考 AR 眼镜,3GPP 将其确定为移动 AR 服务的重要设备类别。此参考设备是一副非常基本的 AR 眼镜,处理能力、功耗和重量有限。用户可能会长时间或定期佩戴它。我们希望这种类型的目标设备,能够访问丰富和轻量级的场景。

我们预计,包括分割渲染在内的分布式计算架构,将成为像我们的参考设备这样的设备访问复杂动态场景的主要组成部分。使用这种方法,人们可以在网络服务器上运行游戏引擎,将场景“ 预烘焙 ”为设备可以渲染的格式。在最简单的形式中,分割渲染架构可能只是使用运行时应用程序进行一些后期处理。

MPEG 将 glTF 2.0 扩展并集成到 MPEG-I 场景描述 ISO/IEC 23090 中

这种方法可以分割运行应用程序所需的 GPU 能力。但是,由于需要跟踪身体运动并实现交互性和沉浸感,实时应用程序还必须在延迟受限的环境中运行。因此,分割渲染工作流需要一种会话描述条目格式,以确保正确同步的功能交换以及渲染帧内场景和对象的描述。这种条目格式预计由 XR 播放器端点处理,该端点可以根据入口点文档中的信息设置用于交付、解码和渲染的管道。 

选择glTF 

在 MPEG 中指定沉浸式媒体技术的过程中,人们很早就认识到沉浸式体验需要灵活、动态的场景描述解决方案。在寻找解决这一差距的方法时,MPEG 审查了现有技术,以确定具有成功部署和广泛使用历史的格式。然后,该小组评估了其中一种格式是否能满足确定的要求,或者是否需要从头开始定义一种新格式。

我们特别关注的是向消费设备进行最后一英里分发的问题,这需要我们降低复杂性、扁平化层次结构并压缩组件,以高效利用网络。有效的方法需要适应设备和网络,支持纹理、光照烘焙等功能。

glTF 脱颖而出,成为一种典范选择。glTF 2.0 已经提供了大量基本功能:它标准化了 3D 场景和模型的创建,并被公认为开放标准。它通常被称为“ 3D 的 JPEG ”,具有我们所需的许多功能。我们的挑战是确定我们是否可以扩展 glTF 以集成新类型的实时媒体元素,如动态点云、动态网格和 2D 内容。我们想开发类似“ 用于 XR 和 Metaverse 的 HTML5 ”的东西。使用现有的编解码器,HTML5 使 Web 上的媒体更适合移动设备,同时整合了实时多媒体元素并支持不同的消费环境和地理位置。我们设想通过扩展 glTF 以类似的方式使 MPEG 更适合 XR。

至关重要的是,使用 glTF 将 MPEG 扩展到 XR,将为 3D 体验创建一个与供应商无关的切入点,因此用户无需依赖专有应用程序或平台。基于标准的方法灵活且可分发,可实现高度可移植且可互操作的共享体验。

现在,通过与 Khronos Group 的密切合作,我们完成了 MPEG-I 场景描述 ISO/IEC 23090 的第一个版本,将 glTF 2.0 集成到 MPEG 供应商扩展框架中。

MPEG 场景描述架构 

演示引擎是 MPEG-I 场景描述架构的核心。它类似于 HTML 应用程序中的浏览器:演示引擎旨在跨各种平台和设备提供一致的体验。

MPEG 将 glTF 2.0 扩展并集成到 MPEG-I 场景描述 ISO/IEC 23090 中

用户进入沉浸式体验的入口点是场景描述文档或场景图。演示引擎从称为 S 接口的单独接口检索场景图和任何后续场景更新。例如,在我们的会议室用例中,所有交互( 用户加入和离开、共享内容、改变姿势等 )都是场景更新,然后将其镜像为共享环境的当前状态。

然后,演示引擎与媒体访问功能进行通信,告诉它需要加载哪些媒体和数据集,包括它们的所有组件。场景图包含如何访问所有组件的描述。然后,此信息被传递到媒体访问功能以进行媒体加载。

附加界面解决本地交互和交互式体验,这对于我们想要实现的沉浸式体验至关重要。

MPEG 将 glTF 2.0 扩展并集成到 MPEG-I 场景描述 ISO/IEC 23090 中

上图显示了演示引擎和媒体访问功能之间的接口的更详细视图。此接口记录在 ISO/IEC 规范 2390 第 14 部分中,该规范定义了架构、接口和 API,例如媒体访问功能 API 和缓冲区 API。我们的目标是将媒体层与演示引擎明显分开。理想情况下,演示引擎应该对网格或视频纹理压缩技术如 HEVC 或 AV1 等,一无所知。

MPEG 将 glTF 2.0 扩展并集成到 MPEG-I 场景描述 ISO/IEC 23090 中

媒体访问功能 ( MAF ) API 接收媒体描述及其位置,寻找引用媒体的最佳编码或访问路径。它建立特定于该媒体格式的管道,确保原始媒体通过缓冲区接口传送到演示引擎。然后,此接口将解码和解密的媒体存储在格式良好的缓冲区中,该缓冲区的描述在场景图中提供。场景描述提供了对 glTF 访问器和缓冲区等功能的理解,确保演示引擎可以毫不费力地获取和渲染数据。

MAF API 的核心功能之一是优化。根据网络变化或虚拟场景中用户的视点等因素,此功能可能会决定不获取视野之外的某些场景元素,或调整所获取媒体的细节级别。此 API 还允许您提供时间、空间、同步、着色器和媒体使用数据。

MPEG 将 glTF 2.0 扩展并集成到 MPEG-I 场景描述 ISO/IEC 23090 中

例如,动态网格可能有一个需要视频纹理的组件。媒体访问功能会收到使该纹理可用的请求,查看替代方案,并构建针对特定访问技术量身定制的媒体管道。管道会获取并解码媒体,并在必要时执行必要的后处理,例如 YUV 到 RGB 的转换。然后,它将媒体传送到缓冲区以供演示引擎检索。

MPEG-I 场景描述 ISO/IEC 23090  第一阶段 glTF 扩展 

在第一阶段,MPEG 工作组的目标是为 glTF 引入动态的、基于时间的维度。这将支持动态媒体形式,例如视频纹理、音频、动态网格和点云。

MPEG 将 glTF 2.0 扩展并集成到 MPEG-I 场景描述 ISO/IEC 23090 中

在上图中,三个关键的 glTF 扩展以绿色表示,所依赖的扩展以灰色表示。关键扩展包括:

  • MPEG_Media:定义对外部引用媒体的访问。
  • MPEG_accessor_timed:通知演示引擎访问器指向动态缓冲区。此扩展使演示引擎做好准备,以应对元数据( 包括顶点数量等信息 )可能逐帧发生变化的情况。
  • MPEG_buffer_circular:一个可同时进行读写操作的动态缓冲区。媒体访问功能写入此缓冲区,演示引擎同时从中读取。

MPEG_Media 扩展,提供了详细的媒体描述、播放说明和访问方法。您可以根据需要添加任意数量的备选访问路径,以支持各种目标设备的备选编码或不同媒体格式。这种灵活性意味着媒体访问功能必须智能地选择最合适的替代方案。

各种媒体源亦可以被访问到,从使用 DASH 的动态流媒体集到通过 WebRTC 的实时媒体,甚至是本地存储的内容。该系统必须解决多项挑战,包括解密已被加密的内容,或格式之间的转换。目标始终是满足演示引擎的期望。

MPEG 将 glTF 2.0 扩展并集成到 MPEG-I 场景描述 ISO/IEC 23090 中

MPEG_buffer_circular 和 MPEG_accessor_timed 扩展协同工作,以确保同步并防止冲突。MPEG_buffer_circular 支持缓冲区管理,指示演示引擎为媒体管道创建一个具有建议帧数的循环缓冲区。目标是防止由于读写过程之间的速度差异而导致的帧丢失。

MPEG 将 glTF 2.0 扩展并集成到 MPEG-I 场景描述 ISO/IEC 23090 中

目前,glTF 使用静态缓冲区。MPEG_accessor_timed 扩展引入了对动态缓冲区的支持,以实现实时和流媒体。人们可以设置不同的访问器参数,根据潜在的数据动态提供灵活性。例如,在视频纹理的情况下,某些参数( 如视频宽度和高度 )即使在自适应流式传输时也保持一致。因此,它们被标记为静态。相反,在动态网格等情况下,所有参数( 例如顶点和面的数量 )都可能逐帧变化。MPEG_accessor_timed 允许您访问包含动态参数的另一个缓冲区视图,从而可以描述这些频繁的变化。

MPEG_accessor_timed 具有 Accessor 和 bufferView 字段的标头,这些标头可能会随时间而变化:

1.访问者信息:

  • 组件类型
  • 缓冲视图
  • 类型
  • 规范化
  • 字节偏移量
  • 数数
  • 最大限度
  • 最小限度

2.bufferView信息:

  • bufferViewByteOffset
  • bufferViewByteLength
  • bufferViewByteStride

这些动态缓冲区的使用是可选的,可以增加适应性而不会产生不必要的复杂性。视频纹理是使用此概念的首批扩展之一:定时访问器告诉演示引擎,它需要启动动态缓冲区才能访问视频纹理。如果设备或系统不支持视频纹理,它可以默认为一个常规静态图像占位器。 

MPEG_audio_spatial 

MPEG 工作组还创建了用于空间音频的 glTF 扩展,以实现更加身临其境的体验。在当前扩展中,支持的格式包括基于单声道基于对象的源和 HOA( 高阶全景声 )。

音频源可以与效果相连接;当前版本的规范支持残响。MPEG_audio_spatial 允许您使用“ 音频侦听器 ”节点跟踪用户的位置。我们建议将“ 音频侦听器 ”添加为场景摄像机的子节点或摄像机的扩展。这允许 MPEG_audio_spatial 根据用户的动作进行调整并提供逼真的声音方向。

其它 Phase One glTF 的扩展 

MPEG-I 场景描述 ISO/IEC 23090 第一阶段的开发还包括各种相关的 glTF 扩展,支持主要扩展的功能:

1.MPEG_scene_dynamic – 表示场景描述文档将被更新。

  • 通过 JSON 补丁协议提供更新。
  • 补丁样本是一个原子更新操作(所有补丁操作都是一个事务的一部分)。
  • 应用补丁后场景的一致性/有效性由作者负责。

2.MPEG_viewport_recommended – 提供动态变化的信息,包括节点和摄像机对象的平移和旋转,以及摄像机对象的固有摄像机参数。

3.MPEG_animation_timing – 提供 MPEG 媒体时间线和 glTF 2.0 定义的动画时间线之间的对齐。

MPEG 工作组正在致力于开源 MPEG-I 场景描述 ISO/IEC 23090 的 Unity Player 实现。您可以在youtube查看此实现的简短演示。视频地址:https://www.youtube.com/channel/UC0YbmGeNSGPd-StauM1qajg

工作组还致力于 Blender 的实现,以便您可以使用 MPEG-I 场景描述创作和导出场景。 

第二阶段和未来的 glTF 扩展 

MPEG 将 glTF 2.0 扩展并集成到 MPEG-I 场景描述 ISO/IEC 23090 中

在第二阶段,MPEG 工作组正在开发额外的 glTF 扩展,旨在通过整合新功能来弥补 MPEG-I 和 glTF 与我们的目标 XR 用例之间的任何现有差距,从而丰富用户体验。第二阶段引入了对以下方面的支持:

  • 增强现实 ( AR )
  • 增强的互动性
  • 动态照明
  • 触觉反馈
  • 6 个自由度 ( 6 DOF )
  • 音频方面的改进

MPEG_scene_anchor 和 MPEG_node_anchor 确保扩展现实 ( XR ) 中的流畅功能,允许 AR 用户将虚拟场景锚定到他们的现实世界,使其感觉像是他们房间或办公室的一部分。

目的是让场景描述,向接收者传达环境中特定的“ 可追踪物 ”。这些可能是熟悉的特征,例如地板,也可能是特定于应用程序的元素,例如二维码。此指导有助于将虚拟场景锚定到现实世界。

MPEG_scene_interactivity 和 MPEG_node_interactivity 根据将触发器与操作联系起来的行为进行操作。触发器可能是碰撞、近距离用户输入,或物体可见性等事件。操作可能涉及激活或变换物体、启动动画、更改材料或启动触觉反馈。

MPEG 工作组还致力于通过 MPEG_node_avatar 集成虚拟形象。虚拟形象的核心是网格,可能是动态的或动画的。虚拟形象可以实现交互。它们充当您的数字孪生,让您可以用双手与物体交互,例如打开电视、打开门或使用电灯开关。对虚拟形象进行分割至关重要,这样才能识别特定的身体部位( 如手或手指 )以实现交互。此扩展将利用 VRM 联盟等开发的基于 glTF 的虚拟形象表达格式,并将此类虚拟形象集成到交互式场景中。

我们还通过 MPEG_dynamic_light_texture_based 开发动态照明。此功能允许动态照明,它更像视频而不是静态光源:反射率等系数可以随时间而变化。在 AR 应用中,此扩展将允许您监控当前的光照条件并相应地调整渲染。

MPEG 将 glTF 2.0 扩展并集成到 MPEG-I 场景描述 ISO/IEC 23090 中

MPEG 触觉扩展 MPEG_haptic和MPEG_material_haptic 支持各种功能,如刚度、摩擦力和温度——我们的目标是涵盖当前和未来的触觉响应。我们的系统支持基于虚拟世界中的触发器( 例如虚拟对象的纹理 )的各种触觉体验。例如,用手抚摸数字墙壁可能会根据其纹理( 无论是光滑还是粗糙 )提供特定的触觉反馈。

MPEG 工作组也在增强我们的音频支持。我们的目标是集成 6 DOF 音频解决方案,以提供更具沉浸感的声音体验,超越我们当前的空间音频产品。该系统将考虑声学材料等因素,为音频提供类似于 PBR 的功能。

结论 

glTF 已被证明是一种有效且易于扩展的 3D 格式,MPEG 可以将 XR 应用的交互式场景描述与最近完成的 MPEG-I ISO/IEC 23090 标准相结合。ISO 的 MPEG 工作组期待扩大与 Khronos Group 的合作,继续扩展 glTF,将交互式 3D 和流媒体世界融合在一起。 

资源 

鼓励有兴趣进一步探索 MPEG-I 场景描述 ISO/IEC 23090 的开发人员探索以下资源:

  • MPEG-I 场景描述 ISO/IEC 23090 Khronos 扩展
  • GitHub 存储库 – 提供反馈、报告问题或建议新功能
  • MPEG-I 场景描述白皮书
  • MPEG-I 参考软件
  • MPEG-I 开源 Unity 实现
  • 5G-MAG:XR 与 5G 的融合

您还可以在 YouTube 上观看完整的原始演示文稿:https://www.youtube.com/watch?v=U9VgiYORNrA

本文来自作者投稿,版权归原作者所有。如需转载,请注明出处:https://www.nxrte.com/jishu/51331.html

(0)

相关推荐

发表回复

登录后才能评论