CN117616762A - 利用3d图形增强视频或外部环境 - Google Patents

利用3d图形增强视频或外部环境 Download PDF

Info

Publication number
CN117616762A
CN117616762A CN202280048136.2A CN202280048136A CN117616762A CN 117616762 A CN117616762 A CN 117616762A CN 202280048136 A CN202280048136 A CN 202280048136A CN 117616762 A CN117616762 A CN 117616762A
Authority
CN
China
Prior art keywords
scene
rendering
rendered
data
remote
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202280048136.2A
Other languages
English (en)
Inventor
E·波泰齐亚纳基斯
A·S·R·白朗特
E·托马斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nederlandse Organisatie voor Toegepast Natuurwetenschappelijk Onderzoek TNO
Koninklijke KPN NV
Original Assignee
Nederlandse Organisatie voor Toegepast Natuurwetenschappelijk Onderzoek TNO
Koninklijke KPN NV
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nederlandse Organisatie voor Toegepast Natuurwetenschappelijk Onderzoek TNO, Koninklijke KPN NV filed Critical Nederlandse Organisatie voor Toegepast Natuurwetenschappelijk Onderzoek TNO
Publication of CN117616762A publication Critical patent/CN117616762A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/8146Monomedia components thereof involving graphical data, e.g. 3D object, 2D graphics

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Image Generation (AREA)

Abstract

提供了一种用于渲染场景的渲染设备,其中,该渲染设备被配置成显示视频对象或允许外部环境在视觉上传递至观看者并且将该场景渲染为该视频对象或该外部环境的增强。该场景可以以混合方式进行渲染,这涉及由该渲染设备对该场景的一部分进行本地渲染以及由远程渲染系统对该场景的另一部分进行远程渲染。该渲染设备和该远程渲染系统两者都可以访问场景描述符数据,该场景描述符数据可以指示该场景的状态随时间的变化。这样,该渲染客户端可以请求在特定时间状态下对该场景的一部分进行远程渲染,例如,以预期网络时延和/或处理时延。

Description

