高通分享:glTF 2.0扩展MPEG、3GPP在AR/VR 3D场景的沉浸式体验

news2024/11/15 15:58:46

日前,高通技术标准高级总监托马斯·斯托克哈默尔(Thomas Stockhammer)和高通技术标准总监伊梅德·布亚齐兹(Imed Bouazizi)撰文分享了ISO和Khronos之间是如何紧密合作,并最终开发出MPEG-I Scene Description ISO/IEC 23090标准,包括将glTF 2.0纳入MPEG-I Scene Description的过程,以及内容创建者和开发者可以如何开始使用这个新标准来开发交互式实时应用。下面是具体的整理:

添加图片注释,不超过 140 字(可选)

标准开发是标准开发组织之内和之外的高度协作性工作。我们在3GPP和MPEG工作组中都非常活跃,而我们在3GPP方面的工作启发着我们在解决MPEG中出现的一个新挑战:XR应用的交互式场景描述。

最终,我们对可用于最后一英里的XR场景描述,并解决各种设备问题(包括未来的轻量级移动AR设备)的场景描述格式的追寻之旅促使我们与Khronos密切合作,并在MPEG-I Scene Description中开发一套glTF 2.0扩展。新完成的MPEG-I Scene Description ISO/IEC 23090标准基于glTF 2.0,并采用MPEG供应商扩展框架。

在glTF会议演示中,我们分享了引导我们开发glTF的用例和需求,并详细介绍了扩展的架构。下面这篇博客总结了所述演示,解释了将glTF 2.0纳入MPEG-I Scene Description的过程,以及内容创建者和开发者可以如何开始使用这个新标准来开发交互式实时应用。

用例

元宇宙应用要求多人能够同时访问和共享动态场景。理想情况下,用户应该能够拥有类似的体验,不受个人硬件、计算或网络限制的影响。我们根据两个离散的用例来处理这个挑战。

首先,我们着眼于在AR/VR/MR中访问交互式3D场景的娱乐需求,如游戏,电影和戏剧等。这个用例需要考虑如下事项:

  • 需要共同下载或流式传输,同时并行渲染的静态和动态对象。

  • 巨大的容量和数据量,给网络带来压力。

  • 使用各种输入类型的交互式和沉浸式体验,包括控制器,身体动作和双手等。

  • 不同的媒体,包括3D和2D视觉信息、音频、触觉信息等。

  • 多种访问机制,包括下载和智能串流。

  • 各种硬件,从强大的游戏PC到相对有限的移动设备。

另外,我们研究了XR呼叫和会议的新兴应用,目的是将现有的基于IMS和webRTC的电话服务扩展为具有AR支持的沉浸式多用户体验。这种应用涉及创建共享的虚拟现实或混合现实空间,并允许用户在其中进行交互:而远程用户可以使用逼真的3D Avatar加入会议,并贡献2D和3D内容。

过程

两个用例共享相同的high-level过程:

  • 使用单一的中央场景合成功能,场景可以在不同的参与者之间共享。

  • 参与者和节点添加到场景中。

  • 场景会随着新用户的加入、新对象的添加和新asset的共享而动态更新。

  • 参与者可以与动画,动作,Avatar等进行交互,从而触发将场景更新分发给所有参与者。

添加图片注释,不超过 140 字(可选)

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

目标设备

添加图片注释,不超过 140 字(可选)

我们的目标设备是AR眼镜参考。这款参考设备是一副非常基础的AR眼镜,处理能力、功耗和重量都有限。这是一种用户可以长时间佩戴或定期佩戴的设备。我们希望在这种类型的目标设备访问丰富和轻量级的场景。

我们期望分布式计算架构成为这种设备访问复杂、动态场景的主要组件。使用这种方法,开发者可以在网络服务器操作游戏引擎,将场景“预烘培”成设备可以渲染的格式。在最简单的形式中,Split-Rendering拆分渲染架构可能只使用运行时应用进行一定的后处理。

添加图片注释,不超过 140 字(可选)

