CN115552451A - 用于增强现实的多层二次投影技术 - Google Patents
用于增强现实的多层二次投影技术 Download PDFInfo
- Publication number
- CN115552451A CN115552451A CN202180032498.8A CN202180032498A CN115552451A CN 115552451 A CN115552451 A CN 115552451A CN 202180032498 A CN202180032498 A CN 202180032498A CN 115552451 A CN115552451 A CN 115552451A
- Authority
- CN
- China
- Prior art keywords
- virtual objects
- bounding box
- reprojection
- metadata
- bounding boxes
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/006—Mixed reality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
- G06F3/1454—Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay
-
- G—PHYSICS
- G02—OPTICS
- G02B—OPTICAL ELEMENTS, SYSTEMS OR APPARATUS
- G02B27/00—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
- G02B27/0093—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00 with means for monitoring data relating to the user, e.g. head-tracking, eye-tracking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
- G06F3/147—Digital output to display device ; Cooperation and interconnection of the display device with other functional units using display panels
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/14—Display of multiple viewports
-
- G—PHYSICS
- G02—OPTICS
- G02B—OPTICAL ELEMENTS, SYSTEMS OR APPARATUS
- G02B27/00—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
- G02B27/01—Head-up displays
- G02B27/0179—Display position adjusting means not related to the information to be displayed
- G02B2027/0187—Display position adjusting means not related to the information to be displayed slaved to motion of at least a part of the body of the user, e.g. head, eye
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2354/00—Aspects of interface with display user
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Optics & Photonics (AREA)
- Computer Graphics (AREA)
- Software Systems (AREA)
- Processing Or Creating Images (AREA)
Abstract
本公开提供了用于增强现实的多层二次投影技术的系统、设备、装置和方法,包括存储介质上编码的计算机程序。显示处理器可以获得包括多个虚拟对象的一层图形数据。多个虚拟对象的每个可以与多个包围盒的至少一个包围盒相关联。该显示处理器还可以获得指示所述多个包围盒的所述至少一个包围盒的至少一个边缘的元数据,以及对应于与多个包围盒的每个相关联的二次投影指令的元数据。该显示处理器可以基于指示至少一个包围盒的至少一个边缘的元数据和对应于二次投影指令的元数据对多个虚拟对象进行二次投影。
Description
相关申请的交叉引用
本申请要求享有2020年5月8日提交的名称为“MULTI-LAYER REPROJECTIONTECHNIQUES FOR AUGMENTED REALITY(用于增强现实的多层二次投影技术)”的印度申请No.202041019594的权益,在此通过引用将其全文明确并入本文。
技术领域
本公开总体上涉及处理系统,更具体而言涉及多层二次投影技术。
背景技术
计算设备常常执行图形处理(例如,利用图形处理单元(GPU))以渲染图形数据供计算设备显示。这样的计算设备可以包括诸如例如AR设备和/或VR设备的扩展现实(XR)设备、计算机工作站、诸如智能电话的移动电话、嵌入式系统、个人计算机、平板计算机、视频游戏控制器等。GPU被配置成执行图形处理流水线,图形处理流水线包括一个或多个处理级,一个或多个处理级一起工作以执行图形处理命令并输出帧。中央处理单元(CPU)可以通过向GPU发出一个或多个图形处理命令来控制GPU的操作。当前的CPU通常能够同时执行多个应用,其中每个都需要在执行期间利用GPU。提供用于在显示器上视觉呈现的内容的设备可以利用GPU。
可以基于用户的视角渲染用于XR设备的虚拟内容。随着用户视角的变化,虚拟内容的视角可能同样需要变化。这样一来,需要改善用于虚拟内容的二次投影技术。
发明内容
下面给出了一个或多个方面的简化概要,以便提供对此类方面的基本理解。本发明内容不是所构思的所有方面的详尽概述,既非意在标识所有方面的关键或必要元素,也非勾勒任何或全部方面的范围。其唯一目的是以简化形式给出一个或多个方面的一些概念,作为稍晚给出的更详细描述的前序。
AR应用可以利用头部姿态信息来渲染虚拟内容,虚拟内容可以被投射到基于用户视角的“现实世界”视场中。然而,从渲染虚拟内容的时间到显示虚拟内容的时间,用户的视角/头部姿态可能已经变化,这可能导致虚拟内容的配准(registration)错误(例如,虚拟内容可能出现在视角之外)。为了解决潜在的配准错误,可以对虚拟内容进行扭曲/二次投影,以在刚要在帧中显示虚拟内容之前修改虚拟内容的视角。不过,鉴于虚拟内容中包括的不同虚拟对象可以被配准到现实世界中的不同点(例如,在不同的深度),所以应用相同的单应性矩阵来扭曲/二次投影变化的深度的全部不同虚拟对象可能不会减小相对于所有虚拟对象的配准误差。
因此,单层眼睛缓存器中包括的虚拟对象可以从单层眼睛缓存器独立识别并且分别与多层相关联。所述多层可以基于不同的深度值。识别包括虚拟对象的多层的二次投影引擎可以在虚拟对象上执行按层二次投影,而不是单层二次投影,以减小相对于每个虚拟对象的配准误差。多层可以对应于分别在从单层眼睛缓存器识别的虚拟对象周围限定的包围盒。在独立二次投影虚拟对象之后,可以将虚拟对象组合到单个帧中以在显示设备处显示。
在本公开的一方面中,提供了一种方法、一种计算机可读介质和一种装置。该装置可以获得包括多个虚拟对象的一层图形数据,其中,多个虚拟对象的每个与多个包围盒的至少一个包围盒相关联;获得指示多个包围盒的至少一个包围盒的至少一个边缘的元数据;获得对应于与多个包围盒的每个相关联的二次投影指令的元数据;以及基于指示多个包围盒的至少一个包围盒的至少一个边缘的元数据和对应于二次投影指令的元数据对多个虚拟对象进行二次投影。
在本公开的另一方面中,提供了一种方法、一种计算机可读介质和一种装置。该装置可以渲染一层中的多个虚拟对象,其中,多个虚拟对象的每个与多个包围盒的至少一个包围盒相关联;确定指示多个包围盒的至少一个包围盒的至少一个边缘的元数据;确定对应于与多个包围盒的每个相关联的二次投影指令的元数据;以及发送指示包围盒的至少一个边缘的元数据和对应于二次投影指令的元数据以用于对多个虚拟对象进行二次投影。
为了实现前述目的和相关目的,所述一个或多个方面包括下文充分描述的并且特别在权利要求中指出的特征。以下描述和附图详细阐述了一个或多个方面的特定例示性特征。不过,这些特征仅指示可以采用各方面的原理的各种方式的几种,本说明书意在包括所有这样的方面及其等价物。
附图说明
图1是示出了根据本公开的一项或多项技术的示例性内容生成系统的框图。
图2示出了根据本公开的一项或多项技术投射到视场中的多个虚拟对象。
图3是根据本公开的一项或多项技术用于确定要用于扭曲虚拟内容的多个层的流程图。
图4是根据本公开的一项或多项技术,基于扭曲引擎接收的眼睛姿态信息扭曲虚拟内容的流程图。
图5是根据本公开的一项或多项技术用于限定网格化包围盒的图示。
图6是示出了根据本公开的一项或多项技术的二次投影算法的流程图。
图7是示出了根据本公开的一项或多项技术在服务器设备和客户端设备之间划分的渲染和显示技术的流程图。
图8是根据本公开的一项或多项技术用于提取用于扭曲虚拟内容的元数据的流程图。
图9是示出了根据本公开的一项或多项技术,基于为显示空间定义的顶点网格的一步扭曲技术的流程图。
图10是示出了根据本公开的一项或多项技术,基于渲染坐标空间中定义的顶点的一步扭曲技术的流程图。
图11是示出了服务器和客户端之间的示例性通信的呼叫流程图。
图12是根据本公开的一项或多项技术的显示处理的示例性方法的流程图。
图13是根据本公开的一项或多项技术的显示处理的示例性方法的流程图。
图14是根据本公开的一项或多项技术的显示处理的示例性方法的流程图。
图15是根据本公开的一项或多项技术的显示处理的示例性方法的流程图。
具体实施方式
下文将参考附图更加充分地描述系统、装置、计算机程序产品和方法的各方面。然而,本公开可以很多不同的形式体现,并且不应将其理解为受限于整个本公开中给出的任何具体结构或功能。相反,提供这些方面是为了使得本公开为透彻且完整的,并且将向本领域的技术人员充分地表达本公开的范围。基于本文的教导,本领域的技术人员应当认识到,本公开的范围意在覆盖本文公开的系统、装置、计算机程序产品和方法的任何方面,无论是独立于本公开的其他方面或是与之组合实施的。例如,可以使用本文阐述的任意数量的方面实现一种装置或实践一种方法。此外,本公开的范围意在覆盖使用本文阐述的公开各方面之外或与其不同的其他结构、功能或结构和功能实践的这样的装置或方法。本文披露的任何方面可以通过权利要求的一个或多个要素体现。
尽管本文中描述了各个方面,但这些方面的很多变化和排列都落在本公开范围内。尽管提到了本公开各方面的一些潜在益处和优势,但本公开的范围并不意在限于特定益处、用途或目的。相反,本公开的各方面意在宽泛适用于不同的无线技术、系统配置、网络和传输协议,在附图和以下说明书中通过举例例示了其中一些。具体实施方式和附图仅仅是本公开的例示而非限制,本公开的范围有所附权利要求及其等价物限定。
参考各种装置和方法给出了几个方面。这些装置和方法在以下具体实施方式中被描述并在附图中通过各种框、部件、电路、过程、算法等(统称为“元件”)被例示。这些元件可以使用电子硬件、计算机软件或其任意组合实现。此类元件是被实现为硬件还是软件是取决于具体应用以及对整个系统施加的设计约束。
作为示例,可以将元件或元件的任何部分或者元件的任何组合实现为包括一个或多个处理器(也可以称为处理单元)的“处理系统”。处理器的示例包括微处理器、微控制器、图形处理单元(GPU)、通用GPU(GPGPU)、中央处理单元(CPU)、应用处理器、数字信号处理器(DSP)、精简指令集计算(RISC)处理器、片上系统(SOC)、基带处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、可编程逻辑器件(PLD)、状态机、门控逻辑、分立硬件电路和配置成执行整个本公开中描述的各种功能的其他适当硬件。该处理系统中的一个或多个处理器可以执行软件。软件可以被广义地解释为是指指令、指令集、代码、代码段、程序代码、程序、子程序、软件部件、应用、软件应用、软件包、例程、子例程、对象、可执行程序、执行线程、过程、功能等,而不管其被称为软件、固件、中间件、微码、硬件描述语言还是别的。
术语应用可以指软件。如本文所述,一项或多项技术可以指被配置成执行一个或多个功能的应用(例如,软件)。在这样的示例中,应用可以存储在存储器(例如,处理器的片上存储器、系统存储器或任何其他存储器)中。本文描述的硬件,例如处理器可以被配置成执行应用。例如,应用可以被描述为包括代码,在由硬件执行时,代码使硬件执行本文描述的一项或多项技术。例如,硬件可以从存储器访问代码并执行从存储器访问的代码以进行本文描述的一项或多项技术。在一些示例中,本公开中标识了部件。在这样的示例中,部件可以是硬件、软件或其组合。部件可以是独立部件或单个部件的子部件。
在本文描述的一个或多个示例中,描述的功能可在硬件、软件或其任意组合中实现。如果在软件中实现,那么所述功能可以被存储到计算机可读介质上或者可以被编码为计算机可读介质上的一条或多条指令或代码。计算机可读介质包括计算机存储介质。存储介质可以是能够被计算机访问的任何可用介质。作为示例而非限制,这样的计算机可读介质可以包括随机存取存储器(RAM)、只读存储器(ROM)、电可擦可编程ROM(EEPROM)、光盘存储设备、磁盘存储设备、其他磁存储器件、前述类型的计算机可读介质的组合,或者任何其他能够用来以能够被计算机访问的指令或数据结构的形式存储计算机可执行代码的介质。
AR应用可以利用头部姿态信息来渲染虚拟内容,虚拟内容可以被投射到基于用户视角的“现实世界”视场中。然而,从渲染虚拟内容的时间到显示虚拟内容的时间,用户的视角/头部姿态可能已经变化,这可能导致虚拟内容的配准错误(例如,虚拟内容可能出现在视角之外)。为了解决潜在的配准错误,可以对虚拟内容进行扭曲/二次投影,以在刚要在帧中显示虚拟内容之前修改虚拟内容的视角。不过,鉴于虚拟内容中包括的不同虚拟对象可以被配准到现实世界中的不同点(例如,在不同的深度),所以应用相同的单应性矩阵来扭曲/二次投影变化的深度的全部不同虚拟对象可能不会减小相对于所有虚拟对象的配准误差。
因此,单层眼睛缓存器中包括的虚拟对象可以从单层眼睛缓存器独立识别并且分别与多层相关联。所述多层可以基于不同的深度值。识别包括虚拟对象的多层的二次投影引擎可以在虚拟对象上执行按层二次投影,而不是单层二次投影,以减小相对于每个虚拟对象的配准误差。多层可以对应于分别在从单层眼睛缓存器识别的虚拟对象周围限定的包围盒。在独立二次投影虚拟对象之后,可以将虚拟对象组合到单个帧中以在显示设备处显示。
图1是示出了被配置成实施本公开的一项或多项技术的示例性内容生成系统100的框图。内容生成系统100包括设备104。设备104可以包括一个或多个用于执行本文描述的各种功能的部件或电路。在一些示例中,设备104的一个或多个部件可以是SOC的部件。设备104可以包括被配置成执行本公开的一项或多项技术的一个或多个部件。在图示的示例中,设备104可以包括处理单元120和系统存储器124。在一些方面中,设备104可以包括若干任选部件(例如,通信接口126、收发器132、接收器128、发送器130、显示处理器127以及一个或多个显示器131)。显示器131可以指一个或多个显示器131。例如,显示器131可以包括单个显示器或多个显示器,多个显示器可以包括第一显示器和第二显示器。第一显示器可以是左眼显示器,第二显示器可以是右眼显示器。在一些示例中,第一显示器和第二显示器可以接收不同的用于在其上呈现的帧。在其他示例中,第一和第二显示器可以接收相同的用于在其上呈现的帧。在其他示例中,图形处理的结果可以不在设备上显示,例如,第一显示器和第二显示器可以不接收任何用于在其上呈现的帧。相反,帧或图形处理结果可以被传输到另一设备。在一些方面中,这可以被称为分裂渲染。
处理单元120可以包括内部存储器121。处理单元120可以被配置成使用图形处理流水线107执行图形处理。在一些示例中,设备104可以包括显示处理器,例如显示处理器127,以在一个或多个显示器131显示帧之前对处理单元120生成的一个或多个帧执行一项或多项显示处理技术。显示处理器127可以被配置成执行显示处理。例如,显示处理器127可以被配置成在由处理单元120生成的一个或多个帧上执行一项或多项显示处理技术。一个或多个显示器131可以被配置成显示或以其它方式呈现由显示处理器127处理的帧。在一些示例中,一个或多个显示器131可以包括液晶显示器(LCD)、等离子体显示器、有机发光二极管(OLED)显示器、投影显示设备、增强现实显示设备、虚拟现实显示设备、头戴式显示器或任何其他类型显示设备中的一种或多种。
处理单元120外部的存储器,例如系统存储器124,可以被处理单元120访问。例如,处理单元120可以被配置成从外部存储器,例如系统存储器124读取和/或向其写入。处理单元120可以通过总线通信地耦接到系统存储器124。在一些示例中,处理单元120可以通过总线或经由不同连接通信地耦接到内部存储器121。内部存储器121或系统存储器124可以包括一个或多个易失性或非易失性存储器或存储器件。在一些示例中,内部存储器121或系统存储器124可以包括RAM、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、可擦除可编程ROM(EPROM)、EEPROM、闪存存储器、磁数据介质或光学存储介质、或任何其他类型的存储器。
根据一些示例,内部存储器121或系统存储器124可以是非暂态存储介质。术语“非暂态”可以指存储介质并非体现于载波或传播信号中。不过,术语“非暂态”不应被解释为意味着内部存储器121或系统存储器124是不可移动的或其内容是静止的。作为一个示例,系统存储器124可以从设备104移除并且移动到另一个设备。作为另一个示例,系统存储器124可以不能从设备104移除。
处理单元120可以是CPU、GPU、GPGPU或可以被配置成执行图形处理的任何其他处理单元。在一些示例中,处理单元120可以集成到设备104的主板中。在其他示例中,处理单元120可以存在于在设备104的主板的端口中安装的图形卡上,或者可以以其他方式并入被配置成与设备104互操作的外围设备之内。处理单元120可以包括一个或多个处理器,例如一个或多个微处理器、GPU、ASIC、FPGA、算术逻辑单元(ALU)、DSP、分立逻辑、软件、硬件、固件、其他等价的集成或分立逻辑电路或其任意组合。如果技术部分实现于软件中,处理单元120可以在适当的非暂态计算机可读存储介质(例如,内部存储器121)中存储用于软件的指令,并可以在硬件中使用一个或多个处理器执行指令以执行本公开的技术。任何前述内容,包括硬件、软件、硬件和软件的组合等可以被视为一个或多个处理器。
在一些方面中,内容生成系统100可以包括任选的通信接口126。通信接口126可以包括接收器128和发送器130。接收器128可以被配置成执行本文结合设备104描述的任何接收功能。此外,接收器128可以被配置成从另一设备接收信息,例如,眼睛或头部位置信息、渲染命令和/或位置信息。发送器130可以被配置成执行本文结合设备104描述的任何发送功能。例如,发送器130可以被配置成向另一设备发送可以包括内容请求的信息。接收器128和发送器130可以被组合成收发器132。在这样的示例中,收发器132可以被配置成执行本文结合设备104描述的任何接收功能和/或发送功能。
再次参考图1,在某些方面中,显示处理器127可以包括二次投影引擎198,二次投影引擎被配置成获得包括多个虚拟对象的一层图形数据,其中,多个虚拟对象的每个与多个包围盒的至少一个包围盒相关联;获得指示多个包围盒的至少一个包围盒的至少一个边缘的元数据;获得对应于与多个包围盒的每个相关联的二次投影指令的元数据;以及基于指示多个包围盒的至少一个包围盒的至少一个边缘的元数据和对应于二次投影指令的元数据对多个虚拟对象进行二次投影。在其他方面中,显示处理器127可以包括元数据提取引擎199,元数据提取引擎被配置成渲染一层中的多个虚拟对象,其中,多个虚拟对象的每个与多个包围盒的至少一个包围盒相关联;确定指示多个包围盒的至少一个包围盒的至少一个边缘的元数据;确定对应于与多个包围盒的每个相关联的二次投影指令的元数据;以及发送指示包围盒的至少一个边缘的元数据和对应于二次投影指令的元数据以用于对多个虚拟对象进行二次投影。
诸如设备104的设备可以指被配置成执行本文描述的一项或多项技术的任何设备、装置或系统。例如,设备可以是服务器、基站、用户设备、客户端设备、站、接入点、诸如个人计算机、台式计算机、膝上型计算机、平板计算机、计算机工作站或主机计算机的计算机、终端产品、设备、电话、智能电话、服务器、视频游戏平台或控制器、诸如便携式视频游戏设备或个人数字助理(PDA)的手持式设备、诸如智能手表的可穿戴计算设备、增强现实设备或虚拟现实设备、不可穿戴设备、显示器或显示设备、电视、电视机顶盒、中间网络设备、数字媒体播放器、视频流设备、内容流设备、车载计算机、任何移动设备、被配置成生成图形内容的任何设备或被配置成执行本文描述的一项或多项技术的任何设备。本文可以将进程描述为由特定部件(例如,GPU)执行,但在其他实施例中,可以使用与所公开实施例相关联的其他部件(例如,CPU)执行。
图2示出了视场200,其具有根据本公开的一项或多项技术投射到视场200中的多个虚拟对象202。针对增强现实(AR)和虚拟现实(VR)的所生成内容可以被配置成在“现实世界”中呈现为静态/固定(例如,经由锚定点)。例如,所生成的虚拟对象202可以被配置成在用户视角变化时呈现为似乎对象保持在相同位置,类似于在现实世界中可以预期对象的行为的方式。于是,在视场200中渲染虚拟对象202可以包括确定与用户头部姿态相关联的信息,使得可以基于对应的用户视角显示虚拟对象202。不过,从渲染虚拟对象202的时间到显示虚拟对象202的时间,用户的视角/头部姿态可能已经变化,这可能导致配准错误。当配准到现实世界中的静态对象的虚拟对象202对用户而言出现于位置之外/未根据当前用户视角配置时,可能会发生配准错误。
在很多情况下,甚至非常小的配准错误也可能被用户觉察到。在1米(m)深度的单层扭曲下,每帧4厘米(cm)的姿态移动可能导致4m深度处1.70的错误率。由于人眼可能能够感知到六十分之一度的分隔,所以能够维持锚定的虚拟内容使得内容看起来在现实世界中固定,可能会影响AR应用的质量。
因此,虚拟内容与现实世界的配准可能受到渲染内容的时间和显示内容的时间之间的延迟(例如,运动-渲染-显示(m2r2p)延迟)和/或相对于显示速率的渲染速率(例如,相对于显示速率的慢渲染速率可能导致抖动/配准错误)的影响。例如,如果显示速率是每秒90帧,渲染速率是每秒45帧,则每隔一帧可能是前一帧的重复。更具体而言,在这样的条件下,在相同的位置在每帧中可能显示两次虚拟对象202,这可能导致虚拟对象202在用户视角变化时看起来不那么真实。尽管用户变化的头部姿态可能与视角的平滑变化相关联,但由于渲染速率慢的原因,虚拟对象202可能看起来以递增步长在移动。
为了解决潜在的配准错误,可以在刚要显示帧之前对渲染帧进行扭曲/二次投影,以基于当前识别的头部姿态修改内容的视角。这样的修改可以利用异步时间扭曲(ATW)二次投影来减小与头部姿态变化相关联的延迟。亦即,ATW可以在刚要显示内容之前基于所确定的单应性矩阵对渲染的内容进行扭曲/二次投影。尽管单应性矩阵可以隐藏所显示内容的一些人工痕迹,但将视场200的整体旋转依据在用户取向之上可能不足以解决潜在的配准错误。
可以进一步基于异步平面二次投影(APR)执行用于对虚拟对象202进行渲染/扭曲的近似。如本文所用,APR是指一种技术,其中,对于由计算机着色器(shader)确定的渲染平面和在渲染时间从深度缓存器确定的平面参数,在显示之前经由单应性矩阵将近似渲染平面映射到图像平面。APR可以用于增强ATW技术,因为除了用户取向(例如,平移和旋转)之外,APR还可以考虑到头部位置变化。不过,即使利用APR,用户仍然可以观察到一些人工痕迹,因为APR或ATW都不会考虑视场200中包括的不同虚拟对象202的变化的深度。例如,APR和ATW二次投影技术可以基于在修改所显示内容的视角时背景对象位于无限远处。对于看起来非常远的虚拟对象202,配准错误可能不会被用户观察到。不过,对于看起来比无限远更近的虚拟对象202,此类虚拟对象的配准错误可能更容易被用户察觉。
鉴于AR中的不同虚拟对象202可能配准到现实世界中的不同点(例如,在变化的深度),所以向整个帧应用单一单应性矩阵可以不会减小位于帧的不同深度的所有虚拟对象202的配准错误。因此,多个层可以与不同虚拟对象202相关联以为不同的虚拟对象202提供相应深度值。例如,并非基于单层眼睛缓存器来渲染内容,而是内容可以被渲染并与针对不同虚拟对象202的独立/多个层相关联,所述层可以独立被扭曲(例如,按层扭曲)以减小相对于每个虚拟对象202的配准错误。亦即,帧中的每个虚拟对象202可以被独立提取并且在刚要显示之前被独立扭曲。这样的方式可以实现虚拟对象202与现实世界的更精确配准,并且总体上减小帧中所有虚拟对象202的配准错误。每个虚拟对象202可以包括在对应于独立渲染层的相应包围盒204(例如,其可以包括网格化图块)中,以在向单个帧中组合并显示虚拟对象202之前对虚拟对象202进行独立的二次投影。
在特定配置中,可以由AR应用生成多个层。在其他配置中,生成不同内容的多个/不同应用可以具有独立的眼睛缓存器,它们在显示之前被组合在一起,使得可以使用独立的眼睛缓存器定义用于扭曲的多个/不同层。在其他配置中,包括不同深度的多个虚拟对象202的内容可以在单层眼睛缓存器中生成,从该单层眼睛缓存器中可以提取多个虚拟对象202并且包括在可以逐个扭曲的多个不重叠“伪层”中。可以在渲染过程期间提取用于扭曲每个伪层的元数据,以执行元数据特定的APR单应性矩阵并且将伪层组合在一起进行显示。针对每个伪层的渲染平面参数(例如,a、b、c)可以包括用于该层的APR元数据。例如,可以将眼睛缓存器和平面参数提供到组合器以在显示扭曲的虚拟对象202之前基于变化的用户姿态修改眼睛缓存器。可以针对每个伪层独立地计算元数据中的平面参数。
图3是根据本公开的一项或多项技术用于确定要用于扭曲虚拟内容的多个层的流程图300。对于基于单个眼睛缓存器生成虚拟内容的AR应用302,可以基于显示姿态独立地提取多个层(例如,伪层)用于二次投影/扭曲。来自AR应用302的内容可以在处理系统的渲染侧和显示侧都被处理,在流程图300中通过虚线分隔渲染侧和显示侧。对来自AR应用302的虚拟内容进行渲染和显示可以由相同设备或不同设备(例如,由AR眼镜或由智能电话和连接的AR眼镜)执行。处理系统的显示侧通常在显示设备(例如,AR眼镜)处执行。处理系统的渲染侧可以在AR应用302处接收输入,例如头部姿态输入、控制器输入、锚定姿态输入等,以生成/相对于现实世界锚定虚拟内容。基于该输入,AR应用302可以渲染用于图像帧306的眼睛缓存器和/或深度缓存器。图像帧306中的空白空间可以对应于眼睛缓存器的透明区域,其中,例如,戴AR眼镜的用户可以观察现实世界。眼睛缓存器的填充空间/不透明区域可以对应于基于AR应用302生成的虚拟内容。
可以使用插件304(例如,定制游戏引擎插件)基于从AR应用302接收的眼睛缓存器和深度缓存器确定包围盒信息和针对每个包围盒和/或针对网格化包围盒的每个图块的扭曲参数。在其他配置中,可以由AR应用302确定包围盒/图块信息和扭曲参数。在从AR应用302接收的虚拟内容周围定义的包围盒可以对应于相应的伪层。对于每个包围盒,插件304可以识别用于分别扭曲包围盒中包括的内容的元数据,其中,元数据可以是每个包围盒/图块特定的。
与包围盒和平面参数相关联的眼睛缓存器和元数据可以被提供到处理系统的显示侧的AR运行时/扭曲(APR)引擎308。AR运行时/扭曲(APR)引擎308可以接收用于确定当前头部姿态、锚姿态等的输入,以独立地扭曲与独立/多个层相关联的每个包围盒中包括的内容。扭曲的内容310可以经由扭曲的眼睛缓存器被提供到显示器312。没有来自插件304的元数据,AR运行时/扭曲(APR)引擎308可能就会基于单层参数对眼睛缓存器/图像帧306的所有内容一起扭曲。
可以进一步使用用于确定扭曲元数据的深度缓存器确定包围盒/图块。在投影到观察平面中之后彼此视觉上相邻的视觉对象可以在相对于用户的不同深度处,并且可以基于独立的层被显示。如果对于靠近在一起的两个对象没有深度信息,则对应于该两个对象的包围盒可以通过组合成单个包围盒而结束。不过,由于渲染的眼睛缓存器的内容可以位于不同深度,如果将相同的单应性矩阵应用于组合/单个包围盒中的所有内容,则可能发生配准错误。添加了深度信息之后,可以确定更小的包围盒或对应于不同深度的网格化包围盒的图块,以经由扭曲的眼睛缓存器在显示器312处显示内容。
在一些情况下,AR应用302可以不提供深度缓存器。于是,可以通过在可以与眼睛缓存器相关联的左眼缓存器和右眼缓存器之间执行双目立体视觉(depth-from-stereoDFS)而从深度缓存器确定内容的深度。例如,可以基于左眼缓存和右眼缓存之间的几何比较来确定内容的深度,使得可以二次投影内容,如同已经从AR应用302提供了深度缓存器一样。
图4是根据本公开的一项或多项技术,基于扭曲引擎接收的眼睛姿态信息402扭曲虚拟内容的流程图400。流程图400可以类似于流程图300,但增加了由AR运行时/扭曲(APR)引擎308接收眼睛姿态信息402。眼睛姿态信息402可以基于(例如,AR眼镜的)眼睛跟踪技术生成,并且可以指示用户的眼睛正在观察的方向。于是,一些包围盒可以基于眼睛正在观察的方向而具有比其他包围盒更高的优先级。应用于高优先级包围盒的相同的单应性矩阵也可以应用于整个眼睛缓存器。
随着用户的眼睛姿态变化,基于指示用户当前正在观察不同包围盒的眼睛姿态信息,也可以改变应用于整个眼睛缓存器的单应性矩阵。尽管基于相同的单应性矩阵扭曲整个眼睛缓存器可能在外围位置/包围盒处导致配准错误,但配准错误可能不会被用户观察到,因为外围位置/包围盒可以在用户的当前聚焦方向外围。于是,眼睛姿态信息可以指示用户当前正聚焦的视场中的位置,从而可以使用对应于该位置的包围盒的APR元数据来推导应用于整个眼睛缓存器的单应性矩阵。在眼睛的聚焦方向之内有超过一个包围盒的方面中,可以使用针对超过一个盒的APR元数据扭曲包围盒的每个。不过,可以使用对应于聚焦区域之内的包围盒之一的元数据扭曲位于聚焦区域外部的其他包围盒。
图5是根据本公开的一项或多项技术限定具有与网格504的一个或多个图块506相关联的元数据510的网格化包围盒508的图示500。可以从无线网络的服务器侧的眼睛缓存器和/或深度缓存器提取用于包围盒502的包围盒信息。可以进一步提取对应于包围盒502之内包括的内容的元数据510以确定用于该包围盒502的一个或多个平面。元数据510和包围盒信息(例如,指示包围盒502的周长)可以被发送到无线网络的客户端侧以用于对内容进行二次投影。亦即,二次投影算法512可以使用元数据510和包围盒信息来向显示空间中二次投影内容、纹理等。
并非基于眼睛缓存器之内的透明性位置限定包围盒502,可以经由网格504(例如,具有N×M个网格图块506的N×M网格)以某种配置来限定包围盒502。在示例中,网格504可以是具有16个网格图块506的4×4网格。在其他示例中,每个网格图块506可以对应于独立的包围盒。网格可以覆盖在眼睛缓存器上,用于经由网格化包围盒508细分眼睛缓存器的内容。可以按照网格图块506确定来自眼睛缓存器的平面元数据510并且向无线网络客户端侧的二次投影算法512发送。每个网格图块506还可以包括用于确定参数、元数据等的深度缓存器信息,用于对网格化包围盒508中包括的网格图块506的内容进行二次投影。于是,二次投影算法512可以按网格化包围盒508的网格图块506接收包围盒信息和平面元数据510,从而可以基于元数据510依据每个网格图块由二次投影算法512向显示空间上对眼睛缓存器纹理进行二次投影。
网格504的网格图块506可以在整个包围盒502上均匀分布,或者基于其他技术分布。例如,可以将网格图块506与一个或多个其他网格图块506合并。此外或替代地,可以将网格图块506的一个或多个细分成更小的网格图块,更小的网格图块可以彼此合并或不合并。
图6是示出了根据本公开的一项或多项技术的二次投影算法的流程图600。在602,在无线网络的服务器侧,可以基于所接收的深度缓存器对帧进行逐个平面近似。在602执行的近似可以基于针对与该帧相关联的每个包围盒/图块提取的元数据。可以将指示平面近似的平面发送到无线网络的客户端侧,以用于执行与604-612相关联的过程。
基于该近似的平面、包围盒信息和渲染/显示姿态信息,客户端可以针对每个平面确定渲染空间中的点到显示空间中的点的映射。映射可以基于一个或多个几何变换。在604,客户端可以在平面的表面法线与显示器相机z轴形成钝角时丢弃从客户端指示的特定平面。可以针对与确定三角形、坐标、网格点等相关联的过程指示丢弃的平面信息。
可以针对指示的平面基于显示网格和渲染/显示姿态信息来确定图块到平面映射和/或平面边缘算法。在606a,客户端可以向显示空间中投射对应于平面边界顶点的三维点。在606b,客户端可以确定该平面重叠的一个或多个显示网格图块。在606c,客户端可以针对显示坐标中的每个平面确定投射的边缘算法。基于投射的边缘算法和/或图块到平面映射,以及渲染/显示姿态信息,客户端可以确定UV坐标和图元到平面映射。
在608a,客户端可以针对与对应图块重叠的每个平面基于投射的边缘算法来评估每个网格点。在608b,对于投射的边缘算法的点,客户端可以确定与网格点和平面的交点相关联的z坐标。在608c,客户端可以存储与相对于显示器相机原点和关联的平面标识符(ID)的最低z坐标的交点。可以使用图元到平面映射和UV坐标来确定三角形、三维坐标、新的网格点等。
在610a,对于每个显示网格图元,如果显示网格图元的尺寸小于预定值t1,客户端可以在612执行像素着色(shading)。如果显示网格图元的尺寸小于t1,如果在610b所有顶点对应于同一平面,客户端还可以在612执行像素着色。如果所有顶点不对应于同一平面,则如果在610c反向投影的图元(例如,基于UV坐标)不包括丢弃的平面,并且显示网格图元的尺寸小于第二预定值t2,客户端可以在612执行像素着色。如果反向投影的图元或显示网格的尺寸大于或等于t2,则客户端可以基于图元划分来更新网格点,并且重复608a-608d的过程。
可以在612处基于眼睛缓存器、三角形、三维坐标和UV坐标执行像素着色。例如,在612处,对于显示网格中的每个图元,客户端可以基于图元顶点的UV坐标和z坐标对一个或多个像素进行着色。客户端可以接下来输出指示扭曲帧的信息。例如,可以基于眼睛缓存器纹理和经由几何变换确定的映射来指示显示纹理/帧。
尽管网格的每个图块可以对应于包围深度缓存器一部分的包围盒,但流程图600不限于基于网格的包围盒。此外,网格图块化可以包括均匀图块或(例如,基于一个或多个建模错误)被细分成更小图块的图块。例如,可以将包括增大的二次投影错误率的包围盒细分成更小的网格块,可以为其再次定义/确定平面并发送到客户端侧二次投影算法。可以将网格图块细分成更小图块以减小由更大网格图块导致的建模错误。
图7是示出了根据本公开的一项或多项技术在无线网络的服务器侧的服务器设备和无线网络的设备侧的客户端设备之间划分的渲染和显示过程的流程图700。基于扩展现实(XR)客户端设备(例如AR头戴式耳机)的处理限制,可以将渲染操作从第一设备(例如,客户端设备,例如AR头戴式耳机)卸载到通过无线链路连接到第一设备的第二设备(例如,服务器设备,例如智能电话、远程服务器、边缘服务器等)。服务器侧设备可以基于从客户端设备(例如,XR设备)的感知模块706接收的输入,例如头部姿态输入、控制器输入、锚姿态输入等,执行AR应用702,以渲染眼睛缓存器和/或深度缓存器中的虚拟内容。控制器可以连接到客户端设备或服务器设备,用于提供控制器输入。
AR应用702可以针对单层渲染眼睛缓存器和/或深度缓存器,并且向插件704(例如,定制游戏引擎插件)提供缓存器。插件704可以确定从渲染操作导出的元数据,其中,元数据可以指示包围盒/图块二次投影信息和/或APR平面参数。客户端设备的处理限制可能导致元数据(可以用于扭曲包围盒/图块的内容)在提供到客户端侧设备之前经由服务器侧设备被提取。视频编码器712可以在服务器侧接收眼睛缓存器并且向客户端侧的视频解码器714无线地发送编码的信息(例如,将眼睛缓存器作为高效率视频编码(HEVC)/H.264或其他视频编码标准比特流发送),视频解码器对编码信息进行解码。可以将服务器侧提取的元数据编码在与眼睛缓存器的视频相同的比特流中,并且在客户端处从比特流解码。
除了来自感知模块706的头部姿态和/或锚姿态信息之外,AR运行时/扭曲(APR)引擎708可以从视频解码器714接收解码的眼睛缓存器,以扭曲由从眼睛缓存器接收的元数据指示的包围盒/图块中包括的内容。例如,感知模块706可以基于在扭曲内容之前(例如,刚好在扭曲内容之前)的确定/测量来提供头部姿态和/或锚姿态信息。接下来可以将包括扭曲内容的扭曲眼睛缓存器提供到客户端设备的显示器710,以显示扭曲的虚拟内容。
图8是根据本公开的一项或多项技术用于提取用于扭曲虚拟内容的元数据的流程图800。AR应用802可以生成眼睛缓存器和深度缓存器,眼睛缓存器和深度缓存器可以被提供到插件804(例如,定制游戏引擎插件)。眼睛缓存器可以由插件804中包括的包围盒提取器806接收。包围盒提取器806可以被配置成相对于多个层(例如,伪层)划分所接收的包括来自AR应用802的虚拟内容的眼睛缓存器信息。在各方面中,对眼睛缓存器中包括的对象的查询可以提供用于生成包围盒的依据。
可以使用连接分量分析来确定眼睛缓存器中完全包含来自AR应用802的渲染对象的闭合轮廓,以生成相应的包围盒/多个层。渲染内容之间的半透明像素可以提供包括每个虚拟对象的闭合/独立轮廓的指示。还可以基于相对于对象重叠而合并的包围盒来指示闭合轮廓(例如,可以在两个重叠对象周围定义单个包围盒)。包围盒的最终配置可以是多边形/不规则形状,或者包围盒可以被重新定义为多个不重叠的矩形。包围盒提取器806可以导致基于包围盒的相交/联合来修改包围盒,这可以导致生成后续组的包围盒以执行扭曲。闭合轮廓可以对应于接下来发送到扭曲引擎的包围盒元数据。
来自AR应用802的深度缓存器可以由APR平面参数模块808接收,APR平面参数模块被配置成为包围盒提取器806指示的每个包围盒确定平面参数。APR平面参数模块808可以确定所指示包围盒的每个之内的近似平面,并且连同从包围盒提取器806发送到扭曲引擎的包围盒元数据一起,将此类参数提供到扭曲引擎作为元数据。
图9是示出了根据本公开的一项或多项技术,基于为显示空间定义的顶点网格的一步扭曲技术的流程图900。在各方面中,可以由扭曲引擎在相同时间处理多个层以减少双倍数据速率(DDR)传输。顶点着色器904可以基于从APR单应性矩阵确定模块902接收到N个单应性矩阵作为输入而相对于每个包围盒执行APR单应性矩阵,该APR单应性矩阵确定模块接收显示姿态、N个包围盒、N组平面参数和渲染的头部姿态。因此,可以在渲染的图像上执行N次矩阵变换(例如,M1、M2、……、MN),从而可以在单个扭曲步骤中将对应的N个单应性矩阵联合应用到眼睛缓存器。在将内容扭曲之后,可以在显示渲染的内容之前进行透镜畸变和显示校正,以进一步减小渲染图像中的几何错误。
可以在显示空间中定义顶点网格,以提供一次性阶跃(one-time step)扭曲技术,其允许在初始化时预先应用常数校正,例如用于透镜畸变校正(LDC)或色差补偿(CAC),而不是分别针对每帧应用LDC/CAC。顶点着色器904可以接收显示空间中的顶点网格作为一组顶点(例如,V1、V2、……、VK),并且向该组顶点应用从N次变换(例如,M1、M2、……、MN)确定的N个单应性矩阵。
为了确定显示空间中的顶点位于眼睛缓存器中的哪里,可以将显示空间中的点映射到眼睛缓存器空间中的一个或多个点。在示例中,因为包围盒的每个可以被针对不同深度配置,所以包围盒中包括的渲染内容可以在显示姿态变化时变得重叠,这由此可能导致显示空间中的相同的点被映射到眼睛缓存器空间中的多个点。对于每个顶点,可以针对与(x1,y1,z1)到(xN,yN,zN)相关联的单应性矩阵确定映射,以向眼睛缓存器空间投射对应的点。针对点的坐标可以链接到包围盒。不过,如果当基于单应性矩阵投射点时确定点在显示空间中的特定包围盒外部,则对应于显示空间中此类点的内容可以不链接到特定包围盒。相反,可以基于不同的包围盒确定内容。针对每个顶点的标志(f1,f2,...,fN),可以由顶点着色器904用于确定(Ui,Vi)坐标是在包围盒之内还是包围盒之外。
可以向片段着色器906发送包括针对每个单应性矩阵的(Ui,Vi)坐标、三维点位置以及点是否在包围盒之内的顶点信息,以针对根据显示空间中初始组顶点定义的多个三角形确定三角形信息。对于每个三角形,片段着色器906可以从顶点确定三角形是否至少部分包括在包围盒中。如果顶点中的一个或多个与标志(f1,f2,...,fN)相关联,则片段着色器906可以确定三角形至少部分地包括在包围盒中,使得可以利用包围盒的内容渲染三角形。对于片段着色器906渲染的每个像素,可以确定像素的颜色和像素的深度两者并且将其与针对该平面的包围盒相关联。
图10是示出了根据本公开的一项或多项技术,基于渲染坐标空间中定义的顶点的一步扭曲技术的流程图1000。针对一帧的N个包围盒可以均被顶点网格确定模块1008划分成多个顶点,使得每个包围盒包括相应组的顶点。于是,当向渲染的坐标空间应用从APR单应性矩阵确定模块1002接收的针对N个单应性矩阵的N次矩阵变换(M1,M2,...,MN)时,可以降低顶点着色器1004的复杂性。例如,顶点着色器1004可以基于对应于包括给定组顶点的包围盒的单次矩阵变换确定用于完成给定组顶点的标准。顶点着色器1004可以确定(xi,yi,zi)坐标,在显示空间中,其可以相对于显示姿态。在显示空间中确定(Ui,Vi)坐标之后,可以基于顶点网格确定模块1008的输出确定眼睛缓存器空间中的顶点。顶点着色器1004可以接下来向片段着色器1006提供顶点信息,以渲染与包围盒相关联的像素颜色和像素深度两者。
可以针对每个后续组的包围盒重新确定顶点,使得顶点网格可以与包围盒对准。或者,可以定义包围盒,使得包围盒与预定网格对准。对于所有包围盒的三角形列表中的每个三角形,可以基于顶点着色器1004的输出将三角形的像素映射到显示空间。顶点着色器1004可以进一步通过向每个顶点独立应用LDC/CAC并基于每个帧将顶点映射到对于显示姿态而言的适当位置,对顶点执行畸变校正。不过,LDC/CAC不可以用于客户端设备,例如AR眼镜。
除了APR技术之外,可以向包围盒应用其他类型的扭曲技术。例如,可以应用异步空间扭曲,用于移动包围盒之内包括的内容。与内容相关联的元数据可以指示包围盒移动。因此,可以针对包围盒之内的点子集确定运动矢量,以向内容应用异步空间扭曲。
其他扭曲技术可以是将参数化网与包围盒中包括的内容的虚拟表面相关联(例如,而不是确定平面参数),并且对参数化表面进行二次投影以执行扭曲。尽管可以经由平面参数(a,b,c)将平面定义为参数化网,但可以针对更复杂的表面定义更复杂的网(例如,对应于球形对象的网)。网的参数可以与用于二次投影/扭曲的元数据相关联。可以基于多项式函数(例如,z=f(x,y),其中z是像素(x,y)处的近似深度)来指示参数化。亦即,可以基于针对眼睛缓存器中的每个像素求解函数f(x,y)来确定深度缓存器z,以定义要结合在包围盒之内的网。然后可以将该网的参数(例如,多项式函数的系数)用作用于二次投影/扭曲的元数据。
图11是示出了服务器1102和客户端1104之间的示例性通信的呼叫流程图1100。在第一方面中,服务器1102和客户端1104可以包括在相同设备中。在第二方面中,服务器1102和客户端1104可以包括在独立设备中。
在1106,服务器可以针对帧的多个虚拟对象定义包围盒。可以基于深度缓存器定义包围盒,深度缓存器包括对应于多个虚拟对象的深度信息。此外或替代地,可以基于对对应于多个虚拟对象的眼睛缓存器执行的连接分量分析来定义包围盒。在1108,服务器1102可以基于在1106定义的包围盒将多个虚拟对象分成独立的层。例如,帧中包括的每个虚拟对象都可以对应于与独立层相关联的相应包围盒。
在1110,服务器1102可以向客户端1104发送用于多个虚拟对象的第一元数据。第一元数据可以指示在1106定义的包围盒的一个或多个边缘。在1112,服务器1102可以基于在1108将多个虚拟对象分成与相应包围盒相关联的独立层而发送针对包围盒的第二元数据。第二元数据可以指示用于扭曲包括多个虚拟对象的包围盒的平面参数。
在1114,客户端1104可以基于在1110接收的与多个虚拟对象相关联的第一元数据以及在1112接收的与扭曲包围盒相关联的第二元数据,对多个虚拟对象进行二次投影。在1116,客户端1104可以将二次投影的虚拟对象组合到相同帧中,以在XR显示设备上显示。
图12是根据本公开的一项或多项技术的显示处理的示例性方法的流程图1200。该方法可以由设备(例如,客户端设备)、显示处理器、二次投影模块/引擎、诸如无线通信设备的装置执行,如结合图1-11的示例所用的那样。
在1202,该设备可以获得包括多个虚拟对象的图形数据层——多个虚拟对象的每个都与多个包围盒的至少一个包围盒相关联。例如,参考图11,客户端1104可以在1110接收针对多个虚拟对象的第一元数据。进一步地,图1中的显示处理器127可以执行步骤1202。参见图2-4,AR运行时/扭曲(APR)引擎308可以接收图像帧306,该图像帧包括在眼睛缓存器的一个层中的多个虚拟对象。多个虚拟对象202可以与指示包括虚拟对象202的包围盒204的边缘的元数据相关联。
在1204,该设备可以获得指示多个包围盒的至少一个包围盒的至少一个边缘的元数据。例如,参考图11,客户端1104可以在1110接收针对多个虚拟对象的第一元数据。进一步地,图1中的显示处理器127可以执行步骤1204。参考图2-4,多个虚拟对象202可以与指示包括虚拟对象202的包围盒204的边缘的元数据相关联。
在1206,该设备可以对应于与多个包围盒的每个相关联的二次投影指令的元数据。例如,参考图11,客户端1104可以在1112从服务器1102接收针对包围盒的第二元数据。进一步地,图1中的显示处理器127可以执行步骤1206。参考图2-4,AR运行时/扭曲(APR)引擎308可以从插件304接收二次投影元数据,用于对图像帧306中包括的每个虚拟对象202进行二次投影。
在1208,该设备可以基于指示至少一个包围盒的至少一个边缘的元数据和对应于二次投影指令的元数据对多个虚拟对象进行二次投影。例如,参考图11,客户端1104可以在1114基于在1110接收的第一元数据以及在1112接收的第二元数据对多个虚拟对象进行二次投影。进一步地,图1中的显示处理器127可以执行步骤1208。参考图2-4,AR运行时/扭曲(APR)引擎308可以独立地对虚拟对象202进行二次投影以基于从插件304接收的元数据产生用于显示器312的扭曲内容310。
图13是根据本公开的一项或多项技术的显示处理的示例性方法的流程图1300。该方法可以由设备(例如,客户端设备)、显示处理器、二次投影模块/引擎、诸如无线通信设备的装置执行,如结合图1-11的示例所用的那样。
在1302,该设备可以在眼睛缓存器的一个层中接收多个虚拟对象,该眼睛缓存器中的一个层基于指示一个或多个包围盒的至少一个边缘的第一元数据被分配到包括多个虚拟对象的一个或多个包围盒中。例如,参考图11,客户端1104可以在1110接收针对多个虚拟对象的第一元数据。进一步地,图1中的显示处理器127可以执行步骤1302。参见图2-4,AR运行时/扭曲(APR)引擎308可以接收图像帧306,该图像帧包括在眼睛缓存器的一个层中的多个虚拟对象。多个虚拟对象202可以与指示包括虚拟对象202的包围盒204的边缘的元数据相关联。多个虚拟对象202的每个可以包括在一个或多个包围盒204的相应一个中。在各方面中,参考图5,一个或多个包围盒502可以与网格结构(例如,网格504)相关联,使得多个虚拟对象202可以被包括在网格结构的一个或多个图块506中。网格结构(例如,网格504)可以被覆盖在眼睛缓存器上。一个或多个图块506的每个可以对应于一个或多个包围盒502的独立包围盒。网格结构(例如,网格504)可以包括均匀图块分布、至少一个细分图块或至少一个合并图块中的至少一种。在其他方面中,眼睛缓存器可以包括左眼缓存器和右眼缓存器,从而可以通过在左眼缓存器和右眼缓存器之间执行DFS而从深度缓存器确定深度。可以基于对眼睛缓存器执行的连接分量分析来定义包括多个虚拟对象的一个或多个包围盒204,以确定对应于多个虚拟对象202的闭合轮廓。此外或替代地,可以基于一个层中包括对应于多个虚拟对象202的深度信息的深度缓存器来定义包括多个虚拟对象的一个或多个包围盒204。
在1304,该设备可以接收针对包围盒中的一个或多个的第二元数据,以对该一个或多个包围盒中包括的多个虚拟对象进行二次投影。例如,参考图11,客户端1104可以在1112从服务器1102接收针对包围盒的第二元数据。进一步地,图1中的显示处理器127可以执行步骤1304。参考图2-4,AR运行时/扭曲(APR)引擎308可以从插件304接收二次投影元数据,用于对图像帧306中包括的每个虚拟对象202进行二次投影。第二元数据可以包括至少一个用于对多个虚拟对象202执行APR的平面参数(例如,从插件304提供)。第二元数据可以包括对应于一个或多个包围盒204中包括的多个虚拟对象202的锚标识符或姿态信息中的至少一者。第二元数据可以包括对应于多个虚拟对象202中的虚拟对象202的参数化网。第二元数据可以是从服务器设备接收的。例如,参考图7,第二元数据可以由无线网络设备侧的AR运行时/扭曲(APR)引擎708从无线网络服务器侧的插件704接收。
在1306,该设备可以接收眼睛姿态信息以确定一个或多个包围盒中眼睛指向的特定包围盒,多个虚拟对象的二次投影基于针对该特定包围盒的第二元数据。例如,参考图2和4,AR运行时/扭曲(APR)引擎308可以接收眼睛姿态信息402以确定包围盒204中包括的眼睛指向的特定包围盒,以基于从针对该特定包围盒的插件304接收的元数据对虚拟对象202进行二次投影。进一步地,图1中的显示处理器127可以执行步骤1306。
在1308,该设备可以基于针对一个或多个包围盒的第一元数据和第二元数据对多个虚拟对象进行二次投影。例如,参考图11,客户端1104可以在1114基于在1110接收的第一元数据以及在1112接收的第二元数据对多个虚拟对象进行二次投影。进一步地,图1中的显示处理器127可以执行步骤1308。参考图2-4,AR运行时/扭曲(APR)引擎308可以独立地对虚拟对象202进行二次投影以基于从插件304接收的元数据产生用于显示器312的扭曲内容310。
在1310,该设备可以将二次投影的多个虚拟对象组合到相同帧中,以在XR显示设备上显示。例如,参考图11,客户端1104可以在1116将二次投影的虚拟对象组合成相同帧。进一步地,图1中的显示处理器127可以执行步骤1310。参考图2-4,AR运行时/扭曲(APR)引擎308可以将二次投影的虚拟对象202组合到经由扭曲眼睛缓存器提供到显示设备的显示器312的相同帧中。
在各种配置中,提供了一种用于显示处理的方法或装置。该装置可以是设备(例如,客户端设备)、显示处理器、DPU、二次投影模块/引擎或可以执行显示处理的某种其他处理器。在各方面中,装置可以是设备104之内的显示处理器127,或者装置可以是设备104或另一设备之内的某种其他硬件。该装置包括用于获得包括多个虚拟对象的一层图形数据的部件,其中,多个虚拟对象的每个与多个包围盒的至少一个包围盒相关联;用于获得指示多个包围盒的至少一个包围盒的至少一个边缘的元数据的部件;用于获得对应于与多个包围盒的每个相关联的二次投影指令的元数据的部件;以及基于指示多个包围盒的至少一个包围盒的至少一个边缘的元数据和对应于二次投影指令的元数据对多个虚拟对象进行二次投影的部件。
该装置还包括用于在眼睛缓存器中的一个层中接收多个虚拟对象的部件,该眼睛缓存器中的该一个层基于指示一个或多个包围盒的边缘的第一元数据被分配到包括多个虚拟对象的一个或多个包围盒中;用于接收针对包围盒中的一个或多个的第二元数据以对一个或多个包围盒中包括的多个虚拟对象进行二次投影的部件;以及基于针对一个或多个包围盒的第一元数据和第二元数据对多个虚拟对象进行二次投影的部件。该装置还包括用于接收眼睛姿态信息以确定一个或多个包围盒中眼睛指向的特定包围盒的部件,多个虚拟对象的二次投影基于针对该特定包围盒的第二元数据。该装置还包括用于将二次投影的多个虚拟对象组合到相同帧中以在XR显示设备上显示的部件。
图14是根据本公开的一项或多项技术的显示处理的示例性方法的流程图1400。该方法可以由设备(例如,服务器设备)、显示处理器、诸如无线通信设备的装置执行,如结合图1-11的示例所用的那样。
在1402,该设备可以渲染一层中的多个虚拟对象——多个虚拟对象的每个都与多个包围盒的至少一个包围盒相关联。例如,参考图2-4,多个虚拟对象202可以由单层中的AR应用302(例如,经由眼睛缓存器和深度缓存器)渲染。多个虚拟对象202可以包括在包围盒204中。进一步地,图1中的显示处理器127可以执行步骤1402。
在1404,该设备可以确定指示多个包围盒的至少一个包围盒的至少一个边缘的元数据。例如,参考图11,服务器1102可以针对多个虚拟对象确定第一元数据,以在1110向客户端1104发送第一元数据。进一步地,图1中的显示处理器127可以执行步骤1404。参考图2-4,多个虚拟对象202可以与指示包括虚拟对象202的包围盒204的边缘的元数据相关联。
在1406,该设备可以确定对应于与多个包围盒的每个相关联的二次投影指令的元数据。例如,参考图11,服务器1102可以针对包围盒确定第二元数据,以在1112向客户端1102发送第二元数据。进一步地,图1中的显示处理器127可以执行步骤1406。
在1408,该设备可以发送指示包围盒的至少一个边缘的元数据和对应于二次投影指令的元数据,用于对多个虚拟对象进行二次投影。例如,参考图11,服务器1102可以在1110向客户端1104发送第一元数据。服务器1102也可以在1112向客户端1102发送第二元数据。参考图2-4,多个虚拟对象202可以与指示包括虚拟对象202的包围盒204的边缘的元数据相关联。二次投影元数据可以从插件304被发送到AR运行时/扭曲(APR)引擎308,用于对图像帧306中包括的每个虚拟对象202进行二次投影。进一步地,图1中的显示处理器127可以执行步骤1406。
图15是根据本公开的一项或多项技术的显示处理的示例性方法的流程图1500。该方法可以由设备(例如,服务器设备)、显示处理器、诸如无线通信设备的装置执行,如结合图1-11的示例所用的那样。
在1502,该设备可以基于对眼睛缓存器执行的连接分量分析定义一个或多个包括多个虚拟对象的包围盒,以确定对应于多个虚拟对象的闭合轮廓。例如,参考图11,服务器1102可以在1106基于对眼睛缓存器执行的连接分量分析来定义包围盒。进一步地,图1中的显示处理器127可以执行步骤1502。
在1504,该设备可以基于一个层中的包括对应于多个虚拟对象的深度信息的深度缓存器来定义一个或多个包括多个虚拟对象的包围盒。例如,参考图11,服务器1102可以在1106基于深度缓存器中包括的深度缓存器信息来定义包围盒。进一步地,图1中的显示处理器127可以执行步骤1504。
在1506,该设备可以基于一个或多个包围盒与第一元数据相关联而将多个虚拟对象分隔成独立的层。例如,参考图11,服务器1102可以基于在1106定义的包围盒将多个虚拟对象分成独立的层。进一步地,图1中的显示处理器127可以执行步骤1506。参考图2-4,AR运行时/扭曲(APR)引擎308可以基于图像帧306中指示的包围盒204将眼睛缓冲层的图像帧306中包括的多个虚拟对象202分隔到多个层中。
在1508,该设备可以在眼睛缓存器的一个层中发送多个虚拟对象,该眼睛缓存器中的一个层基于指示一个或多个包围盒的至少一个边缘的第一元数据被分配到包括多个虚拟对象的一个或多个包围盒中。例如,参考图11,服务器1102可以在1110发送针对多个虚拟对象的第一元数据。进一步地,图1中的显示处理器127可以执行步骤1508。参考图2-4,AR应用302可以发送图像帧306,该图像帧包括在眼睛缓存器的一个层中的多个虚拟对象。多个虚拟对象202可以与指示包括虚拟对象202的包围盒204的边缘的元数据相关联。多个虚拟对象202的每个可以包括在一个或多个包围盒204的相应一个中。在各方面中,参考图5,一个或多个包围盒502可以与网格结构(例如,网格504)相关联,使得多个虚拟对象202可以被包括在网格结构的一个或多个图块506中。网格结构(例如,网格504)可以被覆盖在眼睛缓存器上。一个或多个图块506的每个可以对应于一个或多个包围盒502的独立包围盒。网格结构(例如,网格504)可以包括均匀图块分布、至少一个细分图块或至少一个合并图块中的至少一种。在其他方面中,眼睛缓存器可以包括左眼缓存器和右眼缓存器,从而可以通过在左眼缓存器和右眼缓存器之间执行DFS而从深度缓存器确定深度。
在1510,该设备可以发送针对一个或多个包围盒的第二元数据,以基于针对该一个或多个包围盒的第一元数据和第二元数据对该一个或多个包围盒中包括的多个虚拟对象进行二次投影。例如,参考图11,服务器1102可以在1112向客户端1104发送针对包围盒的第二元数据。进一步地,图1中的显示处理器127可以执行步骤1510。参考图2-4,插件304可以向AR运行时/扭曲(APR)引擎308发送二次投影元数据,用于对图像帧306中包括的每个虚拟对象202进行二次投影。第二元数据可以包括至少一个用于对多个虚拟对象202执行APR的平面参数(例如,从插件304提供)。第二元数据可以包括对应于一个或多个包围盒204中包括的多个虚拟对象202的锚标识符或姿态信息中的至少一者。第二元数据可以包括对应于多个虚拟对象202中的虚拟对象202的参数化网。第二元数据可以被发送到客户端设备。例如,参考图7,第二元数据可以从无线网络服务器侧的插件704向无线网络设备侧的AR运行时/扭曲(APR)引擎708发送。经二次投影的多个虚拟对象可以被组合到相同帧中,以在XR显示设备(例如,显示器710)上显示。
在1512,该设备可以发送眼睛姿态信息以确定一个或多个包围盒中眼睛指向的特定包围盒,多个虚拟对象的二次投影基于针对该特定包围盒的第二元数据。例如,参考图2和4,AR运行时/扭曲(APR)引擎308可以接收眼睛姿态信息402以确定包围盒204中包括的眼睛指向的特定包围盒,以基于从针对该特定包围盒的插件304接收的元数据对虚拟对象202进行二次投影。进一步地,图1中的显示处理器127可以执行步骤1512。
在各种配置中,提供了一种用于显示处理的方法或装置。该装置可以是设备(例如,服务器设备)、显示处理器、DPU、或可以执行显示处理的某种其他处理器。在各方面中,该装置可以是设备104之内的显示处理器127,或者该装置可以是设备104或另一设备之内的某种其他硬件。该装置包括:用于渲染一层中多个虚拟对象的部件,其中,多个虚拟对象的每个与多个包围盒的至少一个包围盒相关联;用于确定指示多个包围盒的至少一个包围盒的至少一个边缘的元数据的部件;用于确定对应于与多个包围盒的每个相关联的二次投影指令的元数据的部件;以及用于发送指示包围盒的至少一个边缘的元数据和对应于二次投影指令的元数据,以用于对多个虚拟对象进行二次投影的部件。
该装置还包括:用于在眼睛缓存器中的一个层中发送多个虚拟对象的部件,该眼睛缓存器中的该一个层基于指示一个或多个包围盒的至少一个边缘的第一元数据被分配到包括多个虚拟对象的一个或多个包围盒中;以及用于发送针对包围盒中的一个或多个的第二元数据以对一个或多个包围盒中包括的多个虚拟对象进行二次投影的部件,其中,基于针对一个或多个包围盒的第一元数据和第二元数据对多个虚拟对象进行二次投影。该装置还包括用于基于对眼睛缓存器执行的连接分量分析定义一个或多个包括多个虚拟对象的包围盒,以确定对应于多个虚拟对象的闭合轮廓的部件。该装置还包括用于基于一个层中的包括对应于多个虚拟对象的深度信息的深度缓存器来定义一个或多个包括多个虚拟对象的包围盒的部件。该装置还包括用于发送眼睛姿态信息以确定一个或多个包围盒中眼睛指向的特定包围盒的部件,多个虚拟对象的二次投影基于针对该特定包围盒的第二元数据。该装置还包括用于基于一个或多个与第一元数据相关联的包围盒而将多个虚拟对象分隔成独立的层的部件。
应当理解,所公开的过程/流程图中的框的具体顺序或分级结构是示例性方式的例示。应当理解,可以基于设计偏好重新安排过程/流程图中的框的具体顺序或分级结构。此外,一些框可以被组合或省略。所附方法权利要求呈现样本顺序中的各种框的元素,并且并不意味着局限于所呈现的特定顺序或分级结构。
提供前面的描述以使得本领域的任何技术人员能够实践本文所述的各方面。这些方面的各种修改对于本领域的技术人员而言将是显而易见的,本文定义的一般性原理可以应用于其他方面。于是,权利要求并非旨在限于本文所示的各方面,而是要解释成与权利要求言辞一致的完整范围,其中以单数提到一元件并非意在指示“一个且仅一个”,除非特别这样指出,而是指“一个或多个”。“示范性”一词在本文中被用于意指“用作示例、实例或者例示”。本文描述为“示范性”的任何方面未必要被理解为相比其他方面是优选的或有利的。
除非另外特别指出,术语“一些”是指一个或多个,术语“或”在上下文不作出其他表述的情况下可以被解释为“和/或”。诸如“A、B或C中的至少一者”、“A、B或C中的一者或多者”、“A、B和C中的至少一者”、“A、B和C中的一者或多者”以及“A、B、C或其任何组合”的组合包括A、B和/或C的任何组合,并且可以包括多个A、多个B或多个C。具体地,诸如“A、B或C中的至少一者”、“A、B或C中的一者或多者”、“A、B和C中的至少一者”、“A、B和C中的一者或多者”以及“A、B、C或其任何组合”的组合可以是仅A、仅B、仅C、A和B、A和C、B和C或者A和B和C,其中,任何此类组合均可以包含一个或多个成员A、B或C。本公开通篇描述的各个方面的要素的所有对于本领域技术人员已知的或者以后将变得已知的结构和功能等价物将被通过引用明确并入本文,并且意在被权利要求所涵盖。此外,本文公开的任何内容都无意贡献给公众,不管这样的公开内容是否在权利要求中被明确阐述。词语“模块”、“机构”、“元件”、“设备”等可以不是词语“手段”的替代。照此,不应将任何权利要求要素解释为手段加功能,除非该要素是使用短语“用于……的部件”明确阐述的。
在一个或多个示例中,本文描述的功能可在硬件、软件、固件或其任意组合中实现。例如,尽管在整个公开中使用了术语“处理单元”,但这样的处理单元可以实现于硬件、软件、固件或其任意组合中。如果本文描述的任何功能、处理单元、技术,或者其他模块实现于软件中,则本文描述的功能、处理单元、技术,或者其他模块可以作为一个或多个指令或代码存储于计算机可读介质上或通过计算机可读介质发送。
计算机可读介质可以包括计算机数据存储介质和通信介质,包括方便将计算机程序从一地到另一地传送的任何介质。通过这种方式,计算机可读介质一般可以对应于:(1)非暂态的有形计算机可读存储介质;或者(2)诸如信号或载波的通信介质。数据存储介质可以是能够被一个或多个计算机或一个或多个处理器访问以检索指令、代码和/或数据结构以实施本公开描述的技术的任何可用介质。例如而非限制,此类计算机可读介质可以包括RAM、ROM、EEPROM、紧致盘只读存储器(CD-ROM)或其他光盘存储设备、磁盘存储设备或其他磁存储设备。如这里使用的,磁盘和光盘包括紧致盘(CD)、激光盘、光盘、数字多用盘(DVD)、软盘和蓝光盘,其中磁盘通常通过磁性方式再现数据,而光盘通常通过光学方式利用激光再现数据。上述内容的组合也应包含在计算机可读介质的范围内。计算机程序产品可以包括计算机可读介质。
本公开的技术可以在很宽范围的各种设备或装置中实施,包括无线手机、集成电路(IC)或一组IC,例如芯片组。在本公开中描述了各种组件、模块或单元以强调被配置成执行所公开技术的设备的功能方面,但未必需要通过不同的硬件单元实现。相反,如上所述,各种单元可以在任何硬件单元中组合或者由互操作硬件单元的集合结合适当的软件和/或固件提供,所述互操作硬件单元包括如上所述的一个或多个处理器。因此,如本文所用,术语“处理器”可以指任何前述结构或适于实施本文描述的技术的任何其他结构。而且,技术可以完全实现于一个或多个电路或逻辑元件中。
以下方面仅仅是例示性的,可以与本文描述的其他方面或教导组合而没有限制。
方面1是一种用于显示处理的装置,包括至少一个耦接到存储器的处理器并且被配置成:获得包括多个虚拟对象的一层图形数据,其中,多个虚拟对象的每个与多个包围盒的至少一个包围盒相关联;获得指示多个包围盒的至少一个包围盒的至少一个边缘的元数据;获得对应于与多个包围盒的每个相关联的二次投影指令的元数据;以及基于指示多个包围盒的至少一个包围盒的至少一个边缘的元数据和对应于二次投影指令的元数据对多个虚拟对象进行二次投影。
方面2可以与方面1组合并且包括,所述多个虚拟对象的每个包括在多个包围盒的相应一个中。
方面3可以与方面1的任何方面组合并且包括,所述多个包围盒与网格结构相关联,并且多个虚拟对象包括在网格结构的一个或多个图块中。
方面4可以与方面1或3的任何方面组合,并且包括,网格结构覆盖于眼睛缓存器上。
方面5可以与方面1或3-4的任何方面组合并且包括,一个或多个图块的每个对应于多个包围盒的独立包围盒。
方面6可以与方面1或3-5的任何方面组合并且包括,网格结构包括均匀图块分布、至少一个细分图块或至少一个合并图块中的至少一种。
方面7可以与方面1-6的任何方面组合并且包括,对应于二次投影指令的元数据包括用于对多个虚拟对象执行APR的至少一个平面参数。
方面8可以与方面1-7的任何方面组合并且包括,对应于二次投影指令的元数据包括对应于与至少一个包围盒相关联的多个虚拟对象的锚标识符或姿态信息的至少一者。
方面9可以与方面1-8的任何方面组合并且包括,从服务器设备获得对应于二次投影指令的元数据。
方面10可以与方面1-9的任何方面组合并且包括,基于对眼睛缓存器执行的连接分量分析,定义与多个虚拟对象相关联的至少一个包围盒,所述连接分量分析指示对应于多个虚拟对象的闭合轮廓。
方面11可以与方面1-10的任何方面组合并且包括,基于包括对应于多个虚拟对象的深度信息的深度缓存器,定义与多个虚拟对象相关联的至少一个包围盒。
方面12可以与方面1-11的任何方面组合并且包括,所述至少一个处理器还被配置成获得眼睛姿态信息以确定多个包围盒中眼睛指向的特定包围盒,其中,多个虚拟对象的二次投影基于对应于与该特定包围盒相关联的二次投影指令的元数据。
方面13可以与方面1-12的任何方面组合并且包括,眼睛缓存器包括左眼缓存器和右眼缓存器,其中,基于左眼缓存器和右眼缓存器之间的DFS从深度缓存器确定深度。
方面14可以与方面1-13的任何方面组合并且包括,对应于二次投影指令的元数据包括对应于多个虚拟对象的虚拟对象的参数化网。
方面15可以与方面1-14的任何方面组合并且包括,所述至少一个处理器还被配置成将二次投影的多个虚拟对象组合到相同帧中,以在XR显示设备上显示。
方面16可以与方面1-15的任何方面组合并且包括,所述装置是无线通信设备。
方面17是一种用于显示处理的装置,包括至少一个耦接到存储器的处理器并且被配置成:渲染一层中的多个虚拟对象,其中,多个虚拟对象的每个与多个包围盒的至少一个包围盒相关联;确定指示多个包围盒的至少一个包围盒的至少一个边缘的元数据;确定对应于与多个包围盒的每个相关联的二次投影指令的元数据;以及发送指示包围盒的至少一个边缘的元数据和对应于二次投影指令的元数据以用于对多个虚拟对象进行二次投影。
方面18可以与方面17组合并且包括,所述多个虚拟对象的每个包括在多个包围盒的相应一个中。
方面19可以与方面17的任何方面组合并且包括,所述多个包围盒与网格结构相关联,并且多个虚拟对象包括在网格结构的一个或多个图块中。
方面20可以与方面17或19的任何方面组合,并且包括,网格结构覆盖于眼睛缓存器上。
方面21可以与方面17或19-20的任何方面组合并且包括,一个或多个图块的每个对应于多个包围盒的独立包围盒。
方面22可以与方面17或19-21的任何方面组合并且包括,网格结构包括均匀图块分布、至少一个细分图块或至少一个合并图块中的至少一种。
方面23可以与方面17-22的任何方面组合并且包括,对应于二次投影指令的元数据包括用于对多个虚拟对象执行APR的至少一个平面参数。
方面24可以与方面17-23的任何方面组合并且包括,对应于二次投影指令的元数据包括对应于与一个或多个包围盒相关联的多个虚拟对象的锚标识符或姿态信息的至少一者。
方面25可以与方面17-24的任何方面组合并且包括,向客户端设备发送对应于二次投影指令的元数据。
方面26可以与方面17-25的任何方面组合并且包括,所述至少一个处理器还被配置成基于对眼睛缓存器执行的连接分量分析,定义与多个虚拟对象相关联的至少一个包围盒,所述连接分量分析指示对应于多个虚拟对象的闭合轮廓。
方面27可以与方面17-26的任何方面组合并且包括,所述至少一个处理器还被配置成基于包括对应于多个虚拟对象的深度信息的深度缓存器,定义与多个虚拟对象相关联的至少一个包围盒。
方面28可以与方面17-27的任何方面组合并且包括,所述至少一个处理器还被配置成发送眼睛姿态信息以确定多个包围盒中眼睛指向的特定包围盒,其中,多个虚拟对象的二次投影基于对应于与该特定包围盒相关联的二次投影指令的元数据。
方面29可以与方面17-28的任何方面组合并且包括,眼睛缓存器包括左眼缓存器和右眼缓存器,其中,基于左眼缓存器和右眼缓存器之间的DFS从深度缓存器确定深度。
方面30可以与方面17-29的任何方面组合并且包括,对应于二次投影指令的元数据包括对应于多个虚拟对象的虚拟对象的参数化网。
方面31可以与方面17-30的任何方面组合并且包括,所述多个虚拟对象在二次投影到相同帧中之后被组合以在扩展现实XR显示设备上显示。
方面32可以与方面17-31的任何方面组合并且包括,所述至少一个处理器还被配置成基于指示至少一个包围盒的至少一个边缘的元数据将多个虚拟对象分隔到独立层中。
方面33可以与方面17-32的任何方面组合并且包括,所述装置是无线通信设备。
方面34是一种用于实施方面1-33的任何方面的无线通信方法。
方面35是一种包括用于实施方面1-33的任何方面的部件的无线通信装置。
方面36是一种存储计算可执行代码的计算机可读介质,所述代码在由至少一个处理器执行时,使所述至少一个处理器实施方面1-33的任何方面。
已经描述了各个示例。这些和其他示例在以下权利要求书的范围内。
Claims (35)
1.一种用于显示处理的装置,包括:
存储器;以及
耦接到所述存储器的至少一个处理器,所述至少一个处理器被配置成:
获得包括多个虚拟对象的一层图形数据,其中,所述多个虚拟对象的每个都与多个包围盒的至少一个包围盒相关联;
获得指示所述多个包围盒的所述至少一个包围盒的至少一个边缘的元数据;
获得对应于与所述多个包围盒的每个相关联的二次投影指令的元数据;以及
基于指示所述至少一个包围盒的所述至少一个边缘的所述元数据和对应于所述二次投影指令的所述元数据对所述多个虚拟对象进行二次投影。
2.根据权利要求1所述的装置,其中,所述多个虚拟对象的每个包括在所述多个包围盒的相应一个中。
3.根据权利要求1所述的装置,其中,所述多个包围盒与网格结构相关联,并且所述多个虚拟对象包括在所述网格结构的一个或多个图块中。
4.根据权利要求3所述的装置,其中,所述网格结构覆盖在眼睛缓存器上。
5.根据权利要求3所述的装置,其中,所述一个或多个图块的每个对应于所述多个包围盒中的独立包围盒。
6.根据权利要求3所述的装置,其中,所述网格结构包括均匀图块分布、至少一个细分图块或至少一个合并图块中的至少一种。
7.根据权利要求1所述的装置,其中,对应于所述二次投影指令的所述元数据包括至少一个用于对所述多个虚拟对象执行异步平面二次投影(APR)的平面参数。
8.根据权利要求1所述的装置,其中,对应于所述二次投影指令的所述元数据包括对应于与所述至少一个包围盒相关联的所述多个虚拟对象的锚标识符或姿态信息的至少一者。
9.根据权利要求1所述的装置,其中,对应于所述二次投影指令的所述元数据是从服务器设备获得的。
10.根据权利要求1所述的装置,其中,基于对眼睛缓存器执行的连接分量分析,定义与所述多个虚拟对象相关联的所述至少一个包围盒,所述连接分量分析指示对应于所述多个虚拟对象的闭合轮廓。
11.根据权利要求1所述的装置,其中,基于包括对应于所述多个虚拟对象的深度信息的深度缓存器,定义与所述多个虚拟对象相关联的所述至少一个包围盒。
12.根据权利要求1所述的装置,其中,所述至少一个处理器还被配置成获得眼睛姿态信息以确定所述多个包围盒中眼睛指向的特定包围盒,其中,所述多个虚拟对象的二次投影基于对应于与所述特定包围盒相关联的二次投影指令的元数据。
13.根据权利要求1所述的装置,其中,眼睛缓存器包括左眼缓存器和右眼缓存器,其中,基于所述左眼缓存器和所述右眼缓存器之间的双目立体视觉(DFS)从深度缓存器确定深度。
14.根据权利要求1所述的装置,其中,对应于所述二次投影指令的所述元数据包括对应于所述多个虚拟对象的虚拟对象的参数化网。
15.根据权利要求1所述的装置,其中,所述至少一个处理器还被配置成将二次投影的多个虚拟对象组合到相同帧中,以在扩展现实(XR)显示设备上显示。
16.根据权利要求1所述的装置,其中,所述装置是无线通信设备。
17.一种用于显示处理的装置,包括:
存储器;以及
耦接到所述存储器的至少一个处理器,所述至少一个处理器被配置成:
渲染一层中的多个虚拟对象,其中,所述多个虚拟对象的每个都与多个包围盒的至少一个包围盒相关联;
确定指示所述多个包围盒的所述至少一个包围盒的至少一个边缘的元数据;
确定对应于与所述多个包围盒的每个相关联的二次投影指令的元数据;以及
发送指示所述包围盒的所述至少一个边缘的所述元数据和对应于所述二次投影指令的所述元数据,用于对所述多个虚拟对象进行二次投影。
18.根据权利要求17所述的装置,其中,所述多个虚拟对象的每个包括在所述多个包围盒的相应一个中。
19.根据权利要求17所述的装置,其中,所述多个包围盒与网格结构相关联,并且所述多个虚拟对象包括在所述网格结构的一个或多个图块中。
20.根据权利要求19所述的装置,其中,所述网格结构覆盖在眼睛缓存器上。
21.根据权利要求19所述的装置,其中,所述一个或多个图块的每个对应于所述多个包围盒中的独立包围盒。
22.根据权利要求19所述的装置,其中,所述网格结构包括均匀图块分布、至少一个细分图块或至少一个合并图块中的至少一种。
23.根据权利要求17所述的装置,其中,对应于所述二次投影指令的所述元数据包括至少一个用于对所述多个虚拟对象执行异步平面二次投影(APR)的平面参数。
24.根据权利要求17所述的装置,其中,对应于所述二次投影指令的所述元数据包括对应于与所述一个或多个包围盒相关联的所述多个虚拟对象的锚标识符或姿态信息的至少一者。
25.根据权利要求17所述的装置,其中,向客户端设备发送对应于所述二次投影指令的所述元数据。
26.根据权利要求17所述的装置,其中,所述至少一个处理器还被配置成基于对眼睛缓存器执行的连接分量分析,定义与所述多个虚拟对象相关联的所述至少一个包围盒,所述连接分量分析指示对应于所述多个虚拟对象的闭合轮廓。
27.根据权利要求17所述的装置,其中,所述至少一个处理器还被配置成基于包括对应于所述多个虚拟对象的深度信息的深度缓存器,定义与所述多个虚拟对象相关联的所述至少一个包围盒。
28.根据权利要求17所述的装置,其中,所述至少一个处理器还被配置成发送眼睛姿态信息以确定所述多个包围盒中眼睛指向的特定包围盒,其中,所述多个虚拟对象的二次投影基于对应于与所述特定包围盒相关联的二次投影指令的元数据。
29.根据权利要求17所述的装置,其中,眼睛缓存器包括左眼缓存器和右眼缓存器,其中,基于所述左眼缓存器和所述右眼缓存器之间的双目立体视觉(DFS)从深度缓存器确定深度。
30.根据权利要求17所述的装置,其中,对应于所述二次投影指令的所述元数据包括对应于所述多个虚拟对象的虚拟对象的参数化网。
31.根据权利要求17所述的装置,其中,所述多个虚拟对象在二次投影到相同帧中之后被组合以在扩展现实XR显示设备上显示。
32.根据权利要求17所述的装置,其中,所述至少一个处理器还被配置成基于指示所述至少一个包围盒的所述至少一个边缘的所述元数据将所述多个虚拟对象分隔到独立层中。
33.根据权利要求17所述的装置,其中,所述装置是无线通信设备。
34.一种显示处理的方法,包括:
获得包括多个虚拟对象的一层图形数据,其中,所述多个虚拟对象的每个都与多个包围盒的至少一个包围盒相关联;
获得指示所述多个包围盒的所述至少一个包围盒的至少一个边缘的元数据;
获得对应于与所述多个包围盒的每个相关联的二次投影指令的元数据;以及
基于指示所述至少一个包围盒的所述至少一个边缘的所述元数据和对应于所述二次投影指令的所述元数据对所述多个虚拟对象进行二次投影。
35.一种显示处理的方法,包括:
渲染一层中的多个虚拟对象,其中,所述多个虚拟对象的每个都与多个包围盒的至少一个包围盒相关联;
确定指示所述多个包围盒的所述至少一个包围盒的至少一个边缘的元数据;
确定对应于与所述多个包围盒的每个相关联的二次投影指令的元数据;以及
发送指示所述包围盒的所述至少一个边缘的所述元数据和对应于所述二次投影指令的所述元数据,用于对所述多个虚拟对象进行二次投影。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IN202041019594 | 2020-05-08 | ||
IN202041019594 | 2020-05-08 | ||
PCT/US2021/031409 WO2021226535A1 (en) | 2020-05-08 | 2021-05-07 | Multi-layer reprojection techniques for augmented reality |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115552451A true CN115552451A (zh) | 2022-12-30 |
Family
ID=76197617
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180032498.8A Pending CN115552451A (zh) | 2020-05-08 | 2021-05-07 | 用于增强现实的多层二次投影技术 |
Country Status (7)
Country | Link |
---|---|
US (1) | US20230039100A1 (zh) |
EP (1) | EP4147192A1 (zh) |
KR (1) | KR20230007358A (zh) |
CN (1) | CN115552451A (zh) |
BR (1) | BR112022021706A2 (zh) |
TW (1) | TW202201350A (zh) |
WO (1) | WO2021226535A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115032797A (zh) * | 2022-06-30 | 2022-09-09 | 恒玄科技(上海)股份有限公司 | 用于无线智能眼镜的显示方法和无线智能眼镜 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022097904A (ja) * | 2020-12-21 | 2022-07-01 | トヨタ自動車株式会社 | 案内表示システム及び案内表示システムのサーバ |
US20230334792A1 (en) * | 2022-04-18 | 2023-10-19 | Mobeus Industries, Inc. | Interactive reality computing experience using optical lenticular multi-perspective simulation |
WO2023215637A1 (en) * | 2022-05-06 | 2023-11-09 | Mobeus Industries, Inc. | Interactive reality computing experience using optical lenticular multi-perspective simulation |
WO2023227223A1 (en) * | 2022-05-26 | 2023-11-30 | Telefonaktiebolaget Lm Ericsson (Publ) | Split transport for warping |
WO2024003577A1 (en) * | 2022-07-01 | 2024-01-04 | V-Nova International Ltd | Applications of layered encoding in split computing |
US20240029363A1 (en) * | 2022-07-20 | 2024-01-25 | Qualcomm Incorporated | Late stage occlusion based rendering for extended reality (xr) |
WO2024039887A1 (en) * | 2022-08-19 | 2024-02-22 | Mobeus Industries, Inc. | Interactive reality computing experience using optical lenticular multi-perspective simulation |
US20240193873A1 (en) * | 2022-12-07 | 2024-06-13 | Qualcomm Incorporated | Independent scene movement based on mask layers |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7343046B2 (en) * | 2004-02-12 | 2008-03-11 | Xerox Corporation | Systems and methods for organizing image data into regions |
US9042652B2 (en) * | 2012-11-01 | 2015-05-26 | Intel Corporation | Techniques for connected component labeling |
US9607428B2 (en) * | 2015-06-30 | 2017-03-28 | Ariadne's Thread (Usa), Inc. | Variable resolution virtual reality display system |
EP3465627B1 (en) * | 2016-05-29 | 2020-04-29 | Google LLC | Time-warping adjustment based on depth information in a virtual/augmented reality system |
US10410349B2 (en) * | 2017-03-27 | 2019-09-10 | Microsoft Technology Licensing, Llc | Selective application of reprojection processing on layer sub-regions for optimizing late stage reprojection power |
US10776992B2 (en) * | 2017-07-05 | 2020-09-15 | Qualcomm Incorporated | Asynchronous time warp with depth data |
US10403032B2 (en) * | 2017-08-22 | 2019-09-03 | Qualcomm Incorporated | Rendering an image from computer graphics using two rendering computing devices |
US10861215B2 (en) * | 2018-04-30 | 2020-12-08 | Qualcomm Incorporated | Asynchronous time and space warp with determination of region of interest |
US11417065B2 (en) * | 2019-10-29 | 2022-08-16 | Magic Leap, Inc. | Methods and systems for reprojection in augmented-reality displays |
US11363247B2 (en) * | 2020-02-14 | 2022-06-14 | Valve Corporation | Motion smoothing in a distributed system |
-
2021
- 2021-05-07 US US17/917,837 patent/US20230039100A1/en active Pending
- 2021-05-07 EP EP21729141.8A patent/EP4147192A1/en active Pending
- 2021-05-07 BR BR112022021706A patent/BR112022021706A2/pt unknown
- 2021-05-07 KR KR1020227038324A patent/KR20230007358A/ko active Search and Examination
- 2021-05-07 TW TW110116539A patent/TW202201350A/zh unknown
- 2021-05-07 CN CN202180032498.8A patent/CN115552451A/zh active Pending
- 2021-05-07 WO PCT/US2021/031409 patent/WO2021226535A1/en unknown
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115032797A (zh) * | 2022-06-30 | 2022-09-09 | 恒玄科技(上海)股份有限公司 | 用于无线智能眼镜的显示方法和无线智能眼镜 |
CN115032797B (zh) * | 2022-06-30 | 2023-12-08 | 恒玄科技(上海)股份有限公司 | 用于无线智能眼镜的显示方法和无线智能眼镜 |
Also Published As
Publication number | Publication date |
---|---|
US20230039100A1 (en) | 2023-02-09 |
WO2021226535A1 (en) | 2021-11-11 |
KR20230007358A (ko) | 2023-01-12 |
TW202201350A (zh) | 2022-01-01 |
EP4147192A1 (en) | 2023-03-15 |
BR112022021706A2 (pt) | 2022-12-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230039100A1 (en) | Multi-layer reprojection techniques for augmented reality | |
US11402634B2 (en) | Hand-locked rendering of virtual objects in artificial reality | |
CN111033570B (zh) | 使用两个渲染计算装置从计算机图形渲染图像 | |
US11954805B2 (en) | Occlusion of virtual objects in augmented reality by physical objects | |
US11170577B2 (en) | Generating and modifying representations of objects in an augmented-reality or virtual-reality scene | |
US20190066370A1 (en) | Rendering an image from computer graphics using two rendering computing devices | |
US11468629B2 (en) | Methods and apparatus for handling occlusions in split rendering | |
JP2016529593A (ja) | 立体シーンのインターリーブ方式のタイル型レンダリング | |
CN107562185B (zh) | 一种基于头戴vr设备的光场显示系统及实现方法 | |
US9672653B2 (en) | Stereo viewpoint graphics processing subsystem and method of sharing geometry data between stereo images in screen-spaced processing | |
KR20220148814A (ko) | 효율적인 다중 뷰 래스터화를 위한 방법들 및 장치 | |
CN115715464A (zh) | 用于遮挡处理技术的方法和装置 | |
KR20220164484A (ko) | 섀도우 정보를 이용한 렌더링 | |
CN114693857A (zh) | 光线追踪多帧降噪方法、电子设备、芯片及可读存储介质 | |
US20230101978A1 (en) | Meshlet shading atlas | |
WO2023164792A1 (en) | Checkerboard mask optimization in occlusion culling |
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 |