利用3D图形增强视频或外部环境
技术领域
本发明涉及一种用于使用渲染设备来渲染场景的计算机实施的方法,其中,该渲染设备被配置成显示视频对象或允许外部环境在视觉上传递至观看者并且将该场景渲染为该视频对象或该外部环境的增强。本发明进一步涉及该渲染设备以及一种用于供渲染设备渲染场景的部分的远程渲染系统和计算机实施的方法。本发明进一步涉及一种计算机可读介质,该计算机可读介质包括用于使处理器系统执行计算机实施的方法中的任一种方法的数据。
背景技术
在增强现实(AR)或混合现实(MR)中,基于计算机图形的3D对象可以与由观看者感知到的物理现实相结合,以便为观看者增强物理现实。例如,头戴式AR或MR渲染设备可以例如经由渲染设备的透明或半透明部将外部环境在视觉上传递至观看者,并且可以被配置成渲染场景的一个或多个基于计算机图形的3D对象并以使得这些对象被叠加、混杂、混合的方式或以从观看者的感知来看在视觉上与外部环境相结合的任何其他方式来显示这些对象。因此,外部世界可以利用比如信息内容(例如,导航方向)或娱乐(例如,游戏角色)等数字内容来增强。
这样的基于计算机图形的3D对象(此后也被简称为‘3D图形对象’)也可以被渲染以增强物理现实的基于视频的表示。例如,头戴式AR/MR渲染设备可以包括朝前的相机,并且可以记录并实时地或近实时地向观看者显示所记录的视频,同时利用经过渲染的3D图形对象增强视频。而且,可以利用3D图形对象来增强其他类型的视频。例如,在虚拟现实(VR)中,可以利用一个或多个3D图形对象来增强所谓的全景视频或全向视频。
AR、MR或VR一起也被称为扩展现实(XR)。
已知在用户的渲染设备上执行3D图形对象的渲染以用于XR增强,该渲染在下文中也被称为‘本地’渲染。还已知在远程渲染系统上执行渲染,该渲染在下文中也被称为‘远程’渲染。
例如,[1]在章节6.2.4中描述了完全由XR服务器渲染的场景的视口。据说,XR服务器基于传入的跟踪和传感器信息(例如,游戏引擎)即时生成XR媒体。所生成的XR媒体以2D格式(扁平化)被提供用于视口,被编码并且通过5G网络进行输送。跟踪和传感器信息是以相反的方向输送的。在XR设备中,媒体解码器对媒体进行解码,并且在不使用视口信息的情况下直接地渲染视口。
远程渲染可以解决与本地渲染相关联的一些问题。例如,如果要渲染的场景太复杂(例如,所需的渲染性超过现有的渲染性能)或者如果渲染设备是电池供电的并且电池电量不足,则可以期望由远程渲染系统渲染场景,而不是本地渲染场景。然而,在其他情况下——例如,如果网络连接较差或者如果期望以(超)低时延渲染对象,则远程渲染可能是不利的。
场景也可以部分地由远程渲染系统渲染,并且部分地由本地渲染设备渲染,其中,这样的渲染被称为‘混合’或‘拆分’渲染。例如,[2]描述了在远程计算系统上渲染比如计算机辅助设计模型等更复杂的内容,以及将经过渲染的模型流式传输到执行生成和/或显示模型的应用程序的客户端设备。客户端设备可以利用本地渲染的内容增强远程渲染的内容,该本地渲染的内容为比如轻量、较低时延内容(例如,用户接口/用户体验元素、墨迹、与比如关节手等真实世界对象相关的内容等)。客户端设备还可以执行深度校正混合,以提供远程渲染的内容与本地渲染的内容之间的遮挡关系。
然而,除了单独的对象是可操纵的,[2]假设要渲染的场景在很大程度上是静态的,在这种情况下,客户端设备可以通过利用场景图形API通知远程渲染系统进行操纵。这样,可以向远程渲染系统通知单独的对象的动画或移动。然而,这种方法并不能良好地扩展到例如涉及更复杂的动画或移动、新对象的出现等更动态的场景,因为客户端设备需要连续地向远程渲染系统通知对单独的对象的任何操纵,这可能在计算方面和在网络分配方面都给客户端设备带来负担。
[2]的方法的另一问题是其对时延的敏感性,因为首先必须在客户端设备处检测对对象的操纵,必须生成表示该操纵的数据并且经由场景图形API将该数据上传到远程渲染系统,并且仅在接收所有数据之后才开始进行远程渲染。如果表示操纵的数据相当大,则上传可能因此花费较长的时间,尤其是在上传到远程渲染系统的带宽受限的情况下。
参考文献
[1]ExtendedReality(XR)in 5G[5G中的扩展现实(XR)],ETSI TR 26928V16.1.0
[2]HybridRendering[混合渲染],WO 2020/209962 A1
发明内容
可以期望能够实现对动态场景进行混合渲染,从而解决上述一个或多个问题。
在本发明的第一方面,提供了一种用于使用渲染设备来渲染场景的计算机实施的方法。该渲染设备可以被配置成显示视频对象或允许外部环境在视觉上传递至观看者并且将该场景渲染为该视频对象或该外部环境的增强。该方法可以包括:
获得场景描述符数据,其中,该场景描述符数据可以标识表示该场景的至少部分的一组3D图形对象,其中,该场景描述符数据可以指示该场景的状态随时间的变化;
至少基于该场景描述符数据,确定要由该渲染设备本地渲染的该场景的第一部分和要远程渲染的该场景的第二部分;
请求有权访问该场景描述符数据的远程渲染系统渲染该场景的第二部分以获得预渲染的场景数据,该预渲染的场景数据包括该场景的第二部分的预渲染版本,
其中,该请求可以包括向该远程渲染系统提供时间标记,以请求该远程渲染系统在与该时间标记相对应的状态下渲染该场景的第二部分;
从该远程渲染系统获得该预渲染的场景数据;
将该场景渲染为该视频对象或该外部环境的增强,其中,该渲染可以包括本地渲染该场景的第一部分并且包括该场景的第二部分的预渲染版本。
在本发明的又一方面,提供了一种渲染设备。该渲染设备可以被配置成显示视频对象或允许外部环境在视觉上传递至观看者并且将包括3D图形对象的场景渲染为该视频对象或该外部环境的增强。该渲染设备可以包括:
与网络的网络接口;
包括场景描述符数据的数据存储装置,其中,该场景描述符数据可以标识表示该场景的至少部分的一组3D图形对象,其中,该场景描述符数据可以指示该场景的状态随时间的变化;
处理器子系统,该处理器子系统可以被配置成:
-至少基于该场景描述符数据,确定要由该渲染设备本地渲染的该场景的第一部分和要远程渲染的该场景的第二部分;
-经由该网络接口,请求有权访问该场景描述符数据的远程渲染系统渲染该场景的第二部分以获得预渲染的场景数据,该预渲染的场景数据包括该场景的第二部分的预渲染版本,
其中,所述请求可以包括向该远程渲染系统提供时间标记,以请求该远程渲染系统在与该时间标记相对应的状态下渲染该场景的第二部分;
-经由该网络接口,从该远程渲染系统接收该预渲染的场景数据;
-将该场景渲染为该视频对象或该外部环境的增强,其中,该渲染可以包括本地渲染该场景的第一部分并且包括该场景的第二部分的预渲染版本。
在本发明的又一方面,提供了一种用于为渲染设备渲染场景的部分的计算机实施的方法。该渲染设备可以被配置成显示视频对象或允许外部环境在视觉上传递至观看者并且将该场景渲染为该视频对象或该外部环境的增强。该方法可以包括:
获得场景描述符数据,其中,该场景描述符数据可以标识表示该场景的至少部分的一组3D图形对象,其中,该场景描述符数据指示该场景的状态随时间的变化;
接收渲染该场景的部分的请求,其中,该请求可以包括时间标记;
基于该场景描述符数据和该请求,在与该时间标记相对应的状态下渲染该场景的部分以获得预渲染的场景数据,该预渲染的场景数据包括该场景的部分的预渲染版本;
将该预渲染的场景数据提供至该渲染设备。
在本发明的又一方面,提供了一种渲染系统。该渲染系统可以包括:
与网络的网络接口;
包括场景描述符数据的数据存储装置,其中,该场景描述符数据可以标识表示该场景的至少部分的一组3D图形对象,其中,该场景描述符数据可以指示该场景的状态随时间的变化;
处理器子系统,该处理器子系统可以被配置成:
-经由该网络接口,接收渲染该场景的部分的请求,其中,该请求可以包括时间标记;
-基于该场景描述符数据和该请求,在与该时间标记相对应的状态下渲染该场景的部分以获得预渲染的场景数据,该预渲染的场景数据包括该场景的部分的预渲染版本;
-经由该网络接口,将该预渲染的场景数据提供至该渲染设备。
在本发明的又一方面,提供了一种暂态或非暂态计算机可读介质,该计算机可读介质包括表示计算机程序的数据,该计算机程序包括用于使处理器系统执行本说明书中描述的任何给定计算机实施的方法的指令。
以上措施涉及使用场景描述符数据来表征要渲染的场景。特别地,场景描述符数据可以例如通过列出对象标识符(在这个基础上可以检索到3D图形对象的3D图形数据)或通过包括定义3D图形对象的3D图形数据本身来标识作为场景的部分的3D图形对象。换句话说,场景描述符数据可以包括对象的3D图形数据的(外部)参考,或可以包含呈嵌入形式的这样的3D图形数据。这样的3D图形数据可以例如采取定义对象的一个或多个多边形网格的网格数据的形式。然而,将理解,3D图形对象还可以以其他方式(例如,使用体素或点云)定义。通常,这样的3D图形对象可以例如在渲染期间或在渲染之后与2D图形(例如与例如纹理、背景等的图像或视频)相结合。
场景描述符数据还可以表征场景的各种其他方面,例如对象的相对位置和取向、对象的外观等。例如,如果对象是动画的,则场景描述符数据可以以关键帧动画数据的形式来定义对象的动画,或通过使用一个或多个变换来定义对象的动画。
场景描述符数据可以进一步定义场景的状态随时间的变化。因此,场景描述符数据可以定义场景或其部分如何随时间变化。这样,通过场景描述符数据,场景的动态性可以至少部分地由场景描述符数据来定义。这样的动态性可以涉及场景中的变化,这些变化可以是‘脚本化的’或通过场景描述符数据以任何其他方式预定义的。将理解,场景可以附加地或可替代地包括例如由于用户与场景中的对象的交互或由于基于外部事件的变化而发生的非脚本化的变化。在一些示例中,场景的这样的非脚本化的变化也可以在场景描述符数据中例如通过对场景描述符数据的中间更新或修订来表示。
场景描述符数据可以用于渲染设备和远程渲染系统。渲染设备可以表示‘本地’渲染设备,因为该渲染设备可以由最终用户使用和/或包括或连接到显示经过渲染的场景的显示器。特别地,渲染设备可以将经过渲染的场景显示为视频对象或外部环境的增强。此处,术语‘视频对象’可以指表示视频的虚拟对象,该虚拟对象可以简单地是2D叠加表面等,但当视频在3D环境中显示时,该虚拟对象也可以是任何其他类型的对象,例如,示出全向视频的球体的内部。此外,术语‘外部环境’可以指物理现实的一部分,并且特别地指观看者和/或渲染设备的周围环境。为增强这样的外部环境,渲染设备可以包括在观看者的眼中例如使用半透明显示器或适用于AR渲染或MR渲染的任何其他类型的显示器将经过渲染的场景叠加在外部环境上的装置。
渲染设备可以基于场景描述符数据来确定场景的哪个部分可以进行本地渲染。这样的本地渲染可以涉及渲染设备在基于多边形网格的3D图形对象的情况下使用比如光栅化或光线追踪等已知的渲染技术(例如使用其(多个)CPU和/或(多个)GPU)实时地或近实时地渲染场景的部分。要本地渲染的场景的部分(该部分也可以被称为场景的‘第一’部分)可以例如通过以下方式来标识:例如通过参考场景描述符数据中列出的对象标识符来标识要本地渲染的(多个)对象。另外,渲染设备可以确定要远程渲染的场景的一部分,该部分也可以被称为‘第二’部分。远程渲染场景的一部分的决定以及要远程渲染哪个部分的决定可以由渲染设备基于比如3D图形对象的复杂性、渲染设备的计算负荷等各种信息来作出。
在确定要远程渲染的场景的一部分后,可以请求远程渲染系统渲染所述部分。这可以涉及经由网络向远程渲染系统发送请求。远程渲染系统还可以访问场景描述符数据。例如,远程渲染系统可以表示‘服务器’,充当客户端的渲染设备可能已从该服务器中检索到场景描述符数据。另一示例是渲染设备和远程渲染系统都可能已从再一系统或服务器中检索到场景描述符数据。特别地,在渲染会话(在这期间,要由渲染设备渲染场景)开始时,渲染设备和远程渲染系统二者都可以访问场景描述符数据。因此,渲染设备在其远程渲染场景的部分的请求中参考场景描述符数据的部分可以是足够的。换句话说,当请求远程渲染时,可能不需要渲染设备将3D图形对象的网格数据等上传到远程渲染系统。相反,例如,请求可以参考场景描述符数据中列出的对象标识符或对象位置,以便标识要远程渲染的场景的部分。
作为响应,远程渲染系统可以使用比如光栅化或光线追踪等已知的渲染技术并且使用其(多个)CPU和/或(多个)GPU来渲染场景的部分,以获得场景的部分的渲染版本。这样的渲染版本可以采取比如图像或视频等各种形式,该图像或视频可以以2D、体积3D、立体3D、作为点云等表示,并且该图像或视频可以以编码的和可选地压缩的形式经由网络传输到渲染设备。在一些示例中,渲染版本还可以采用除图像或视频外的另一形式,比如表示渲染流水线的一个或多个步骤的输出的中间渲染结果。
所传输的经过渲染的场景数据也可以被称为‘预渲染的’场景数据,因为从渲染设备的角度来看,该经过渲染的场景数据可以表示场景的部分的预渲染版本,这意味着渲染设备本身可能不需要执行(多个)相应的渲染步骤。然而,不排除渲染设备执行进一步的渲染步骤。通常,当渲染场景的一部分需要执行一个或多个渲染步骤时,远程渲染可以涉及由远程渲染系统远程执行这些渲染步骤中的至少一个。
在接收到预渲染的场景数据之后,渲染设备可以一方面使用场景的第一部分的本地渲染版本并且另一方面使用场景的第二部分的远程渲染版本将场景渲染为视频对象或外部环境的增强。两种渲染版本可以以各种方式组合,例如通过混合或合成等。在一些示例中,渲染设备可以使用渲染流水线来渲染场景,其中,预渲染的场景数据可以绕过渲染流水线的至少初始部分,以由渲染流水线的后面的部分处理。在另一示例中,预渲染的场景数据可以完全绕过渲染流水线,以便后来与本地渲染的场景数据相结合。
如已经在上文指示的,场景可以是动态场景,因为场景描述符数据可以至少部分地定义场景如何随时间变化。为确保或至少实现远程渲染系统在与由渲染设备渲染的场景的时间状态相匹配的场景的时间状态下渲染场景的第二部分,可以请求远程渲染系统在合适的时间实例处渲染场景的第二部分。此处,术语‘时间状态’可以指场景在特定时间点的状态。为了这个目的,可以向远程渲染系统提供时间标记。例如,时间标记可以是时间戳或者期望渲染的时间实例的任何其他直接或间接表示。远程渲染系统可以通过访问场景描述符数据来标识场景在所指示的时间实例处的状态,并且可以相应地渲染场景的第二部分。例如,如果特定3D图形对象在所请求的时间实例处被定位、被定向和/或采取特定姿势,则远程渲染系统可以相应地渲染3D图形对象。
以上措施可以基于这样的见解,即对于动态场景,渲染设备与远程渲染系统之间的混合渲染应当是同步的。可以存在这样做的各种方式。例如,如在[2]中,渲染设备可以维持场景的状态并且例如基于使用交互将状态变化发信号通知给远程渲染系统。然而,如在背景技术章节中阐明的,这可能不足以适用于动态场景。根据以上措施,如果请求对场景的一部分进行远程渲染,则可以指示要渲染场景所处的时间状态。时间状态例如呈时间标记形式的这个指示可以是足够的,因为例如在渲染会话开始之前可能已经向远程渲染系统提供了指示场景中随时间的变化的场景描述符数据。这样,需要向远程渲染系统提供相对较少的信息,这减少了带宽要求和/或传输时间。以上措施还可以针对网络连接中的中断更加稳健。例如,如果对远程渲染的请求由于这样的中断而丢失,则可以再次正常处理下一个请求,而在[2]的示例中,请求的丢失可能导致场景的状态在远程渲染系统与渲染设备之间变得不同步,因为请求可能包含了对对象的更新。再一优点可以是:可以例如在未来适当地选择要渲染场景的第二部分的时间实例,使得由渲染设备接收的预渲染的场景数据可以与本地渲染输出无缝地结合。
以下实施例可以表示用于使用渲染设备来渲染场景的计算机实施的方法的实施例,但也可以表示渲染设备的实施例,其中,其处理器子系统被配置成执行(多个)对应的方法步骤。除非出于技术原因而以其他方式被排除,否则这些实施例还可以指示用于供渲染设备渲染场景的部分的计算机实施的方法以及远程渲染系统和其处理器子系统的对应实施例。
在实施例中,场景描述符数据可以描述场景在场景时间线上的多个时间实例处的状态,以指示场景的状态随时间的变化,并且其中,时间标记可以指示场景时间线上的时间实例。因此,场景中的变化可以例如通过定义如下内容而链接到场景时间线:特定变化发生在场景时间线上的一个点处(例如,在第一时间实例处)而另一变化可能发生在场景时间线上的另一点处(例如,在第二时间实例处)。场景时间线可以例如通过场景描述符数据本身来定义,或可以以其他方式被渲染设备和远程渲染系统共同知晓,并且因此为远程渲染请求提供公共参考。因此,可以避免来自渲染设备的与场景的第一时间状态有关的请求可能由于缺乏公共参考而被远程渲染系统错误地转换为场景的第二时间状态。场景时间线本身可以以任何合适的形式表达,包括但不限于以毫秒、秒、分等为单位或相对于任何其他参考时钟的时间实例表达的时间线。特别地,可以相对于场景的实时渲染来定义场景时间线,因为可以知晓在实时渲染场景时场景时间线上的时间间隔应当花费多长时间。
在实施例中,要渲染的3D图形对象可以是对视频内容的附带或补充。在这样的情况下,场景的时间线可以至少部分地在时间上与视频内容的时间线对齐或参考视频内容的时间线。这可以例如通过参考视频解码或播放时间戳描述场景更新或通过基于场景更新控制视频播放来实现。对预渲染的场景数据的请求和响应可以使用视频时间戳进行同步。
在实施例中,场景描述符数据可以指示以下各项中的至少一项:该场景中的相应对象随时间变化的存在、位置、取向和外观。场景可以以各种方式变化,包括但不限于对象从场景中出现或消失、单独的对象或这样的对象的部分的位置变化、单独的对象或这样的对象的部分的取向变化、以及对象在场景中表现的方式的变化,例如,其姿势或其他外部属性。通常,通过定义对象或场景性质的变化或通过重新针对特定时间实例定义对象或场景性质来定义这样的变化。场景描述符数据可以直接地(例如,通过定义性质的变化或通过定义性质的新值)或间接地定义这样的变化。后者的示例是场景描述符数据,该场景描述符数据包含对相应不同时间实例的场景的不同版本的参考,其中,场景的这样的版本在别处例如通过定义场景的每个版本的场景数据等来定义。场景描述符数据可以链接到这样的场景数据。
在实施例中,该方法可以进一步包括确定时间标记以指示第二时间实例,该第二时间实例在时间上先于渲染设备当前渲染场景的第一时间实例。通过能够指示要由远程渲染系统远程渲染场景的第二部分的时间实例,渲染设备可以请求针对由时间上先于渲染设备当前渲染场景的时间实例的时间实例渲染场景的第二部分。这可以使渲染设备能够预期该渲染设备可以例如由于网络或处理中的延迟而仅以一定延迟接收所请求的预渲染的场景数据。这样,可以减少或避免对比如后期重投影等技术的需要,否则这些技术可能不得不用于通过将针对过去时间实例渲染的场景变换为当前时间实例来补偿这样的延迟,并且这些技术在计算上可能是复杂的并引入伪影。
在实施例中,该方法可以进一步包括基于以下各项中的至少一项来确定时间标记:
-该渲染设备与该远程渲染系统之间的网络的网络时延;
-由该远程渲染系统渲染该场景的第二部分的时延或与之相关联的调度约束。
可以选择要由远程渲染系统渲染场景的第二部分的时间实例,以便具体地考虑到网络和/或处理中的各种延迟。例如,可以例如通过渲染设备来测量或估计这样的延迟,并且可以生成时间标记以通过请求针对某一时间实例(比渲染场景的当前时间实例提前了与这样的(多个)延迟相对应的时间)渲染场景的第二部分来补偿所述(多个)延迟。在一些实施例中,可以生成时间标记以考虑到所测量的和/或所估计的(多个)延迟,同时另外添加安全裕度例如以便考虑到各种较小的或未知的延迟。通过基于这样的所估计的和/或所测量的(多个)延迟确定时间标记,可以避免经过渲染的场景数据太晚到达(这可能有必要使用如上文讨论的比如后期重投影等技术)或显著地太早到达(这可能需要更长时间的缓冲),并且这可能降低允许场景中的突然和动态变化的能力。
应注意,例如作为远程渲染系统预测渲染客户端需要远程渲染辅助的结果,可以由远程渲染系统在内部生成在某一时间实例(例如可以在时间上先于渲染设备当前渲染场景的当前时间实例)处渲染场景的一部分的任何请求。这样的预测可以例如基于渲染设备的过去请求的历史数据,或基于渲染设备的(多个)当前请求。
在实施例中,场景描述符数据可以包括该组3D图形对象中的相应图形对象的对象标识符,其中:
-请求远程渲染系统可以包括向远程渲染系统提供表示场景的第二部分的一个或多个3D图形对象的相应对象标识符;和/或
-接收预渲染的场景数据可以包括接收包括在预渲染的场景数据中预渲染的一个或多个3D图形对象的相应对象标识符的元数据。
通过提供该组3D图形对象中的相应图形对象的对象标识符作为场景描述符数据的部分,渲染设备可以通过简单地将对应对象标识符提供至远程渲染系统来请求渲染场景的(第二)部分。这样,需要向远程渲染系统提供相对较少的信息,这减少了带宽要求和/或传输时间。另外,或可替代地,远程渲染系统可以与预渲染的场景数据一起提供元数据,该元数据可以包括在预渲染的场景数据中预渲染的一个或多个3D图形对象的相应对象标识符。这可以通知渲染设备哪些渲染对象被包含在预渲染的场景数据中,并且如果例如预渲染的场景数据中包含比所请求少的经过渲染的对象,则这可以是有利的。例如,远程渲染系统可能例如由于计算限制而无法渲染所有所请求的对象。可以通过元数据通知渲染设备,并且如果对象标识符从元数据中缺失,则渲染设备可以通过本地渲染相应对象来覆盖这种省略。这可以允许渲染设备适应远程渲染系统的远程渲染的不可预见的变化或缺陷。如果预渲染的场景数据包含或原则上可以包含多个经过渲染的对象,则这可以是特别地有利的。在这样的情况下,可以期望知晓在预渲染的场景数据中渲染哪些对象和不渲染哪些对象,以及哪些对象可能无法容易地从预渲染的场景数据本身中确定。
在实施例中,可以由渲染设备重复地接收元数据,并且其中,该方法可以进一步包括基于出现在元数据中或从元数据中消失的3D图形对象的对象标识符来停止或开始对3D图形对象进行本地渲染。远程渲染系统可以在周期性或半周期性或以其他方式重复的基础上提供元数据,例如作为伴随预渲染的场景数据的视频流的元数据流。通过监测元数据以检测从元数据中出现或消失的对象标识符,渲染设备可以检测何时以及在预渲染的场景数据中渲染哪个对象,并且可以相应地例如通过在对象从预渲染的场景数据中消失的情况下开始本地渲染该对象、或者停止这样的本地渲染等来适应其本地渲染。
在实施例中,场景的渲染可以适应于视频对象或外部环境的内容,并且其中,该方法可以进一步包括确定至少部分地表征内容的内容数据以及将内容数据提供至远程渲染系统。场景的渲染可以适应于要增强的视频对象或外部环境的内容。这样的自适应可以例如提高增强的真实性,以便传达场景中的对象属于视频对象或外部环境的内容的印象。具体示例可以如下:可以将场景渲染为日落时户外环境的增强。可以渲染场景以例如通过在场景中的合适位置处添加定向光源并且选择光源的色温以匹配日落来模拟这个日落场景。视频对象或外部环境的内容的性质可以例如基于(传感器)测量值可用于渲染设备,但可能通常不可用于远程渲染系统。然而,为使远程渲染系统能够使其对场景的一部分的渲染适应于这样的性质,渲染设备可以确定至少部分地例如在光照条件方面表征视频对象或外部环境的内容的内容数据,并且可以将内容数据提供至远程渲染系统以使对场景的一部分的远程渲染能够适应于这样的性质。
在实施例中,内容数据可以包括以下各项中的至少一项:
-表征该内容中的光照的光照数据;
-表征该内容的深度的深度数据;以及
-提供该内容的视觉表示的图像或视频数据。
因此,渲染设备可以生成例如在方向、强度、色温等方面表征视频对象或外部环境的内容中的光照的数据,并且将该数据提供至远程渲染系统以使所述系统能够根据该数据调整其渲染。另一示例是,渲染设备可以生成例如以深度图的形式表征内容的深度的数据,该深度图可以通过深度估计从内容中生成。例如,可以使用连接到渲染设备或集成到渲染设备中的立体相机或飞行时间传感器来执行这样的深度估计。这可以使远程渲染系统能够例如通过调整渲染的投影矩阵来使其渲染适应于要增强的内容的深度。再一示例是渲染设备可以向远程渲染系统提供内容的视觉表示,以使远程渲染系统本身能够检测内容的相关性质。例如,渲染设备可以例如以质量降低的版本的形式向远程渲染系统提供视频对象的转码版本,该质量降低的版本可以足以确定光照条件、深度等。再一示例是渲染设备可以利用相机捕获外部环境,并且将得到的视频例如以降低的质量流式传输到远程渲染系统。再一示例是渲染设备可以利用相机和/或其他传感器捕获外部环境,并且可以本地执行图像识别以从所捕获的内容中提取特征,并且可以将表征所提取的特征的数据以内容数据的形式传输到远程渲染系统。
在实施例中,确定要本地渲染的场景的第一部分和要远程渲染的场景的第二部分可以包括基于以下各项中的至少一项来确定要本地渲染还是远程渲染3D图形对象:
-该渲染设备与该远程渲染系统之间的网络的时延、带宽或可靠性;
-该渲染设备与内容服务器之间的网络的时延、带宽或可靠性,该内容服务器被配置成托管定义该场景的该组3D图形对象的3D图形数据;
-该渲染设备的计算负荷;
-该远程渲染系统的计算负荷;
-该渲染设备的电池电量;
-该3D图形对象的复杂性;以及
-该场景中的、该渲染设备渲染该场景时的视点与该场景中的该3D图形对象之间的场景距离。
可以考虑各种类型的信息以确定要远程渲染场景的哪个部分和要本地渲染场景的哪个部分。应注意,可以在周期性或半周期性或重复的基础上(例如每秒、每十秒、每分钟等)或在检测到事件(这可以使渲染设备和/或远程渲染系统能够对突然的变化(例如对计算负荷突然增加或减少、分组丢失增加等)做出反应)的情况下做出要在哪里渲染场景的哪一部分的决定。这样,可以确保或至少有利于渲染设备能够渲染场景,即使发生这样的突然变化。
在实施例中,场景描述符数据可以包括包含指示3D图形对象之间的层级关系的分支的图形,其中,确定要本地渲染的场景的第一部分和要远程渲染的场景的第二部分可以包括确定每个分支是要本地渲染还是远程渲染相应分支的3D图形对象。图形可以是场景中的对象和/或对象的部分之间的关系的合适数据表示。例如,对象或对象部分可以通过实际彼此连接或通过在彼此的附近或在对象之间存在交互等来展现场景中的连接性,例如空间连接性。这样的连接性可以在图形中很好地表示为边。当渲染场景时,例如为了渲染效率或质量,可以期望通过一个实体渲染这样连接的对象或对象部分。因此,当确定要在哪里渲染场景的哪个部分时,可以在每个分支的基础上作出决定,使得这样连接的对象或对象部分由渲染设备本地渲染或由远程渲染系统远程渲染。这可以避免渲染效率低下或渲染质量降低。在这个方面,应注意,场景描述符数据还可以指示一方面的3D图形对象与另一方面比如纹理、音频等其他类型的资产之间的层级关系。
以下实施例可以表示用于为渲染设备渲染场景的部分的计算机实施的方法的实施例,但还可以表示远程渲染系统的实施例,其中,其处理器子系统被配置成执行(多个)对应的方法步骤。除非出于技术原因而以其他方式被排除,否则这些实施例还可以指示用于使用渲染设备来渲染场景的计算机实施的方法以及渲染设备和其处理器子系统的对应实施例。
在实施例中,该方法可以进一步包括生成包括在该预渲染的场景数据中预渲染的一个或多个3D图形对象的相应对象标识符的元数据,并且将该元数据与该预渲染的场景数据一起提供至该渲染设备。如在别处讨论的,这样的元数据可以使渲染设备能够检测从元数据中出现或消失的对象标识符。因此,渲染设备可以检测何时以及在预渲染的场景数据中渲染哪个对象,并且可以相应地例如通过在对象从预渲染的场景数据中消失的情况下开始本地渲染对象、或者停止这样的本地渲染等来适应其本地渲染。
在实施例中,该方法可以进一步包括基于以下各项中的一项通过从该渲染中省略3D图形对象来调整请求被渲染的该场景的部分:
-该远程渲染系统的计算负荷;
-该渲染设备与该远程渲染系统之间的网络的时延、带宽或可靠性。
上述措施可以使远程渲染系统能够确定是否辅助场景的渲染,以及如果是则在何种程度上辅助场景的渲染,这可以允许远程渲染系统将不可用于渲染设备的信息(比如其自身的计算负荷)考虑在内。尽管渲染设备可以请求远程渲染系统渲染场景的一部分,但例如,如果远程渲染系统的计算负荷太高或者如果与渲染设备的网络连接太差而不能够可靠地传输这些对象的得到的预渲染的场景数据,则远程渲染系统由此可以从渲染中省略一个或多个对象。因此,远程渲染系统可以部分地或在一些情况下完全拒绝对远程渲染的请求。在完全拒绝(其中,远程渲染系统决定不渲染任何所请求的对象)的情况下,远程渲染系统可以用拒绝来回答请求。在部分拒绝(其中,远程渲染系统决定仅渲染所请求的对象的子集)的情况下,远程渲染系统可以利用指示将仅渲染所请求的对象的子集的响应和/或通过将元数据与标识已经渲染的对象的预渲染的场景数据一起提供由此隐式地向渲染设备指示哪些对象还没有被渲染来回答请求。
本领域的技术人员将理解,可以以任何认为有用的方式组合上文提到的本发明的实施例、实施方式和/或各方面中的两个或更多个。
系统或设备(例如,远程渲染系统、渲染设备等)、计算机实施的方法、元数据和/或计算机程序中的任何一个的修改和变化(与这些系统或设备、计算机实施的方法、元数据和/或计算机程序中的另一个的所描述的修改和变化相对应,反之亦然)可以由本领域技术人员在本说明书的基础上执行。
附图说明
依据下文所描述的实施例明白并且将参考这些实施例阐明本发明的这些方面和其他方面。在附图中,
图1示出了被配置成请求对场景部分进行远程渲染的渲染设备以及被配置成响应于该请求而渲染场景部分并将预渲染的场景数据提供至渲染设备的远程渲染系统;
图2示出了使用头戴式显示器进行渲染以增强外部环境的场景,该场景中的第一对象进行本地渲染并且该场景中的第二对象由远程渲染系统进行远程渲染;
图3展示了用于针对在时间上先于渲染场景的当前时间实例的时间实例远程渲染场景部分的请求;
图4示出了用于对场景进行混合渲染的计算机实施的方法的步骤,示出了在本地渲染设备处或由本地渲染设备执行的步骤;
图5示出了用于对场景进行混合渲染的计算机实施的方法的步骤,示出了在远程渲染系统处或由远程渲染系统执行的步骤;
图6示出了包括数据的非暂态计算机可读介质;
图7示出了示例性数据处理系统。
应注意,在不同的附图中具有相同附图标记的项具有相同的结构特征和相同的功能,或者是相同的信号。在已经解释了这种项的功能和/或结构的情况下,在具体实施方式中没有必要再重复对其的解释。
附图标记清单
以下附图标记和缩写词列表被提供以便于解释附图,并且不应被解释为对权利要求的限制。
10 网络
20 场景描述符数据
40 请求的数据表示
60 预渲染的场景数据
100 渲染设备
120 网络接口
140 处理器子系统
160 数据存储装置
180 显示器接口
182 显示数据
184 传感器数据
190 头戴式显示器
200 远程渲染系统
220 网络接口
240 处理器子系统
260 数据存储装置
300 用户
320 头戴式显示器
340 外部环境
342 视野
360要本地渲染的场景的部分
380要远程渲染的场景的部分
400请求渲染n+3处的场景部分
410渲染n+3处的场景部分
420针对n+3传输经过渲染的场景数据
430渲染n+3处的场景部分
440显示n+3处的场景
510获得场景描述符数据
520确定用于远程渲染的场景部分
530请求远程渲染并提供时间标记
540 获得预渲染的场景数据
550 渲染场景
610 获得场景描述符数据
620 接收渲染请求
630 渲染场景部分
640 提供预渲染的场景数据
700 非暂态计算机可读介质
710 数据
1000 示例性数据处理系统
1002 处理器
1004 存储器元件
1006 系统总线
1008 本地存储器
1010 大容量存储设备
1012 输入设备
1014 输出设备
1016 网络适配器
1018 应用程序
具体实施方式
以下实施例可以涉及使用渲染设备来渲染场景,该渲染设备可以被配置成显示视频对象或允许外部环境在视觉上传递至观看者并且将场景渲染为视频对象或外部环境的增强。
可以以各种方式定义要渲染的场景。例如,场景可以包括3D图形对象,这些图形对象又可以由比如多边形等几何图元来定义。如本身已知的,多边形网格可以例如由顶点、形成顶点之间的连接的边、面、表面、材料、UV坐标等来定义。当将3D图形对象定义为几何图元时,场景的渲染可以例如涉及光栅化或光线追踪,这两种渲染技术都是本身已知的。这样的渲染的结果可以是位图或任何其他形式的光栅图形,该位图或任何其他形式的光栅图形可以被写入到帧缓冲器中以在显示器上显示。应注意,这样的3D图形对象还可以包括例如呈应用于3D图形对象的纹理形式的视频。在特定示例中,要渲染的3D图形对象可以是球体,其中,球体的内部示出了全向视频。因此,3D图形对象的渲染可以包括渲染视频。另外,或作为使用几何图元的替代方案,3D图形对象还可以以其他方式(例如作为点云或通过体素)定义,点云和体素两者都可以被渲染以获得要显示的位图。
渲染可以涉及各种步骤。例如,在渲染基于光栅化的情况下,单独的渲染步骤可以包括顶点处理、镶嵌、图元处理、核心光栅化、片段处理和像素处理。当涉及场景的渲染时,这样的参考可以指所有渲染步骤,但也可以指这样的渲染步骤的子集,例如其中的一个或多个。通常,可以使用一个或多个CPU和/或一个或多个GPU来完成渲染。
以下实施例可以利用场景描述符数据来渲染场景。这样的场景描述符数据可以例如通过标识场景中的3D图形对象来表示对场景的描述。例如,场景描述符数据可以包括相应对象的对象标识符,同时另外包含或涉及定义每个对象的图形数据。通常,场景描述符数据可以参考对象之间的空间关系(例如,它们的相对位置和取向)来对场景的空间几何结构进行建模。如例如在参考文献[1]的章节4.6.6中本身已知的,场景的空间几何结构可以以各种方式进行建模,例如作为场景图形。例如,场景图形可以是有向无环图形,例如表示场景的几何结构的基于对象的层次结构的朴素树结构。例如,图形的叶节点可以例如通过包括几何图元的标识符来表示比如多边形等几何图元。空间变换可以被表示为图形的节点,并且由变换矩阵表示。其他场景图形节点可以表示光源、粒子系统、虚拟相机等。
图1示出了渲染设备的示例,该渲染设备100可以包括网络接口120、处理器子系统140、数据存储装置160和显示器接口180,其中,在本说明书中别处对所述部件中的每一个进行更详细的描述。渲染设备100可以访问描述要渲染的场景的场景描述符数据20,并且可以基于场景描述符数据20来确定要由渲染设备本地渲染的场景的第一部分和要远程渲染的场景的第二部分。例如,渲染设备100可以确定要本地渲染一个或多个对象并且远程渲染其余对象,或反之亦然,并且可以请求远程渲染系统200渲染场景的第二部分。为了这个目的,渲染设备100可以向远程渲染系统200发送请求40,例如通过经由渲染设备100的网络接口120并且经由将渲染设备100连接到远程渲染系统200的网络10来发送请求40以由远程渲染系统200的网络接口220接收。远程渲染系统200也可以访问场景描述符数据20,例如通过作为用于由渲染设备100检索的场景描述符数据20的主机或通过从别处检索场景描述符数据20。因此,远程渲染系统200可以渲染场景的第二部分以获得预渲染的场景数据60(包括场景的第二部分的预渲染版本),并且经由网络10将预渲染的场景数据60发送到渲染设备100。渲染设备100进而可以将场景渲染为视频对象或外部环境的增强,即通过本地渲染场景的第一部分并且通过包括场景的第二部分的预渲染版本,例如通过将场景的第二部分的预渲染版本与本地渲染的第一部分混合或以其他方式组合。
这样的混合渲染可以涉及在逐帧的基础上进行渲染,这意味着渲染设备100可以针对给定帧渲染场景的第一部分,针对该给定帧接收场景的第二部分作为预渲染的场景数据,组合两个经过渲染的场景部分,并且然后显示得到的组合帧。然而,将理解,可以但不需要每帧地请求远程渲染。例如,渲染设备100可以请求远程渲染从指定的时间实例开始并且进行指定的持续时间或进行非指定持续时间,直到渲染设备100请求停止远程渲染为止,并且远程渲染系统200可以从指定的时间实例向前开始渲染帧。然后可以将预渲染的场景数据例如作为视频流流式传输到渲染设备100。在特定示例中,可以使用比如但不限于MPEGDASH(HTTP上动态自适应流式传输)等自适应流式传输技术对视频流进行编码。
在图1实施例的示例中,渲染设备100可以表示AR客户端,并且可以执行以下步骤或其子集以实现混合渲染。此处和别处,渲染设备可以被简称为‘客户端’,并且远程渲染系统可以被简称为‘渲染服务器’,而渲染上下文可以是AR,但也可以一般地应用于XR或应用于VR。
1.客户端可以例如从渲染服务器或从托管场景的资产的内容服务器获得要渲染的场景的AR场景描述符文件。AR场景描述符文件可以是如在本说明书中别处所描述的场景描述符数据的示例。
2.从AR场景描述符文件,客户端可以识别并且例如从渲染服务器或从内容服务器下载3D资产。在一些示例中,客户端可以下载场景的所有3D资产,而在其他示例中,客户端仅可以下载所有3D资产的一部分,例如,仅下载从场景中用户的视点可见的那些3D资产。
3.基于比如用户在场景中的位置、服务器与客户端之间的可用带宽、服务器和/或客户端处的可用资源等标准,客户端可以确定渲染服务器要本地渲染哪个(哪些)对象以及要远程渲染哪个(哪些)对象。
4.客户端可以请求渲染服务器渲染(多个)选定对象,并且例如以视频流的形式向客户端提供预渲染的场景数据。在请求中,或伴随着请求,客户端可以包括可以与渲染服务器渲染场景的部分相关的信息,比如例如以观看位置和/或取向的形式定义场景中用户的视点的信息。附加信息可以包括表征要增强的内容中的光照条件的内容数据、用户偏好、要增强的视频对象的转码版本、或示出了要增强的外部环境的面向外和/或面向内的相机的视频记录。
5.客户端可以接收并且解码视频流,以获得包含预渲染的内容的预渲染的场景数据的解码版本。
a.如果预渲染的内容在显示之前仍需要经历进一步的渲染步骤,则可以将这样的预渲染的内容输入到客户端的渲染引擎,但可以绕过多个渲染步骤,例如一个或多个初始渲染步骤。
b.如果预渲染的内容表示(多个)完全预渲染的对象,则可以将该预渲染的内容的图像或视频数据复制到视频缓冲器,以用于在由渲染引擎生成所谓的视口之后进行合并。这样的预渲染的内容可以包括但不限于:
i.传统的图像或视频内容(例如,单视角、立体视角、多视角、体积和/或全向)
ii.可以直接复制到缓冲器(例如,用于OpenGL的顶点或片段缓冲器)的渲染就绪内容。这样的预渲染的内容可以例如呈纹理、子图形(sprite)或任何其他低级图形元素的形式。
iii.具有处理元数据(变换矩阵、透明层、裁剪/缩放特性等)的以上各项中的任一项
6.客户端的渲染引擎可以通过本地渲染选定数量的对象来创建部分经过渲染的视口。
7.如果一些对象以预渲染格式可用,则客户端的渲染引擎可以将部分经过渲染的视口与包含(多个)预渲染的对象的视频缓冲器合并,以生成最终经过渲染的视口。
8.客户端可以再次从步骤3处开始,直到AR呈现结束为止。
在图1实施例的另一示例中,渲染设备100可以表示XR客户端,比如一副系绳式AR眼镜,该副系绳式AR眼镜可以被配置成在外部环境中(例如,在观看者的物理周围环境中)渲染空间对齐的3D和2D资产。远程渲染系统200可以充当XR客户端的渲染服务器,并且可以包括要渲染的场景的内容,包括描述符文件、表示3D/2D图形对象的3D/2D资产等,并且如先前所描述的,可以具有将场景的部分渲染例如为全向帧、对经过渲染的场景部分和任何其他所生成的资产进行编码/转码、封装和分发的能力。这样的XR客户端和渲染服务器可以符合参考文献[1]的章节Fout!Verwijzingsbron niet gevonden.的混合渲染类别。还应注意,以下对XR客户端和渲染服务器的参考以及XR客户端和渲染服务器的实施例也可应用于如本说明书中所描述的任何其他类型的渲染设备和任何其他类型的远程渲染系统。
在操作期间,XR客户端可以检索一个或多个描述符文件,该一个或多个描述符文件包含关于场景和可用和/或所需资产的信息。资产本身可以存储在渲染服务器处/由渲染服务器存储,或存储在另一服务器处/由另一服务器存储,其中,后者在别处也被称为‘内容服务器’。描述符文件可以包括或表示如别处描述的场景描述符数据。基于场景描述符数据,XR客户端可以下载渲染场景所需的那些资产。在一些实施例中,XR客户端可以下载所有资产,以便能够离线渲染场景,例如,即使网络连接中断。可替代地,资产和描述符文件可以例如在渲染会话开始之前存储在XR客户端上并且上传到渲染服务器。
在解析例如,如包含在场景描述符数据中的(多个)描述符之后,XR客户端可以例如基于比如可见性等标准来选择要渲染所需资产中的哪一个。然后,XR客户端可以从所选择的资产中决定这些资产中的哪个/哪些要本地渲染以及哪个/哪些要远程渲染。本地/远程选择的标准可以是多维的,例如,基于几何复杂性、网络连接性、语义重要性、空间定位等。在作出这个决定之后,XR客户端可以发送远程渲染所选择的资产的请求。这样的请求可以由提取远程渲染的资产的提取请求构成。同时地、更早地或更晚地,XR客户端可以开始本地渲染选定资产。XR客户端的请求可以例如通过指示虚拟相机位置、头部姿势等包含关于渲染上下文的信息,并且可能包含由位于客户端的传感器(比如捕获光数据的环境光传感器、捕获深度数据的深度传感器或记录图像或视频的面向外的相机等)捕获的环境信息。渲染服务器可以基于接收到的请求和相关联的信息来渲染场景的所请求的部分。在渲染之后,可以将得到的预渲染的场景数据可能连同比如同步信息、变换矩阵、编解码器性质等伴随信息一起压缩并且发送到XR客户端,该伴随信息可以以元数据的形式传输到XR客户端。当XR客户端已经接收到预渲染的场景数据时并且当本地渲染的场景数据可用时,可以例如通过叠加或缝合来将这两种类型的数据组合。为了这个目的,这两种类型的数据都可以在时间上和空间上对齐,这可以是潜在地基于从渲染服务器接收到的伴随信息进行处理的产物。
可以在渲染会话期间(例如,在任何时间)调整要本地渲染的资产与要远程渲染的资产之间的分割。因此,可以期望使场景描述符数据在XR客户端与渲染服务器之间保持同步。为了这个目的,当发生场景更新(该更新可以由XR客户端、渲染服务器、内容服务器或远程服务例如基于用户输入或外部事件来发起)时,可以例如通过将场景描述更新(‘差量’)和可选地与场景描述更新相关联的新资产从一个实体传输到另一实体来更新两个实体处的场景描述符数据。如果渲染服务器与XR客户端之间的通信中断但随后重新建立,则还可以使用这样的更新机制。可替代地,在例如由于文件完整性受损或过期而不可以应用场景描述更新的情况下,可以请求场景描述的最近版本。
图2示出了使用头戴式显示器渲染以增强外部环境的场景的示例。此处,示出了要由用户300佩戴的头戴式显示器320,其中,头戴式显示器320允许用户300例如经由头戴式显示器320的透明或半透明部来观看外部环境340。渲染设备本身未在图2中示出,但在一些实施例中可以被集成到头戴式显示器320中,该头戴式显示器然后也可以被称为头戴式设备,而在其他实施例中,渲染设备可以与头戴式显示器320分离,但例如使用有线或无线通信连接到该头戴式显示器。渲染设备可以向用户渲染场景以增强用户对外部环境340的观看。例如,这样的增强可以发生在与由头戴式显示器320的透明或半透明部提供的视野相对应的视野342内,或者发生在其子部分内。如在图2中示出的,场景的第一部分360可以由渲染设备本地渲染,而场景的第二部分380可以由远程渲染系统(图2中未示出)远程渲染。例如,渲染设备可以决定本地渲染看起来更靠近用户的3D图形对象,例如因为用户可以与3D图形对象交互,该交互可以从更低的时延中受益,而看起来距用户更远的另一3D图形对象可以由远程渲染系统远程渲染。
应用示例
通常,可以存在渲染场景以增强视频对象或外部环境的各种应用示例。尽管图2示出了其中用户可以与叠加在用户的实际物理周围环境上的虚拟怪物战斗的AR游戏体验,但仍可以存在例如在旅游业、商业、工业、教育等中的各种其他类型的应用。这样的示例之一可以是具有以AR渲染的绘画的博物馆。为了这个目的,实体博物馆可以包括空的画布,通过由用户佩戴的头戴式显示器可以使绘画以AR叠加在这些画布上。因此,这些绘画可以表示场景的3D图形对象,其中,单独的绘画由示出绘画的帧和纹理定义。用户可以物理地步行通过博物馆,该移动可以由渲染设备跟踪,以根据用户的位置和观看方向调整对绘画的叠加。这样,用户可以自由移动通过博物馆并且从不同角度观看绘画。AR内容(亦即,叠加的绘画)可以完全由远程渲染系统远程渲染、完全由渲染客户端本地渲染、或以混合方式渲染。例如,远处的对象可以由远程渲染系统渲染,而附近的对象可以由渲染设备渲染。渲染设备可以基于用户相对于对象的位置来作出什么在附近和什么在远处的决定。
在特定示例中,用户可以从位置A1处开始并且移动到位置A2。在位置A1处,用户可以远离对象1,使得不需要本地渲染对象1,因为远处的对象需要较少的细节。这样,可以请求远程渲染系统远程渲染对象1,并且将从用户的角度示出对象1的渲染版本的视频流式传输到渲染设备。当移动成更靠近对象1时,可以期望对对象1进行更高分辨率的渲染,使得渲染设备可以切换到本地渲染。
用于远程和本地渲染的信令
混合渲染可以涉及例如用于客户端请求远程渲染以及用于渲染服务器对这样的请求做出响应(例如通过确认这样的请求和通过向客户端输送预渲染的场景数据)的信令。在下文中描述的信令可以使用任何合适的协议和/或语法。例如,信令可以基于WebSocket,或可以集成到RTSP/RTCP控制消息中,或利用HTTP REST API或其他协议。下文通过聚焦于包含在这样的消息中的信息而不是聚焦于信令协议本身来描述各种信令。
默认情况可以是客户端可以控制渲染要本地执行、远程执行还是以混合方式执行。在别处描述了这种默认情况的例外,比如渲染服务器例如由于计算资源不足而不能执行所有所请求的远程渲染。
切换本地渲染和远程渲染
以下表格可以示出用于启用或禁用远程渲染的消息。可以将第一消息从客户端发送到渲染服务器以初始化远程渲染。该消息可以包含如下文定义的各种信息。将理解,如果在此处或别处将某些信息陈述为‘必需的’,则这仅与消息的这个特定示例有关,因为在其他类型的消息中,这样的信息可能不需要是必需的。
此处,术语‘位置’可以指场景中的位置,并且更具体地指视口的位置,从该视口渲染场景。这个位置可以被定义为3D坐标,例如,定义为x,y,z坐标,但也可以以任何其他方式定义,例如,定义为2D坐标。类似地,术语‘取向’可以指视口的取向,从该视口渲染场景,该取向可以以任何合适的方式定义,例如,定义为相应的偏航角、俯仰角和滚转角。
使用该信息,渲染服务器可以开始为场景中所请求的位置创建所请求的视频流。渲染服务器可以利用以下消息向客户端确认请求:
当客户端希望停止对(多个)对象的远程渲染时,客户端可以向渲染服务器发送以下消息:
在设置远程渲染之后,客户端可以周期性地或半周期性地或重复地向渲染服务器发送消息以例如使用以下消息更新客户端在场景中的位置:
反过来,渲染服务器可以利用指示客户端可以检索更新后的视频流的新端点的消息来做出响应:
建模时间行为
除根据对象的空间布置来定义场景之外,场景描述符数据还可以定义场景中随时间的变化。例如,场景描述符数据可以描述以下各项中的一项或多项:相应对象在一个或多个时间实例处的存在、位置、取向和外观,以定义场景中随时间的变化。因此,可以描述场景随时间变化的时间状态。在特定示例中,可以在场景时间线上的多个时间实例处或针对场景时间线上的多个时间实例来描述这样的变化。对场景中的时间动态进行这样的建模对于动态场景可以是有利的。例如,场景可以表示比如科学博物馆等动态3D环境,其中,对象可以四处移动,并且用户可以与对象交互。为定义哪个对象在场景中的哪个位置,可以使用时钟和参考时间。参考时间可以例如被称为与在播放比如MPEG DASH视频流等媒体内容时的呈现时间戳类似的呈现时间戳(‘pts’或‘PTS’)。场景描述符数据可以通过参考这样的呈现时间戳来定义场景中的变化。例如,场景描述符数据可以为每个或多个对象定义不同时间实例的多个事件,同时为这些事件中的每一个定义(多个)对象的可能不同的位置,也如下表中阐明的。这里,‘事件’标签可以用于定义事件的呈现时间戳并且定义事件本身。
因此,在以下示例中,具有对象标识符“1”的对象被定义为在x轴上在PTS=0与PTS=2之间移动,并且然后再次在PTS=9处移动。
<object id="1">
<eventpts="0"x="0"y="0"z="0"/>
<eventpts="1"x="1"y="0"z="0"/>
<eventpts="2"x="2"y="0"z="0"/>
<eventpts="9"x="3"y="0"z="0"/>
</object>
这样的和类似类型的场景描述符数据可以使客户端能够请求渲染服务器在特定时间实例处渲染场景的一部分。在一些实施例中,客户端可以请求渲染服务器具体地在未来的时间实例处渲染部分,该未来时间实例指客户端在时间上先于当前渲染的时间实例的时间实例。这样,可以适应客户端与渲染服务器之间的网络中的时延,和/或渲染系统的渲染中的时延,和/或从远程渲染到显示远程渲染的内容的‘端到端’链中的其他时延。
图3展示了用于针对在时间上先于渲染场景的当前时间实例的时间实例远程渲染场景部分的这样的请求。此处,示出了由作为客户端的渲染设备100和作为渲染服务器的远程渲染系统200执行的步骤的子集。这些步骤包括渲染设备100本地渲染连续输出帧n、n+1、n+2、n+3等的内容,然后在渲染之后显示经过渲染的内容。可以决定使渲染系统200辅助场景的渲染。因此,在渲染帧n时,渲染设备100可以向渲染系统200发送在与帧n+3相对应的时间实例处渲染一个或多个对象的请求400。在接收到这个请求之后,渲染系统200然后可以在特定的时间实例处渲染410场景的这个部分,从而获得这个时间实例的预渲染的场景数据。然后,可以传输420并且渲染设备100按时接收预渲染的场景数据,以将该预渲染的场景数据与针对帧n+3本地渲染430的内容一起显示430。
同步
可以存在使客户端在空间上以及时间上准确地将远程渲染的对象与本地渲染的对象组合的多种方法。下文中考虑了如何确保时间对齐,该时间对齐也可以被称为‘同步’。此处,假设由渲染服务器进行的远程渲染和由客户端进行的本地渲染都产生要同步的相应视频帧。然而,将理解,还可以生成经过渲染的对象作为除帧之外的另一数据结构。
使用时钟:生成帧的实体(比如客户端或渲染服务器)可以将生成的帧与内部时钟相关,例如通过使用时钟生成呈现时间戳并且用这个呈现时间戳标记生成的帧。然而,两个内部时钟可能不需要同步。相反,对于每个实体,在开始渲染场景时知晓时钟的开始时间、定义每帧的呈现时间戳的增量以及定义帧速率可以是足够的。这样,由渲染服务器生成的与帧一起传输到客户端的呈现时间戳可以由客户端转换成由客户端生成的呈现时间戳。示例可以如下:客户端可以开始渲染具有由渲染服务器渲染的对象A和本地渲染的对象B的场景。场景描述符可以描述在PTS=10处对象A和对象B都将旋转90度。为了同步发生这种情况,客户端可能需要知晓对象A的接收到的帧如何在时间上与对象B的本地生成的帧相关,然后对象A的接收到的帧与对象B的本地生成的帧可以例如通过叠加或混合或以其他方式进行组合。为了这个目的,帧速率和每帧时钟的增量都可以在描述符文件中定义。作为示例,对于30的帧速率和每帧为1的增量,当客户端接收到PTS=10的帧时,客户端可以知晓该帧是针对其自己的PTS,该PTS等于:current_time_wallclock–start_time_wallclock+(1/30*10)。
使用超时:可以定义渲染服务器对客户端的请求做出响应的最大持续时间(或响应时间)。可以将这个最大持续时间或响应时间发信号通知给渲染服务器。如果来自包含远程渲染的帧的渲染服务器的响应在这个最大持续时间或响应时间之后到达,则该响应可以被视为丢失/无效的。在这样的方法中,请求可以与对单一帧的渲染有关。
使用帧编号:每个请求可以包括帧编号,该帧编号可以是期望远程渲染的帧具有的帧编号。在接收到预渲染的帧之后,客户端可以将帧编号进行比较以使远程渲染的帧与本地渲染的帧相匹配。对于这样的方法,优选的是,帧速率在渲染服务器和客户端处都是已知的。
使用异步API:在这样的方法中,通信信道在渲染服务器与客户端之间可以是开放的,并且每当来自渲染服务器的经过渲染的输出就绪时,可以经由API触发事件。作为响应,客户端可以经由API解析事件性质,这些事件性质可以包括对象标识符、帧编号和/或其他信息。
在一些实施例中,例如在客户端与渲染系统之间断开连接之后以及在用户可以与对象交互的情况下,客户端可以向渲染服务器发信号通知对象的已经改变的性质。这样的信令可以以与之前描述的信令类似的方式执行,但是例如可以包括以下类型的信息:
将逻辑从本地渲染切换到远程渲染并且返回
在混合渲染会话期间,可能发生一个或多个对象的渲染从本地渲染切换到远程渲染,并且反之亦然。这在渲染会话期间可以发生多次(如果不是许多次的话)。为了使这样的切换尽可能无缝,客户端可能需要确定何时停止本地渲染对象并且相反地使用包含经过渲染的对象的传入视频流。即,如果在远程渲染的对象可用之前停止这样的本地渲染,则用户可以经历对象消失和再现,或可以感知相同对象两次,例如,放置在彼此之上。
因此,可以期望知晓何时开始或停止在客户端处本地渲染对象。这可以通过知晓对象(针对其,渲染将从本地切换到远程,或反之亦然)的标识符以及知晓何时将发生这种切换的PTS或其他时间标记来知晓。由于客户端可以决定切换,因此客户端可以知晓这样的信息。然而,渲染服务器可能需要针对远程渲染的帧传输与该远程渲染的帧有关的PTS或其他时间标记。这可以经由例如WebSocket作为消息、在帧的SEI消息中、作为RTP发送者报告等被发信号,并且例如可以包括以下信息:
当客户端切换到本地渲染时,客户端可以丢弃与对象标识符有关的视频流或视频流的部分。当客户端从本地渲染切换到远程渲染时,当接收到的对象标识符指示视频流针对期望的PTS包含对象的远程渲染版本时,客户端可以停止本地渲染对象。
自适应方案
当在由客户端本地渲染对象与由渲染服务器远程渲染对象之间作出决定时,可以使用各种标准。在一些情况下,这些标准可以允许客户端将其混合渲染适应于某些事件或情况。下文描述了这样的标准和对应的自适应方案。
基于对象复杂性的自适应
客户端可以具有有限的或甚至非常有限的处理能力。后者可以特别适用于一些类型的移动客户端。因此,可以在更复杂的对象与规则或不太复杂的对象之间进行区分,因此客户端可以决定在哪里渲染哪些对象。这样的复杂性可以以各种方式定义或指示,包括但不限于多边形的数量和/或嵌套对象部分的数量。客户端决定本地渲染对象还是远程渲染对象的决定过程可以例如涉及:
1.客户端可以确定其可以渲染的多边形的最大数量。
2.场景描述符可以指示每个对象的多边形数量。
3.客户端可以向远程渲染服务器指示其可以渲染的多边形的数量。
4.客户端可以从渲染服务器提取高多边形对象的远程渲染的视频表示。
远程渲染复杂对象的消息的示例可以包括以下信息:
使用来自客户端的该消息所提供的信息,渲染服务器可以开始创建所请求的视频流,该视频流包含复杂性高于‘最大复杂性’的对象。渲染服务器可以利用以下消息来对客户端的请求做出响应:
当客户端希望停止远程渲染(多个)对象时,客户端可以发送以下消息:
基于自适应的与对象的距离
可以附加地或替代地取决于客户端在场景内的位置来作出渲染服务器的本地渲染和远程渲染的决定。这样的取决于位置的自适应可以是有利的,因为客户端渲染完整的场景可以是资源密集型的。通过仅渲染附近的对象,客户端可以节省比如计算资源或电池电量等处理资源。继续参考AR示例,其中,用户可以从位置A1处开始并移动到位置A2,基于与对象的距离的自适应可以包括以下内容:
1.客户端可以提取场景描述符。
2.客户端可以提取3D资产。
3.客户端可以确定其当前位置(A1)。
a.基于场景中的位置,客户端可以确定哪些对象位于其视野内以及特定半径内。
b.在位置A1处,这可以导致识别出零个对象,这意味着所有其他可见对象(例如,在特定半径之外)都可以由渲染服务器远程渲染。
c.因此,客户端可以从渲染服务器提取包括这些对象的预渲染版本的视频流。
4.客户端可以移动到A2位置。
a.客户端可以确定对象1位于其视野内以及特定半径内,并且因此可以本地渲染对象1并且将本地渲染的对象1与来自渲染服务器的其余可见对象的预渲染版本相结合。
要远程渲染哪些对象的发信号可以通过遵循与本地渲染和远程渲染的切换相同的步骤来完成,但这可能需要远程渲染对象的长清单。可替代地,这样的发信号可以涉及以下消息,其中,客户端发信号通知要本地渲染哪些对象,并且渲染服务器可以基于场景描述符来从此确定要远程渲染哪些对象。后者可以涉及确定哪些对象对客户端可见,并且省略要本地渲染的对象。
使用由该消息提供的信息,渲染服务器可以开始创建所请求的视频流,该视频流包含未被指示为要本地渲染的(多个)对象。渲染服务器可以利用以下消息来对客户端的请求做出响应:
在设置远程渲染之后,客户端可以周期性地或半周期性地或重复地向渲染服务器发送消息以例如使用以下消息更新客户端在3D环境中的位置,该消息可以附加地包括用于指示将本地渲染的对象的对象标识符的字段。消息可以如下所示:
当客户端希望停止对(多个)对象的本地渲染时,客户端可以向渲染服务器发送以下消息。响应于该消息,渲染服务器可以开始远程渲染场景的所有相关对象。
基于处理能力的自适应
渲染场景可能使本地处理资源(比如客户端的(多个)CPU和(多个)GPU)紧张,特别是对于真实感场景、所谓的6DOF(自由度)体验等。利用混合渲染,客户端和渲染服务器可以共享渲染任务。客户端可以请求渲染服务器例如以以下方式协助场景的渲染:
1.客户端可以监视其CPU和/或GPU负载。
2.如果CPU和/或GPU达到100%或任何更早的阈值,则客户端可以请求由渲染服务器例如通过远程渲染附加的(和/或高多边形)对象进行(附加的)远程渲染。
渲染服务器还可以发起由客户端进行协助的请求:
1.服务器可以监视其CPU和/或GPU负载,并且例如周期性地将CPU和/或者GPU负载传送到客户端。
2.客户端可以检查渲染服务器是否可以处理与远程渲染(附加的)对象相关联的附加负载。
3.如果可以处理这个附加负载,则客户端可以向渲染服务器指示要远程渲染哪个(哪些)对象。
基于带宽的自适应
客户端可以例如通过对进入网络缓冲器的字节数进行计数并且确定每秒的平均值来估计可用于流式传输的带宽。基于这个估计的可用带宽,客户端可以确定切换到本地渲染、远程渲染或改变混合渲染中的比率(例如,更多远程渲染或更多本地渲染)。特别地,如果可用带宽很少,则客户端可以切换或将比率改变为偏向本地渲染,而如果存在充足的可用带宽,则客户端可以将比率切换或改变为偏向远程渲染。例如,这可以涉及以下步骤:
1.如果带宽过低或减少到零(例如,当客户端失去网络连接性连接时),则客户端可以切换到本地渲染。
2.如果带宽恢复,则客户端可以切换到远程渲染。在这种情况下,同步步骤可以在切换之前发生,例如,以验证客户端和渲染服务器都具有相同版本的场景描述。
将理解,客户端和/或渲染服务器也可以以任何其他方式监视带宽,并且可以在本地渲染与远程渲染之间切换,或者取决于这样的带宽测量值而改变混合渲染中的比率。通常,如果客户端有必要本地渲染更多对象,则客户端可以降低其本地渲染的质量,以便能够本地渲染这些对象。相反地,如果客户端能够对至少一些对象使用远程渲染,则客户端可以再次提高本地渲染的质量。
基于时延的自适应
在客户端可以本地渲染至少一些对象的场景中,可以考虑时延,以确定何时或是否切换到本地渲染、远程渲染或改变混合渲染中的比率。例如,可以将这样的时延定义为客户端与渲染服务器之间的网络时延,或者端到端时延,例如,在渲染服务器处进行帧创建、在客户端处进行编码、封装、传输和解码、或者任何其他方式的组合时间。通常,在利用远程渲染时,可能需要帧‘及时’到达,这意味着在要显示帧之前时间处。这是否是可能的可以取决于远程渲染的时延。然而,即使时延对于按时接收和显示帧是足够的,客户端仍然可以确定完全或部分切换到本地渲染,以减轻网络条件恶化时延迟接收或不接收的机会。例如,如果网络条件恶化,则客户端可以决定远程渲染更多的静态对象,同时本地渲染更多的动态对象,以减少视觉伪影。
时延可以由客户端计算。例如,当客户端的时钟与服务器的时钟同步时,客户端可以从帧由客户端接收的时间减去帧创建时间,该帧创建时间例如可以被指示为伴随帧的元数据中的时间戳。帧创建时间可以例如由服务器经由WebSocket、RTCP/RTSP命令发信号通知,或者可以由客户端经由HTTP REST API提取。消息可以例如包括:
切换命令可以是类似的,如针对本地渲染和远程渲染的切换以及针对基于与对象的距离的自适应所描述的。
基于电池电量的自适应
渲染场景可能需要大量的计算资源,这些计算资源进而可能消耗电力。这可能对移动客户端不利。为节省电池,客户端可以取决于其电池电量决定部分地或完全地切换到远程渲染。这可以导致功耗的降低,因为渲染3D图形对象可能比接收和解码视频流更耗电。当电池电量下降到阈值以下时,可以实现这样的切换。在一些实施例中,随着电池电量的降低,客户端可以逐渐请求远程渲染更多的对象。附加地,或替代电池电量,客户端可以考虑功耗速率,因为较高的功耗速率可以促使客户端比较低的功耗速率更早地请求远程渲染。除电池电量外,客户端还可以考虑经过渲染的对象的复杂性,因为渲染高度复杂的对象可能消耗更多的电力。例如,高度复杂的对象可以优选地被远程渲染,或者如果场景平均包含更复杂的对象,则客户端可以更早地切换到远程渲染。
将远程渲染的对象与本地环境相结合
可以以各种方式将远程渲染的对象与本地渲染的对象相结合,在下文中描述这些方式的示例。
任何消息都可以以各种方式(例如使用WebSocket、在帧的SEI消息中、RTP发送者报告等)或者任何先前提及的消息传输方法来传输。
将视频帧置于3D环境中
客户端可以向渲染服务器指示其位置和取向,并且接收在其视野中的对象的基于视频的表示。在概念上,由渲染服务器生成基于视频的表示可以类似于场景中由虚拟相机进行的记录。得到的视频帧可以由客户端置于表示所指示位置处的场景的3D环境中。这样的放置可以表示3D环境中的虚拟屏幕,虚拟相机的输出可以投影在该虚拟屏幕上。为了实现这样的放置,渲染服务器可以例如针对视频流的每个帧或每个关键帧向客户端发送以下信息:
将本地生成的帧和远程生成的帧混合
将远程渲染的对象与本地渲染的对象相结合的另一方式可以是将每个对象渲染为相应的帧,并且在显示器上渲染之前使这些帧叠加。例如,两个帧可以简单地放置在彼此之上,其中,帧中的至少一个在经过渲染的内容之外是部分透明的,或者如果所使用的视频编解码器不支持透明,则包含不透明颜色,该不透明颜色可以被发信号给客户端并且由客户端使其变得透明。为实现帧的这样的混合,渲染服务器可以例如针对视频流的每个帧或每个关键帧向客户端发送以下信息:
接收具有3D对象的2D描述的视频流
另一示例是,当远程渲染对象时,这些对象可以在2D帧中作为展开的多边形传输。客户端可以通过折叠多边形并且用指定的纹理将折叠的对象放置在3D环境中来重建这样的对象。为实现展开的多边形在2D帧中进行这样的客户端折叠,渲染服务器可以例如针对视频流的每个帧或每个关键帧向客户端发送以下信息:
如之前提及的,响应可以是纹理(或材料,或其他图形引擎2D内容)。在这样的情况下,可以指示锚点(通常表达为二维位置)以指示纹理的哪个点(例如,左上还是中心)是参考点,而不是位置和旋转。
包含对象的复用视频
在一些实施例中,由客户端接收的每个视频流可以包含一个或多个对象的远程渲染版本。渲染服务器可以为这些对象中的每一个或为每一组连接的对象生成单独的视频流。因此,取决于要远程渲染的对象的数量,客户端可以接收大量视频流,这些视频流可能全部都需要例如使用单独的解码器或解码器实例被解码。为限制传输到客户端并且因此必须由客户端解码的视频流的数量,可以由渲染服务器将两个或更多个视频流复用为一个视频流。在这种情况下,前往客户端的信令可以包含以下信息:
对于这个简单示例,假设帧的所有打包对象都是矩形的,并且具有已知的打包顺序。其他更复杂的实施方式可能需要额外的信息,例如,锚点、透明度图等。
场景图形定义
场景可以至少部分地由场景图形来建模。例如,场景图形可以是有向无环图形,例如表示场景的几何结构的基于对象的层次结构的朴素树结构。场景描述符数据可以包括这样的场景图形或参考存储在别处的场景图形。可以以各种方式定义场景图形,如将在下文中阐明的。
例如,取决于从由客户端渲染的视点到场景中的一个或多个对象的距离,可以期望本地渲染对象(例如,对于附近的对象),或接收包含对象的预渲染版本的视频流(例如,对于远处的对象)。场景中的一些对象可能被完全地或部分地遮挡(例如,水族馆中的窗户后面的对象),或者可能位于用户无法访问的空间中(例如,剧院中)。这些对象可以形成一组(例如,一群鱼或一群演员)。在一些情况中,可以将组本身视为对象。还可以存在可以包括单独但又连接的对象部分的对象。在对象包括其他对象或单独但又连接的对象部分的情况下,可能并不总是需要在客户端处单独渲染这样的其他对象或对象部分。相反,在某些情况下,将这些远程渲染的对象作为一组对象或对象部分,并且以视频流的形式输送到客户端可以是有利的。
两种情况是,一组对象可以被视为对象本身,以及包括单独但又连接的对象部分的对象在下文中可以被称为‘嵌套对象’,因为对象或对象部分之间可以存在层次结构。这个层次结构可以反映在场景描述符数据中,因为场景描述符数据可以包括或参考可以指示场景的对象之间的关系的场景图形。基于这个场景图形,客户端可以决定本地并且单独地渲染对象还是检索包括对象的预渲染版本的视频流。以下可以是这样的图形的示例,其中,将对象定义为属于分支。例如,分支可以表示一组对象,或包括单独的对象的更大对象。可以以不同的格式创建这样的图形,比如XML、JSON、具有缩进的纯文本等。下文示出了呈XML格式的示例。
在更复杂的情况下,分支也可以包含子分支。以下示出了这种情况的示例:
消息收发
当请求渲染服务器渲染属于场景图形中的一个或多个分支的对象或对象部分时,可以使用以下消息收发,在这之后可以是表示服务器的响应的消息:
/>
通常,本说明书中描述的实施例可以存在各种变体。例如,除定义场景的动态方面之外,场景描述符数据还可以包括或参考在动态中使用的内容。例如,场景描述符数据可以包括或参考定义对象的动画的动画数据、或定义对象在某些条件下的变化的交互数据、或对象的语义性质(例如,“活动”或“伪影”)、或定义渲染提示(例如,用于合并光或音频源)的后处理元数据、内容性质(例如,“生成的”或“捕获的”)以及可能对客户端有用的其他信息(例如,对象寿命)。
通常,本说明书中描述的消息的内容和语法可以表示在本说明书中别处定义的元数据。
通常,场景可以将3D图形对象与视频相结合。例如,3D图形对象可以表示虚拟显示器,可以在该虚拟显示器上显示视频。特定但非限制性的示例是具有视频化身的电影,其中,演员的面部的相机记录被显示为演员的3D模型的面部上的纹理。另外,当使用混合渲染时,一些3D图形对象可以由渲染服务器预渲染,并且以视频流的形式输送到客户端。从客户端的角度看,场景因此似乎可以包括例如远程预渲染的3D图形对象以及要本地渲染的3D图像对象的3D资产的一个或多个视频流。在视频流式传输中,例如当使用MPEG DASH时,客户端可以请求媒体呈现描述符文件(MPD)并且选择一个或多个媒体片段来下载。在服务器托管的3D环境中,客户端可以下载对3D环境和所有资产的描述,并使用该描述和所下载的资产来渲染3D环境。可以将这两种技术组合以使得能够渲染将3D图形对象与视频相结合的场景。因此,场景可以由两种不同类型的描述符来定义:一个或许多MPD和一个或许多3D场景描述符。通过组合这两种类型的描述符,客户端可以知晓在哪里检索所需的数据,例如,一个或多个视频流和场景的3D资产。
在一些实施例中,代替客户端确定在哪里(例如,本地还是远程)渲染哪些对象或除此之外,还可以由渲染服务器部分地或完全地在本地渲染与远程渲染之间作出这样的决定。在这样的实施例中,客户端可以向服务器发送表征其本地渲染条件的定期更新,这些定期更新可以包括关于电池电量、连接强度、GPU使用等信息。然后,渲染服务器可以基于这样的信息来确定在哪里渲染哪些对象。在这样的示例中,如果与渲染服务器的连接较差或丢失,则客户端也可以被配置成切换到本地渲染。
在一些实施例中,在渲染会话期间的任何给定时刻,服务器可以请求客户端调整远程渲染与本地渲染之间的划分,例如,以在服务器处的资源不足的情况下由服务器远程渲染更少的对象。这样的请求可能被客户端忽略。
在一些实施例中,例如在客户端与渲染服务器之间的连接丢失之后,场景验证可以由客户端或由渲染服务器触发。这样的场景验证可以包括例如通过交换场景描述符数据的散列和/或版本号来比较客户端与渲染服务器之间的场景描述符数据以检查一致性。如果这样的验证失败,则可以发送更新或可以例如从内容服务器或从被认为具有场景描述符数据的有效或最新版本的相应实体重新检索场景描述符数据。
继续参考图1的渲染设备100,应注意,渲染设备100的网络接口120可以例如是无线通信接口,该无线通信接口也可以被称为无线电接口,并且可以被配置成连接到移动网络基础设施。在一些示例中,网络接口120可以包括无线电和天线,或者包括无线电和天线连接。在特定示例中,网络接口120可以是用于连接到遵守一个或多个3GPP标准的4G或5G移动网络的4G或5G无线电接口,或者可以是用于连接到Wi-Fi网络基础设施的Wi-Fi通信接口等。在其他示例中,网络接口120可以是有线通信接口,比如基于以太网或光纤的接口。
应注意,渲染设备100与远程渲染系统200之间的数据通信可以涉及多个网络。例如,渲染设备100可以经由无线电接入网络连接到移动网络的基础设施,并且经由移动基础设施连接到互联网,其中,远程渲染系统200是也连接到互联网的服务器。
渲染设备100可以进一步包括处理器子系统140,该处理器子系统可以例如通过硬件设计或软件来被配置成执行本说明书中描述的与渲染设备或将场景渲染为视频对象或外部环境的增强有关的操作。通常,处理器子系统140可以由单个中央处理单元(CPU)来体现,比如x86或基于ARM的CPU,但也可以由这种CPU和/或比如图形处理单元(GPU)等其他类型的处理单元的组合或系统来体现。渲染设备100可以进一步包括用于将显示数据182输出到显示器190的显示器接口180。显示器190可以是渲染设备100的外部显示器或内部显示器,并且通常可以是头戴式或非头戴式的。使用显示器接口180,渲染设备100可以将经过渲染的场景显示为视频对象或外部环境的增强。在一些实施例中,显示器190可以包括例如用于检测用户的姿势的一个或多个传感器,比如加速度计和/或陀螺仪。在这样的实施例中,显示器190可以例如经由前述显示器接口180或经由单独的接口将传感器数据184提供至渲染设备100。在其他实施例中,可以在与显示器分离的情况下接收这样的传感器数据184。
也如图1中所示出的,渲染设备100可以包括用于存储数据(包括但不限于场景描述符数据20)的数据存储装置160。数据存储装置160可以采取各种形式,比如硬盘驱动器或硬盘驱动器阵列、固态驱动器或固态驱动器阵列、存储器等。
通常,渲染设备100可以由(单一)设备或装置体现,例如,智能手机、个人计算机、膝上型计算机、平板设备、游戏控制台、机顶盒、电视、监视器、投影仪、智能手表、智能眼镜、媒体播放器、媒体录制器等。在一些示例中,渲染设备100可以是比如5G或下一代移动网络等移动电信网络的所谓的用户设备(UE)。在其他示例中,渲染设备可以是网络的边缘节点,比如前述移动电信的边缘节点。在这样的示例中,渲染客户端可能缺少显示输出,或可能至少不使用显示输出来显示经过渲染的场景。相反,渲染设备可以渲染场景,然后可以使该场景可用于流式传输到另一下游渲染设备,比如最终用户设备。
继续参考图1的远程渲染系统200,应注意,远程渲染系统200的网络接口220例如可以是有线通信接口,比如基于以太网或光纤的接口。网络10例如可以是互联网或移动网络,其中,远程渲染系统200连接到移动网络的固定部分。可替代地,网络接口220可以是例如如上文针对渲染设备100描述的类型的无线通信接口。
远程渲染系统200可以进一步包括处理器子系统240,该处理器子系统可以例如通过硬件设计或软件来被配置成执行本说明书中描述的与远程渲染系统或通常与为渲染设备渲染场景的一部分有关的操作。通常,处理器子系统240可以由单一CPU来体现,比如x86或基于ARM的CPU,但也可以由这种CPU和/或比如GPU等其他类型的处理单元的组合或系统来体现。在远程渲染系统200分布在不同的实体上(例如,分布在不同的服务器上)的实施例中,处理器子系统240也可以分布在例如这样的不同服务器的CPU和/或GPU上。也如图1中所示出的,远程渲染系统200可以包括比如硬盘驱动器或硬盘驱动器阵列、固态驱动器或固态驱动器阵列、存储器等数据存储装置260,该数据存储装置可以用于存储包括但不限于场景描述数据20的数据。
远程渲染系统200可以分布在比如本地服务器或远程服务器等各种实体上。在一些实施例中,远程渲染系统200可以由一种类型的服务器或这样的服务器的系统来实施。例如,远程渲染系统200可以由一个或多个云服务器或由移动网络的一个或多个边缘节点来实施。在一些实施例中,远程渲染系统200和渲染设备100可以根据客户端-服务器模型相互协作,其中,渲染设备100充当客户端。
通常,本说明书中描述的每个实体都可以体现为设备或装置,或在设备或装置中体现。该设备或装置可以包括执行适当软件的一个或多个(微)处理器。相应实体的(多个)处理器可以由这些(微)处理器中的一个或多个来体现。实施相应实体的功能的软件可以已经被下载和/或存储在对应的一个或多个存储器中,例如,存储在比如RAM的易失性存储器中或比如闪存的非易失性存储器中。可替代地,相应实体的(多个)处理器可以以可编程逻辑的形式在设备或装置中实施,例如,作为现场可编程门阵列(FPGA)。任何输入和/或输出接口都可以由设备或装置的相应接口来实施。通常,相应实体的每个功能单元可以以电路或电路系统的形式来实施。相应的实体也可以以分布式方式来实施,例如涉及不同的设备或装置。
图4示出了用于对场景进行混合渲染的计算机实施的方法的步骤,示出了在本地渲染设备处或由本地渲染设备执行的步骤。图4的方法可以包括:获得510如在本说明书中别处描述的场景描述符数据;至少基于场景描述符数据,确定520要由渲染设备本地渲染的场景的第一部分和要远程渲染的场景的第二部分;以及请求530有权访问场景描述符数据的远程渲染系统渲染场景的第二部分以获得预渲染的场景数据,该预渲染的场景数据包括场景的第二部分的预渲染版本,其中,请求包括向远程渲染系统提供时间标记以请求远程渲染系统在与时间标记相对应的状态下渲染场景的第二部分。该方法可以进一步包括:从远程渲染系统获得540预渲染的场景数据;以及将场景渲染550为视频对象或外部环境的增强,渲染包括本地渲染场景的第一部分并且包括场景的第二部分的预渲染版本。
图5示出了用于对场景进行混合渲染的计算机实施的方法的步骤,示出了在远程渲染系统处或由远程渲染系统执行的步骤。图5的方法可以包括:获得610如在本说明书中别处描述的场景描述符数据;接收620渲染场景的部分的请求,其中,请求包括时间标记;基于场景描述符数据和请求,在与时间标记相对应的状态下渲染630场景的部分以获得预渲染的场景数据,该预渲染的场景数据包括场景的部分的预渲染版本;以及将预渲染的场景数据提供640至渲染设备。
注意,在本说明书中描述的任何方法,例如,在任何权利要求中描述的任何方法,可以在计算机上实施为计算机实施的方法、专用硬件、或两者的组合。用于计算机的指令(例如可执行代码)可以存储在例如图6所示的计算机可读介质700上,例如呈一系列机器可读物理标记710的形式和/或作为具有不同电(例如磁)或光性质或值的一系列元件。可执行代码可以以暂态或非暂态的方式存储。计算机可读介质的示例包括存储器设备、光学存储设备、集成电路、服务器、在线软件等。图6通过示例示出了光学存储设备700。
在替代性实施例中,计算机可读介质700可以是暂态或非暂态计算机可读介质,并且可以包括呈数据结构形式的数据710,该数据结构表示本说明书中描述的任何场景描述符数据。
图7是展示了可以在本说明书中描述的实施例中使用的示例性数据处理系统1000的框图。这样的数据处理系统包括本说明书中描述的数据处理实体,包括但不限于渲染设备和远程渲染系统。
数据处理系统1000可以包括通过系统总线1006耦合到存储器元件1004的至少一个处理器1002。这样,数据处理系统可以将程序代码存储在存储器元件1004内。此外,处理器1002可以执行经由系统总线1006从存储器元件1004访问的程序代码。在一个方面,数据处理系统可以被实施为适用于存储和/或执行程序代码的计算机。然而,可以理解,数据处理系统1000可以以包括能够执行本说明书内描述的功能的处理器和存储器的任何系统的形式来实施。
存储器元件1004可以包括一个或多个物理存储器设备,例如本地存储器1008和一个或多个大容量存储设备1010。本地存储器可以是指在程序代码的实际执行期间通常使用的随机访问存储器或其他(多个)非持久性存储器设备。大容量存储设备可以被实施为硬盘驱动器、固态盘或其他持久性数据存储设备。数据处理系统1000还可以包括一个或多个高速缓存存储器(未示出),这些高速缓存存储器提供至少一些程序代码的临时存储,以减少在执行期间以其他方式从大容量存储设备1010检索程序代码的次数。
被描绘为输入设备1012和输出设备1014的输入/输出(I/O)设备可以可选地耦合到数据处理系统。例如,输入设备的示例可以包括但不限于麦克风、键盘、比如鼠标等指向设备、游戏控制器、蓝牙控制器、VR控制器和基于手势的输入设备等。例如,输出设备的示例可以包括但不限于监视器或显示器、扬声器等。输入设备和/或输出设备可以直接或通过中间I/O控制器耦合至数据处理系统。网络适配器1016还可以耦合到数据处理系统,以使其能够通过中间私有或公共网络耦合到其他系统、计算机系统、远程网络设备和/或远程存储设备。网络适配器可以包括用于接收由所述系统、设备和/或网络向所述数据传输的数据的数据接收器和用于向所述系统、设备和/或网络传输数据的数据传输器。调制解调器、电缆调制解调器和以太网卡是可以与数据处理系统1000一起使用的不同类型的网络适配器的示例。
如图7所示,存储器元件1004可以存储应用程序1018。可以理解,数据处理系统1000可以进一步执行能够促进应用程序的执行的操作系统(未示出)。以可执行程序代码的形式实施的应用程序可以由数据处理系统1000(例如,由处理器1002)执行。响应于执行应用程序,数据处理系统可以被配置成执行将在本文进一步详细地描述的一个或多个操作。
例如,数据处理系统1000可以表示如参考图1和本说明书别处描述的渲染设备。在这种情况下,应用程序1018可以表示在被执行时将数据处理系统1000配置成执行参考渲染设备描述的功能的应用程序。在另一示例中,数据处理系统1000可以表示如参考图1和本说明书别处描述的远程渲染系统。在这种情况下,应用程序1018可以表示在被执行时将数据处理系统1000配置成执行参考远程渲染系统描述的功能的应用程序。
应注意,上文提到的实施例说明而非限制本发明,并且本领域的技术人员将能够设计许多替代性实施例而不背离所附权利要求的范围。
在权利要求中,置于括号间的任何附图标记不应被解释为限制权利要求。使用动词“包括”和其词形变化不排除存在除权利要求中陈述的元素或级以外的元素或级。元素前面的冠词“一个”或“一种”不排除存在多个这种元素。在元件列表或群组之前的比如“至少一个”等表达表示从列表或组中选择所有元件或任何元件子集。例如,表达“A、B和C中的至少一个”应理解为仅包括A、仅包括B、仅包括C、包括A和B两者、包括A和C两者、包括B和C两者或包括全部A、B和C。本发明可以通过包括若干不同元件的硬件以及通过适当编程的计算机来实施。在列举了若干装置的设备权利要求中,这些装置中的若干装置可以由同一个硬件体现。在相互不同的从属权利要求中陈述某些措施这一事实,并不表示不能有利地使用这些措施的组合。