这种方法分割了运行应用所需的GPU功率。然而,由于需要追踪身体运动并实现交互性和沉浸感,实时应用同时必须在延迟受限的环境中运行。所以,拆分渲染工作流需要一种会话描述输入格式,以确保渲染帧内场景和对象的适当同步功能交换和描述。这种输入格式预计将由XR播放器端点处理,根据输入点文档中的信息设置交付、解码和渲染的管道。

选择glTF

在为MPEG中的沉浸式媒体指定技术的早期过程中,已经确定了对沉浸式体验的灵活和动态场景描述解决方案的需求。在寻找解决这一差距的方案时,MPEG回顾了现有技术,以确定具有成功部署和广泛使用历史的格式。然后小组评估它们是否能够满足所确定的需求,或者是否需要从零定义新的格式。

我们对消费者设备的最后一英里分布问题特别感兴趣,这需要我们降低复杂性,扁平化架构,并压缩组件以实现有效的网络使用。一种有效的方法需要适应设备和网络,支持纹理、光照烘焙等功能。

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

至关重要的是,使用glTF将MPEG扩展到XR将为3D体验创建一个供应商中立的入口点,这样用户就不需要依赖专有的应用或平台。基于标准的方法是灵活和可分发的,支持高度可移植和可互操作的共享体验。

现在,通过与Khronos的紧密合作,我们已经完成了第一个版本的MPEG-I Scene Description ISO/IEC 23090,将glTF 2.0集成到MPEG供应商扩展框架中。

MPEG场景描述架构

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

添加图片注释,不超过 140 字(可选)

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

接下来,表示引擎与媒体访问函数通信,告诉它需要加载什么媒体和数据集,包括它们的所有组件。场景图包含了如何访问所有组件的描述,然后将信息转发给媒体访问函数以加载媒体。

额外的接口处理本地交互和交互体验,这是我们目标实现的沉浸式体验的核心。

添加图片注释,不超过 140 字(可选)

从上图可以看到表示引擎和媒体访问功能之间接口的详细视图。这个接口记录在ISO/IEC specification 2390, Part 14,其中定义了架构、接口和API,例如Media Access Function API和Buffer API。我们的目标是将媒体层与表示引擎分开。理想情况下,表示引擎应该不受HEVC或AV1等网格或视频纹理压缩技术的影响。

添加图片注释,不超过 140 字(可选)

Media Access Function API接收媒体描述及其位置,为所引用的媒体寻求最佳编码或访问路径。它建立了一个特定于媒体格式的管道,确保通过Buffer接口将原始媒体交付给表示引擎。然后,接口将解码和解密的媒体存储在Buffer中,而Buffer的描述在场景图中提供。场景描述提供了对glTF访问器和Buffer等功能的理解,确保表示引擎可以毫不费力地获取和呈现数据。

Media Access Function API的核心功能之一是优化。根据网络变化或用户在虚拟场景中的视点等因素,它可能决定不获取视图之外的特定场景元素或调整所获取媒体的细节级别。这个AP同时允许你提供时间、空间、同步、着色器和媒体消耗数据。

添加图片注释,不超过 140 字(可选)

例如,一个动态网格可能有一个需要视频纹理的组件。Media Access Function获得确实纹理可用的请求,查看替代方案,并构造针对特定访问技术定制的媒体管道。管道获取和解码媒体,如果需要,执行必要的后处理,如YUV到RGB转换。然后,它将媒体传递到Buffer,以供表示引擎检索。

MPEG-I Scene Description ISO/IEC 23090的第一阶段

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

添加图片注释,不超过 140 字(可选)

在上面的插图中,三个关键的glTF扩展是绿色阴影,而依赖的扩展是灰色阴影。关键扩展包括:

  • MPEG_Media:定义对外部引用媒体的访问。

  • MPEG_accessor_timed:通知表示引擎访问器指向一个动态缓冲区。这个扩展使得表示引擎能够预期元数据可能在帧与帧之间发生变化,包括顶点数量等信息。

  • MPEG_buffer_circular:并发读写操作发生的动态缓冲区。Media Access Function写入缓冲区,而表示引擎同时从中读取。

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

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

添加图片注释,不超过 140 字(可选)

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

添加图片注释,不超过 140 字(可选)

目前,glTF使用静态缓冲区。MPEG_accessor_timed扩展引入了对动态缓冲区的支持,从而启用实时和流媒体。可以设置不同的访问器参数,从而提供基于潜在数据动态的灵活性。例如,在视频纹理的情况下,特定参数,如视频宽度和高度,即便在自适应流媒体播放时都保持一致。所以,它们标记为静态。

相反,在像动态网格这样的情况下,所有参数,如顶点和面的数量,都可能在帧与帧之间发生变化。MPEG_accessor_timed允许你访问另一个包含动态参数的缓冲区视图,允许描述这种频繁的更改。

MPEG_accessor_timed有Accessor和bufferView字段的header,而它们可能会随着时间的推移而改变:

Accessor信息:

  • componentType

  • bufferView

  • type

  • normalized

  • byteOffset

  • count

  • max

  • min

bufferView信息:

  • bufferViewByteOffset

  • bufferViewByteLength

  • bufferViewByteStride

这种动态缓冲区的使用是可选的,从而增加了适应性,而且没有不必要的复杂性。

视频纹理是最早使用这个概念的扩展之一:定时访问器告诉呈现引擎,它需要启动一个动态缓冲区来访问视频纹理。如果设备或系统不支持视频纹理,它可以默认为常规静态图像占位符。

MPEG_audio_spatial

MPEG工作组同时为空间音频创建了glTF扩展,以实现更身临其境的体验。在当前的扩展中,支持的格式包括基于单对象的源和HOA。

音频源可以与效果相关联。当前版本的规范支持混响。

MPEG_audio_spatial允许你使用“audio listener”节点跟踪用户的位置。我们建议将“audio listener”添加为场景camera的子节点或camera的扩展。这允许MPEG_audio_spatial根据用户的移动进行调整,并提供真实的声音方向。

额外的第一阶段

MPEG-I Scene Description ISO/IEC 23090的第一阶段开发同时包括各种相关的glTF扩展,支持主要扩展的功能:

  • MPEG_scene_dynamic:表示场景描述文档将更新。

  • MPEG_viewport_recommended:提供动态变化的信息,包括节点和相机对象的平移和旋转,以及camera对象的intrinsic camera参数。

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

演示

MPEG工作组正在致力于开源MPEG-I Scene Description ISO/IEC 23090的Unity Player实现。你可以通过YouTube(https://www.youtube.com/watch?v=U9VgiYORNrA)查看所述实现的简短演示。

值得一提的是,工作组同时致力于Blender的实现,这样你就可以使用MPEG-I场景描述来创作和导出场景。

第二阶段和未来的glTF扩展

添加图片注释,不超过 140 字(可选)

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

  • 增强现实

  • 增强交互性

  • 动态照明

  • 触觉反馈

  • 六自由度

  • 改进的音频

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

这样做的目的是确保场景描述传达给接收者关于环境中特定的“可追踪物”。这可能是熟悉的功能,如地板,但同时可能是特定于应用的元素,如二维码。这种指导有助于将虚拟场景锚定在现实世界中。

MPEG_scene_interactivity和MPEG_node_interactivity基于将触发器链接到操作的行为进行操作。触发器可以是碰撞、接近用户输入或对象可见性等事件。动作可以包括激活或转换对象、启动动画、改变材质或启动触觉反馈。

MPEG工作组同时在通过MPEG_node_avatar集成Avatar。在其核心,Avatar本质上是网格,潜在的动态或动画。Avatar可以实现交互性。它们就像你的数字孪生,允许你用双手与对象交互,比如打开电视、开门或关灯。对虚拟角色进行分割非常重要,这样就可以识别出特定的身体部位以便进行交互,比如手或手指。这个扩展将利用由VRM Consortium等开发的基于glTF的表示格式,并使这样的Avatar集成到交互场景。

另外,我们正通过MPEG_dynamic_light_texture_based开发动态照明。在AR应用程序中,这个扩展将允许你监控当前的光线条件并相应地调整渲染。

触觉扩展MPEG_haptic和MPEG_material_haptic支持各种功能,如刚度,摩擦和温度。我们的目标是纳入当前和未来的触觉响应。我们的系统支持基于触发器的多种触觉体验,例如虚拟对象的纹理。例如,用手触摸数字墙可能会根据其纹理(平滑或粗糙)提供特定的触觉反馈。

MPEG工作组同时在加强我们的音频支持。我们的目标是集成一个六自由度音频解决方案,以提供更加身临其境的声音体验。系统将考虑声学材质等因素,为音频提供类似于PBR的体验。

总结

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2038883.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于LangChain的大模型学习手册(入门级)

前言 时间轴来到2024年的下半年,“大模型”这个术语,从几乎是ChatGPT的代名词,转变为AI领域一个划时代产品的广泛词汇。从单一到广泛,代表大模型这个世界级产品,正在走向枝繁叶茂的生命阶段。截止现在,目前…

【算法分析与设计】期末复习-小题100道

目录 0、基础知识点 一、单选题 二、多选题 三、判断题 0、基础知识点 (1)常见时间复杂度与公式: 汉诺塔:T(n)O(2^n) 全排列:T(n)O(n!) 整数划分: 正整数n的划分:p(n)q(n,n) 分治&#…

推荐系统三十六式学习笔记:工程篇.效果保证31|推荐系统的测试方法及常用指标介绍

目录 为什么要关注指标推荐系统的测试方法1.业务规则扫描2.离线模拟测试3.在线对比测试4.用户访谈 常用指标1.系统有多好? 假设你已经有了自己的推荐系统,这个系统已经上线。 为什么要关注指标 面对推荐系统这样一个有诸多复杂因素联动起作用的系统&am…

C++入门:类和对象(入门篇)

目录 前言 类的定义 1.类定义格式 2.从结构体到类的跨越 3.访问限定符 4.类域 5.类的实例化 类的默认成员函数 1.默认成员函数的定义和学习方向 2.构造函数 3.析构函数 4.拷贝构造函数 5.重载运算符 总结 疑难解答 1.this指针的用法 2.为什么拷贝构造函数的第一个参数必须…

LeetCode 热题 HOT 100 (024/100)【宇宙最简单版】

【哈希表】No. 0128 最长连续序列【中等】👉力扣对应题目指路 希望对你有帮助呀!!💜💜 如有更好理解的思路,欢迎大家留言补充 ~ 一起加油叭 💦 欢迎关注、订阅专栏 【力扣详解】谢谢你的支持&am…

WPF中RenderTransform,LayoutTransform区别

RenderTransform RenderTransform 是在渲染阶段应用的变换。它不会影响控件的布局,只会影响控件的外观。常用于动画和视觉效果。 • 应用时机:在控件已经完成布局之后。 • 影响范围:仅影响控件的外观,不影响布局。 • 常见用途&…

汇川技术|PLC应用逻辑编程技巧(2)

哈喽,你好啊,我是雷工! 昨天看这块儿内容看到快十二点了,还没看完,今天接着看。 以下为学习笔记。 01 PLC程序实现状态关系 该思路编写程序的要点如下: ①:采用PLC的一个整数型变量作为状态位…

路透社中东门户媒体ZAWYA:自带流量为品牌出海赋能

路透社中东门户媒体ZAWYA:自带流量为品牌出海赋能 随着全球化的不断推进,越来越多的企业开始将目光投向海外市场,寻求更广阔的发展空间。然而,在激烈的市场竞争中,如何让自己的品牌脱颖而出成为一个亟待解决的问题。在这个背景下…

Windows 11系统SQL Server 2016 数据库安装 最新2024教程和使用

文章目录 目录 文章目录 安装流程 小结 概要安装流程技术细节小结 概要 文件可以关注作者公众号《全栈鍾猿》,发您 安装流程 双击运行 在资源管理器页面如图所示 点击全选-->取消勾选如图所示的3个---》点击下一步 点击下一步 安装完成,如图所示 &a…

USB-HUB电路设计

USB-HUB电路设计 USB-HUB电路是笔者任职电子工程师做的第一块板子,功能为USB3.0的集线器,主芯片采用RTS5411,最多能同时工作四个USB3.0设备。 由于信号有TX.RX,我们很容易将发送端和接收端搞错,毕竟从芯片出来,要经过很多的路径,如USB端子,线材,再到芯片。则芯片出来…

内网渗透—横向移动RDPWinRMWinRSSPN扫描Kerberos攻击

前言 今天仍是横向移动的内容,有些实验能成功,有些实验则各种奇怪的问题导致失败,这都是很常见的。就连小迪在视频中也经常翻车,我们只需要知道原理,以及如何去实现这个攻击行为即可。没必要强求所有的实验都要百分百…

Python3网络爬虫开发实战(8)验证码的识别

文章目录 一、 图片增强:OpenCV1. OpenCV 基础使用2. 滑动验证码缺口识别 二、图片验证码和滑块验证码1. tesserocr2. ddddocr3. 深度学习识别4. 超级鹰打码平台 三、手机验证码的自动化处理 目前,许多网站采取各种各样的措施来反爬虫,其中一…

嵌入式面经篇四——内存管理

文章目录 前言一、内存管理&编程题1、由gcc编译的C语言程序占用的内存分为哪几个部分?2、大小端3、全局变量和局部变量的区别?4、以下程序中,主函数能否成功申请到内存空间?5、请问运行下面的 Test() 函数会有什么样的后果&am…

Anaconda安装jupyter notebook、jupyterlab及体验

Anaconda安装jupyter 1.前言2.创建虚拟环境3.激活虚拟环境4.安装jupyter notebook5.启动6.快捷方式7.jupyterlab插件安装8.报错的处理9.总结1.前言 手贱,不小心将Anaconda自带得jupyter给卸载了,没法子了查了好多资料都比较麻烦,所以自己摸索着重新安装,记录一下心得。 说…

87.SAP Transaction SM31 and SM30

目录 1.SM30是什么 2.SM30维护表的前提条件: 3.用途 维护表数据 查看SAP表的配置点 4.SM31和SM30的区别 1.SM30是什么 Transaction code SM30 can be used to display and update table data. The input field on the first screen of SM30 is long enough t…

企业通用报表平台代码审计

1 第三方组件漏洞审计 本项目是基于Maven构建的。对于Maven项目,我们首先从 pom.xml 文件开始审计引入的第三方组件是 否存在漏洞版本,然后进一步验证该组件是否存在漏洞点。 本项目引入的组件以及组件版本整理如下。 组件名称组件版本SpringBoot2.2.4.RELEASEFastjson1.2…

CDP问卷填报手册指南

CDP认证的作用是向消费者和利益相关者提供一个可信的证明,证明该组织正在采取行动,以减少其对气候变化的影响并提高可持续发展。CDP认证是一个独立的评估过程,通过评估组织在应对气候变化和可持续发展方面的表现和策略,评估其对气…

免费下载专利

给大家提供一个可以免费下载专利的地方 链接:https://www.drugfuture.com/cnpat/cn_patent.asp

玩转生产环境全链路压测

一、什么是生产环境全链路压测 生产环境全链路压力测试(Production Environment Full-Link Stress Testing)是一种针对线上系统进行的综合性性能测试方法。这个过程涉及模拟实际用户行为,从用户界面到后端数据库的整个应用链路上施加预定的高…

考拉悠然完成自研国内首台玻璃基Micro LED晶圆量检测设备出货

近日,考拉悠然自主研发的国内首台玻璃基Micro LED晶圆量检测设备正式完成出货,这不仅标志着考拉悠然在Micro LED核心检测技术上的重大突破,也展现了公司在高端制造领域的技术创新能力。 Micro LED显示技术被认为是未来的“终极显示技术”&am…