Claims (17)

1.一种使用渲染设备来渲染场景的计算机实施的方法,其中,该渲染设备被配置成显示视频对象或允许外部环境在视觉上传递至观看者并且将该场景渲染为该视频对象或该外部环境的增强,
该方法包括:
-获得场景描述符数据,其中,该场景描述符数据标识表示该场景的至少部分的一组3D图形对象,其中,该场景描述符数据指示该场景的状态随时间的变化;
-至少基于该场景描述符数据,确定要由该渲染设备本地渲染的该场景的第一部分和要远程渲染的该场景的第二部分;
-请求有权访问该场景描述符数据的远程渲染系统渲染该场景的第二部分以获得预渲染的场景数据,该预渲染的场景数据包括该场景的第二部分的预渲染版本,
其中,该请求包括向该远程渲染系统提供时间标记,以请求该远程渲染系统在与该时间标记相对应的状态下渲染该场景的第二部分;
-从该远程渲染系统获得该预渲染的场景数据;
-将该场景渲染为该视频对象或该外部环境的增强,该渲染包括本地渲染该场景的第一部分并且包括该场景的第二部分的预渲染版本。
2.根据权利要求1所述的计算机实施的方法,其中,该场景描述符数据描述该场景在场景时间线上的多个时间实例处的状态,以指示该场景的状态随时间的变化,并且其中,该时间标记指示该场景时间线上的时间实例。
3.根据权利要求1或2所述的计算机实施的方法,其中,该场景描述符数据指示以下各项中的至少一项:该场景中的相应对象随时间变化的存在、位置、取向和外观。
4.根据权利要求1至3中任一项所述的计算机实施的方法,其中,该方法进一步包括确定该时间标记以指示第二时间实例,该第二时间实例在时间上先于该渲染设备当前渲染该场景的第一时间实例。
5.根据权利要求4所述的计算机实施的方法,进一步包括基于以下各项中的至少一项确定该时间标记:
-该渲染设备与该远程渲染系统之间的网络的网络时延;
-由该远程渲染系统渲染该场景的第二部分的时延或与之相关联的调度约束。
6.根据权利要求1至5中任一项所述的计算机实施的方法,其中,该场景描述符数据包括该组3D图形对象中的相应图形对象的对象标识符,其中:
-该请求该远程渲染系统包括向该远程渲染系统提供表示该场景的第二部分的一个或多个3D图形对象的相应对象标识符;和/或
-该接收该预渲染的场景数据包括接收包括在该预渲染的场景数据中预渲染的一个或多个3D图形对象的相应对象标识符的元数据。
7.根据权利要求6所述的计算机实施的方法,其中,重复地接收该元数据,并且其中,该方法进一步包括基于出现在该元数据中或从该元数据中消失的该3D图形对象的对象标识符来停止或开始对3D图形对象进行本地渲染。
8.根据权利要求1至7中任一项所述的计算机实施的方法,其中,该渲染该场景可适应于该视频对象或该外部环境的内容,并且其中,该方法进一步包括确定至少部分地表征该内容的内容数据以及将该内容数据提供至该远程渲染系统。
9.根据权利要求8所述的计算机实施的方法,其中,该内容数据包括以下各项中的至少一项:
-表征该内容中的光照的光照数据;
-表征该内容的深度的深度数据;以及
-提供该内容的视觉表示的图像或视频数据。
10.根据权利要求1至9中任一项所述的计算机实施的方法,其中,该确定要本地渲染的该场景的第一部分和要远程渲染的该场景的第二部分包括基于以下各项中的至少一项来确定要本地渲染还是远程渲染3D图形对象:
-该渲染设备与该远程渲染系统之间的网络的时延、带宽或可靠性;
-该渲染设备与内容服务器之间的网络的时延、带宽或可靠性,该内容服务器被配置成托管定义该场景的该组3D图形对象的3D图形数据;
-该渲染设备的计算负荷;
-该远程渲染系统的计算负荷;
-该渲染设备的电池电量;
-该3D图形对象的复杂性;以及
-该场景中的、该渲染设备渲染该场景时的视点与该场景中的该3D图形对象之间的场景距离。
11.根据权利要求1至10中任一项所述的计算机实施的方法,其中,该场景描述符数据包括包含指示3D图形对象之间的层级关系的分支的图形,其中,该确定要本地渲染的该场景的第一部分和要远程渲染的该场景的第二部分包括确定每个分支是要本地渲染还是远程渲染相应分支的3D图形对象。
12.一种供渲染设备渲染场景的部分的计算机实施的方法,其中,该渲染设备被配置成显示视频对象或允许外部环境在视觉上传递至观看者并且将该场景渲染为该视频对象或该外部环境的增强,
该方法包括:
-获得场景描述符数据,其中,该场景描述符数据标识表示该场景的至少部分的一组3D图形对象,其中,该场景描述符数据指示该场景的状态随时间的变化;
-接收渲染该场景的部分的请求,其中,该请求包括时间标记;
-基于该场景描述符数据和该请求,在与该时间标记相对应的状态下渲染该场景的部分以获得预渲染的场景数据,该预渲染的场景数据包括该场景的部分的预渲染版本;
-将该预渲染的场景数据提供至该渲染设备。
13.根据权利要求12所述的计算机实施的方法,进一步包括生成包括在该预渲染的场景数据中预渲染的一个或多个3D图形对象的相应对象标识符的元数据,以及将该元数据与该预渲染的场景数据一起提供至该渲染设备。
14.根据权利要求12或13所述的计算机实施的方法,进一步包括基于以下各项中的一项通过从该渲染中省略3D图形对象来调整请求被渲染的该场景的部分:
-该远程渲染系统的计算负荷;
-该渲染设备与该远程渲染系统之间的网络的时延、带宽或可靠性。
15.一种暂态或非暂态计算机可读介质,包括表示计算机程序的数据,该计算机程序包括用于使处理器系统执行根据权利要求1至14中任一项所述的方法的指令。
16.一种渲染设备,被配置成显示视频对象或允许外部环境在视觉上传递至观看者并且将包括3D图形对象的场景渲染为该视频对象或该外部环境的增强,
该渲染设备包括:
-与网络的网络接口;
-包括场景描述符数据的数据存储装置,其中,该场景描述符数据标识表示该场景的至少部分的一组3D图形对象,其中,该场景描述符数据指示该场景的状态随时间的变化;
-处理器子系统,该处理器子系统被配置成:
-至少基于该场景描述符数据,确定要由该渲染设备本地渲染的该场景的第一部分和要远程渲染的该场景的第二部分;
-经由该网络接口,请求有权访问该场景描述符数据的远程渲染系统渲染该场景的第二部分以获得预渲染的场景数据,该预渲染的场景数据包括该场景的第二部分的预渲染版本,
其中,所述请求包括向该远程渲染系统提供时间标记,以请求该远程渲染系统在与该时间标记相对应的状态下渲染该场景的第二部分;
-经由该网络接口,从该远程渲染系统接收该预渲染的场景数据;
-将该场景渲染为该视频对象或该外部环境的增强,该渲染包括本地渲染该场景的第一部分并且包括该场景的第二部分的预渲染版本。
17.一种渲染系统,包括:
-与网络的网络接口;
-包括场景描述符数据的数据存储装置,其中,该场景描述符数据标识表示该场景的至少部分的一组3D图形对象,其中,该场景描述符数据指示该场景的状态随时间的变化;
-处理器子系统,该处理器子系统被配置成:
-经由该网络接口,接收渲染该场景的部分的请求,其中,该请求包括时间标记;
-基于该场景描述符数据和该请求,在与该时间标记相对应的状态下渲染该场景的部分以获得预渲染的场景数据,该预渲染的场景数据包括该场景的部分的预渲染版本;
-经由该网络接口,将该预渲染的场景数据提供至该渲染设备。
CN202280048136.2A 2021-07-09 2022-06-27 利用3d图形增强视频或外部环境 Pending CN117616762A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP21184721 2021-07-09
EP21184721.5 2021-07-09
PCT/EP2022/067618 WO2023280623A1 (en) 2021-07-09 2022-06-27 Augmenting video or external environment with 3d graphics

Publications (1)

Publication Number Publication Date
CN117616762A true CN117616762A (zh) 2024-02-27

Family

ID=76890809

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280048136.2A Pending CN117616762A (zh) 2021-07-09 2022-06-27 利用3d图形增强视频或外部环境

Country Status (3)

Country Link
EP (1) EP4367893A1 (zh)
CN (1) CN117616762A (zh)
WO (1) WO2023280623A1 (zh)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009094673A2 (en) * 2008-01-27 2009-07-30 Citrix Systems, Inc. Methods and systems for remoting three dimensional graphics
US10962780B2 (en) * 2015-10-26 2021-03-30 Microsoft Technology Licensing, Llc Remote rendering for virtual images
US11170579B2 (en) 2019-04-09 2021-11-09 Microsoft Technology Licensing, Llc Hybrid rendering

Also Published As

Publication number Publication date
WO2023280623A1 (en) 2023-01-12
EP4367893A1 (en) 2024-05-15

Similar Documents

Publication Publication Date Title
EP3695383B1 (en) Method and apparatus for rendering three-dimensional content
US11087549B2 (en) Methods and apparatuses for dynamic navigable 360 degree environments
US20210375057A1 (en) Cross layer traffic optimization for split xr
US10600245B1 (en) Navigating a virtual environment of a media content item
US9619916B2 (en) Method for transmitting digital scene description data and transmitter and receiver scene processing device
US11375235B2 (en) Method and apparatus for encoding and decoding three-dimensional scenes in and from a data stream
WO2018126702A1 (zh) 一种应用于虚拟现实技术的流媒体的传输方法和客户端
US11348307B2 (en) Method and device for processing content
WO2023051138A1 (zh) 沉浸媒体的数据处理方法、装置、设备、存储介质及程序产品
US11924442B2 (en) Generating and displaying a video stream by omitting or replacing an occluded part
WO2019141631A1 (en) A method and apparatus for encoding and decoding three-dimensional scenes in and from a data stream
Eisert et al. Volumetric video–acquisition, interaction, streaming and rendering
JP7447266B2 (ja) ボリュメトリック画像データに関するビューの符号化及び復号
CN117616762A (zh) 利用3d图形增强视频或外部环境
KR20220110787A (ko) 이기종 클라이언트 종단점에 대한 스트리밍을 위한 2d 비디오의 적응
CN113243112B (zh) 流式传输体积视频和非体积视频
US20240177354A1 (en) 3d object streaming method, device, and non-transitory computer-readable recording medium
CN113243112A (zh) 流式传输体积视频和非体积视频
WO2024040054A1 (en) Distributed generation of virtual content
WO2023099383A1 (en) Rendering 3d scene comprising objects

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination