CN117425869A - 后期扭曲中的动态过度渲染 - Google Patents

后期扭曲中的动态过度渲染 Download PDF

Info

Publication number
CN117425869A
CN117425869A CN202280035607.6A CN202280035607A CN117425869A CN 117425869 A CN117425869 A CN 117425869A CN 202280035607 A CN202280035607 A CN 202280035607A CN 117425869 A CN117425869 A CN 117425869A
Authority
CN
China
Prior art keywords
over
region
rendered
rendering
pose
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
CN202280035607.6A
Other languages
English (en)
Inventor
贝恩哈德·荣格
爱德华·李金-孔
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.)
Snap Inc
Original Assignee
Snap Inc
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
Priority claimed from US17/530,242 external-priority patent/US11615506B2/en
Application filed by Snap Inc filed Critical Snap Inc
Priority claimed from PCT/US2022/072348 external-priority patent/WO2022246389A1/en
Publication of CN117425869A publication Critical patent/CN117425869A/zh
Pending legal-status Critical Current

Links

Landscapes

  • User Interface Of Digital Computer (AREA)

Abstract

描述了一种用于调整AR设备中显示器的过度渲染区域的方法。该方法包括:识别显示设备的角速度、显示设备的最近姿势、先前的扭曲姿势和先前的过度渲染区域;以及基于角速度、最近姿势、先前的扭曲姿势和先前的过度渲染区域的组合来调整动态过度渲染区域的尺寸。

Description

后期扭曲中的动态过度渲染
相关申请
本申请要求于2021年11月18日提交的美国专利申请序列号17/530,242的优先权,该美国专利申请要求于2021年5月18日提交的美国临时专利申请序列号63/189,928的优先权,上述申请中的每一个通过引用整体并入于此。
技术领域
本文公开的主题总体上涉及显示***。具体地,本公开内容提出了用于减少增强现实(AR)设备中的运动到光子延迟的***和方法。
背景技术
增强现实(AR)***呈现虚拟内容以增强用户的真实世界环境。例如,覆盖在物理对象上方的虚拟内容可以用于创建物理对象正在移动、动画化等的错觉。用户佩戴的AR设备基于用户的移动不断更新虚拟内容的呈现,以创建虚拟内容在用户的真实世界环境中物理地存在的错觉。例如,随着用户移动他们的头部,AR设备更新虚拟内容的呈现,以创建虚拟内容保持在用户的真实世界环境中的相同地理定位的错觉。因此,用户可以以与用户将围绕物理对象相同的方式围绕由AR设备呈现的虚拟对象移动。
为了令人信服地创建虚拟对象处于用户的真实世界环境中的错觉,AR设备必须在设备移动时几乎瞬间更新虚拟对象的呈现。然而,虚拟内容可能需要更长的时间来更新,因为AR设备必须处理环境数据、渲染虚拟内容,然后投影虚拟内容。该过程在物理对象被AR设备跟踪的时间与渲染的虚拟对象被显示在AR设备的显示器中的时间之间创建了延迟。这种延迟也被称为“运动到光子延迟”。任何可感知的运动到光子延迟都会降低用户的体验。
附图说明
为了容易地标识对任何特定元素或动作的讨论,附图标记中的一个或多个最高位数字指代该元素被首次引入时所在的图号。
图1是示出根据一个示例实施方式的用于操作AR设备的环境的框图。
图2是示出根据一个示例实施方式的AR/VR显示设备的框图。
图3是示出根据一个示例实施方式的视觉跟踪***的框图。
图4是示出根据一个示例实施方式的显示器控制器的框图。
图5是示出根据一个示例实施方式的动态过度渲染模块的框图。
图6是示出根据一个示例实施方式的动态过度渲染过程的框图。
图7是示出根据一个示例实施方式的关于动态过度渲染的过程的流程图。
图8示出了根据一个示例实施方式的动态过度渲染区域的示例。
图9示出了根据一个示例实施方式的动态过度渲染区域的示例。
图10是示出根据一个示例实施方式的用于在动态过度渲染区域中渲染图像的方法的流程图。
图11是示出根据一个示例实施方式的用于在动态过度渲染区域中渲染图像的方法的流程图。
图12示出了根据一个示例实施方式的其中可以实现头可穿戴装置的网络环境。
图13是示出根据示例实施方式的其内可以实现本公开内容的软件架构的框图。
图14是根据一个示例实施方式的呈计算机***形式的机器的图解表示,在该机器内,可以执行指令集合以使机器执行本文中讨论的方法中的任何一种或更多种方法。
具体实施方式
下面的描述描述了示出本主题的示例实施方式的***、方法、技术、指令序列和计算机器程序产品。在下面的描述中,出于说明的目的,阐述了许多具体细节以提供对本主题的各种实施方式的理解。然而,对于本领域技术人员而言将明显的是,可以在没有这些具体细节中的一些或其他细节的情况下实践本主题的实施方式。示例仅仅代表了可能的变型。除非另有明确说明,否则结构(例如,结构部件,诸如模块)是可选的,并且可以被组合或细分,并且操作(例如,在过程、算法或其他功能中)可以在顺序上变化或者被组合或细分。
本文中使用术语“增强现实”(AR)来指代真实世界环境的交互式体验,其中驻留在真实世界中的物理对象被计算机生成的数字内容(也称为虚拟内容或合成内容)所“增强”或加强。AR也可以指代一种***,该***实现真实世界和虚拟世界的结合,实时交互,以及虚拟对象和真实对象的3D注册。AR创建了虚拟内容在用户的真实世界环境中物理地存在的错觉,并且看起来与用户的真实世界环境附接或交互。
本文中使用术语“虚拟现实”(VR)来指代完全不同于真实世界环境的虚拟世界环境的模拟体验。计算机生成的数字内容被显示在虚拟世界环境中。VR也指代一种***,该***使得VR***的用户能够完全沉浸在虚拟世界环境中,并与存在于虚拟世界环境中的虚拟对象进行交互。
本文中使用术语“AR应用”来指代实现AR体验的计算机操作的应用。本文中使用术语“VR应用”来指代实现VR体验的计算机操作的应用。术语“AR/VR应用”指代实现AR体验或VR体验的结合的计算机操作的应用。
本文中使用术语“AR显示设备”(也称为“AR设备”)来指代操作AR应用的计算设备。本文中使用术语“VR显示设备”(也称为“VR设备”)来指代操作VR应用的计算设备。本文中使用术语“AR/VR显示设备”(也称为“AR/VR设备”)来指代操作AR应用和VR应用的组合的计算设备。
本文中使用术语“视觉跟踪***”(也称为“视觉跟踪设备”)来指代跟踪在由视觉跟踪***的一个或更多个摄像装置捕获的图像中识别的视觉特征的计算机操作的应用。视觉跟踪***基于所跟踪的视觉特征来构建真实世界环境的模型。视觉跟踪***的非限制性示例包括:视觉同步定位和映射***(VSLAM)和视觉惯性里程计(VIO)***。VSLAM可以用于基于视觉跟踪***的一个或更多个摄像装置从环境或场景构建目标。VIO(也称为视觉惯性跟踪)基于从设备的多个传感器(例如,光学传感器、惯性传感器)获取的数据来确定设备的最新姿势(例如,定位和取向)。
本文中使用术语“惯性测量单元”(IMU)来指代可以报告运动主体的惯性状态——包括运动主体的加速度、速度、取向和定位——的设备。IMU使得能够通过整合由IMU测量的加速度和角速度来跟踪主体的运动。IMU也可以指代加速度计和陀螺仪的组合,加速度计和陀螺仪可以分别确定和量化线性加速度和角速度。从IMU陀螺仪获得的值可以被处理,以获得IMU的俯仰、滚转和航向,并且因此,获得IMU与其相关联的主体的俯仰、滚转和航向。来自IMU的加速度计的信号也可以被处理,以获得IMU的速度和位移。
本文中使用术语“运动到光子延迟”(M2P延迟)来指代用户移动视觉跟踪设备与其虚拟内容的呈现适应该特定运动之间的持续时间。运动到光子延迟也可以指代与在AR设备中呈现虚拟内容相关联的延迟。随着用户移动AR设备,用户的真实世界环境的视图瞬间改变。然而,虚拟内容需要更长的时间来更新,因为AR设备必须用IMU数据处理环境数据,渲染虚拟内容,并且将虚拟内容投影到用户的视野前方。运动到光子延迟会导致虚拟内容出现抖动或滞后,并且降低用户的AR体验。
本文中使用术语“时间扭曲(time-warp)”(也称为“时间扭曲(time-warping)”、“后期扭曲(late-warp)”、“后期扭曲(late-warping)”)来指代一种重新投影技术,该技术在将所渲染的图像发送至显示器之前对其进行扭曲,以校正在渲染之后发生的头部移动。该过程取得已经渲染的图像,用从IMU最新收集的旋转数据对其进行修改,然后将扭曲的图像显示在屏幕上。
实现AR的一个问题是与呈现虚拟内容相关联的延迟。随着用户移动AR设备,用户的真实世界环境的视图瞬间改变。虚拟内容需要更长的时间来改变,因为AR显示设备必须用惯性测量单元(IMU)数据处理环境数据,渲染虚拟内容,并且将虚拟内容投影到用户的视野前方。该延迟在此被称为M2P延迟。
如前面所提及的,后期扭曲通过出于考虑姿势差异而扭曲渲染的图像来补偿M2P延迟。扭曲过程会导致接着通常保持黑色的一些像素的丢失信息。“过度渲染”是一种用于渲染比显示器上实际显示的像素更多像素的技术,以能够在后期扭曲期间填充屏幕上的所有像素。然而,过度渲染区域可能仍然大。较大的过度渲染区域(超过必要的)导致更大的内存和功耗。
本申请描述了一种用于动态地调整为其渲染附加像素的过度渲染区域的尺寸,以便减少阴影像素的数目,同时保持延迟扭曲之后的黑色像素的数目较小的方法。例如,本***基于以下各项针对特定渲染时间定义动态过度渲染函数:(a)最近姿势和线速度/角速度,(b)先前的扭曲姿势,以及(c)先前的过度渲染区域。预测不准确性和降低的渲染速率、所需的过度渲染量取决于两个扭曲姿势之间的最大预测误差或最大姿势差异(这两者都取决于AR设备的头部运动的动力学)。
在一个示例实施方式中,描述了一种用于调整AR设备中显示器的过度渲染区域的方法。该方法包括:识别显示设备的角速度、显示设备的最近姿势、先前的扭曲姿势和先前的过度渲染区域;以及基于角速度、最近姿势、先前的扭曲姿势和先前的过度渲染区域的组合来调整动态过度渲染区域的尺寸。
结果,本文中描述的方法中的一种或更多种方法有助于通过基于AR设备的姿势差异和角速度/线速度限制过度渲染区域的尺寸来解决功耗节省的技术问题。目前描述的方法通过降低计算成本、功耗和热影响来提供对计算设备的功能的操作的改进。因此,本文中描述的方法中的一种或更多种方法可以避免对某些努力或计算资源的需要。这样的计算资源的示例包括处理器周期、网络流量、存储器使用、数据存储容量、功耗、网络带宽和冷却容量。
图1是示出根据一些示例实施方式的适于操作AR设备106的环境100的网络图。环境100包括用户102、AR设备106和物理对象104。用户102操作AR设备106。用户102可以是人类用户(例如,人类)、机器用户(例如,由软件程序配置成与AR设备106交互的计算机)或其任何合适的组合(例如,由机器辅助的人类或由人类监督的机器)。用户102与AR设备106相关联。
AR设备106可以是具有显示器的计算设备,例如智能电话、平板计算机或可穿戴计算设备(例如,手表或眼镜)。计算设备可以是手持式的,或者可以可移动地安装到用户102的头部。在一个示例中,显示器包括显示用AR设备106的摄像装置捕获的图像的屏幕。在另一示例中,设备的显示器可以是透明的,例如在可穿戴计算眼镜的镜片中。在其他示例中,显示器可以是不透明的、部分透明的、部分不透明的。在其他示例中,显示器可以由用户102可穿戴以覆盖用户102的视野。
AR设备106包括基于用AR设备106的摄像装置检测到的图像来生成虚拟内容的AR应用。例如,用户102可以指引AR设备106的摄像装置捕获物理对象104的图像。AR应用生成与图像中的所识别对象(例如,物理对象104)相对应的虚拟内容,并在AR设备106的显示器中呈现该虚拟内容。
AR设备106包括视觉跟踪***108。视觉跟踪***108使用例如光学传感器(例如,启用深度的3D摄像装置、图像摄像装置)、惯性传感器(例如,陀螺仪、加速度计)、无线传感器(蓝牙、Wi-Fi)、GPS传感器和音频传感器来跟踪AR设备106相对于真实世界环境110的姿势(例如,定位和取向)。在一个示例中,AR设备106基于AR设备106相对于真实世界环境110和/或物理对象104的姿势来显示虚拟内容。
图1中示出的机器、数据库或设备中的任何一个都可以在如下通用计算机中实现,该通用计算机被软件修改(例如,配置或编程)为专用计算机,以执行本文针对该机器、数据库或设备描述的功能中的一个或更多个功能。例如,下面参照图10至图11讨论能够实现本文中描述的方法中的任何一种或更多种方法的计算机***。如本文中使用的,“数据库”是数据存储资源,并且可以存储被结构化为文本文件、表格、电子表格、关系数据库(例如,对象-关系数据库)、三元组存储、分层数据存储或其任何合适组合的数据。此外,图1中示出的机器、数据库或设备中的任何两个或更多个可以组合成单个机器,并且本文中针对任何单个机器、数据库或设备描述的功能可以在多个机器、数据库或设备之间细分。
AR设备106可以通过计算机网络进行操作。计算机网络可以是使得能够在机器、数据库和设备之间或之中进行通信的任何网络。因此,计算机网络可以是有线网络、无线网络(例如,移动或蜂窝网络)或其任何合适的组合。计算机网络可以包括构成专用网络、公共网络(例如,因特网)或其任何适当组合的一个或更多个部分。
图2是示出根据一些示例实施方式的AR设备106的模块(例如,部件)的框图。AR设备106包括传感器202、显示器204、处理器208、图形处理单元216、显示器控制器218和存储设备206。AR设备106的示例包括可穿戴计算设备(例如,眼镜)、平板计算机、导航设备、便携式媒体设备或智能电话。
传感器202包括例如光学传感器212(例如,诸如彩色摄像装置、热感摄像装置、深度传感器和一个或多个灰度、全局快门跟踪摄像装置的摄像装置)和惯性传感器214(例如,陀螺仪、加速度计、磁力计)。传感器202的其他示例包括接近传感器或位置传感器(例如,近场通信、GPS、蓝牙、Wifi)、音频传感器(例如,麦克风)或其任何合适的组合。注意,本文中描述的传感器202是为了说明的目的,并且因此传感器202不限于上述的传感器。
显示器204包括被配置成显示由处理器208生成的图像的屏幕或监视器。在一个示例实施方式中,显示器204可以是透明或半透明的,使得用户102可以透过显示器204观看(在AR用例中)。在另一示例中,显示器204(例如,LCOS显示器)在多个呈现中呈现虚拟内容的每个帧。
处理器208包括AR应用210和视觉跟踪***108。AR应用210使用计算机视觉来检测和识别物理环境或物理对象104。AR应用210基于所识别的物理对象104或物理环境来检索虚拟对象(例如,3D对象模型)。AR应用210在显示器204中呈现虚拟对象。对于AR应用,AR应用210包括本地渲染引擎,该本地渲染引擎渲染覆盖(例如,叠加在其上或者以其他方式与其一起显示)在物理对象104的图像或视图上的虚拟对象的3D模型。可以通过调整物理对象104相对于光学传感器212的定位(例如,其物理位置、取向或两者)来操纵虚拟对象的视图。类似地,可以通过调整AR设备106相对于104的姿势来操纵虚拟对象的视图。对于VR应用,AR应用210在基于AR设备106的姿势确定的位置(在显示器204中)处在显示器204中显示虚拟对象。
在一个示例实施方式中,视觉跟踪***108估计AR设备106的姿势。例如,视觉跟踪***108使用来自光学传感器212和惯性传感器214的图像数据和对应的惯性数据来跟踪AR设备106相对于参照系(例如,真实世界环境110)的位置和姿势。在一个示例中,视觉跟踪***108使用传感器数据来确定AR设备106的三维姿势。三维姿势是AR设备106相对于用户的真实世界环境110的确定的取向和定位。例如,AR设备106可以使用用户的真实世界环境110的图像以及其他传感器数据来识别AR设备106与AR设备106周围的真实世界环境110中的物理对象的相对定位和取向。视觉跟踪***108持续收集并使用描述AR设备106的移动的更新的传感器数据来确定AR设备106的更新的三维姿势,所述更新的三维姿势指示AR设备106与真实世界环境110中的物理对象的相对定位和取向的变化。视觉跟踪***108向图形处理单元216提供AR设备106的三维姿势。
图形处理单元216包括渲染引擎(未示出),该渲染引擎被配置成基于由AR应用210提供的虚拟内容和由视觉跟踪***108提供的姿势来渲染虚拟对象的3D模型的帧。换言之,图形处理单元216使用AR设备106的三维姿势来生成要在显示器204上呈现的虚拟内容的帧。例如,图形处理单元216使用三维姿势来渲染虚拟内容的帧,使得虚拟内容在显示器204中以适当的取向和定位呈现,以适当地增强用户的真实性。作为示例,图形处理单元216可以使用三维姿势数据来渲染虚拟内容的帧,使得当呈现在显示器204上时,虚拟内容与用户的真实世界环境110中的物理对象重叠。图形处理单元216基于AR设备106的更新的三维姿势生成虚拟内容的更新帧,其反映了用户相对于用户的真实世界环境110中的物理对象的定位和取向的变化。图形处理单元216将渲染的帧传送到显示器控制器218。
显示器控制器218被定位为图形处理单元216与显示器204之间的中间机构。显示器控制器218从图形处理单元216接收图像数据(例如,渲染的帧),通过重新调整渲染的虚拟内容在时间扭曲的帧中的位置来扭曲所渲染的帧。显示器控制器218基于AR设备106的最新姿势和(被跟踪的物理对象的、虚拟对象的预设动画的、具有不同运动的多个物理对象的)最新跟踪信息来执行后期扭曲变换。显示器控制器218将时间扭曲的帧提供给显示器204以用于显示。
存储设备206存储虚拟对象内容220。虚拟对象内容220包括例如视觉参考(例如,图像、QR码)和对应虚拟内容(例如,虚拟对象的三维模型)的数据库。
本文中描述的模块中的任何一个或更多个模块可以使用硬件(例如,机器的处理器)或硬件和软件的组合来实现。例如,本文中描述的任何模块都可以将处理器配置成执行本文中针对该模块描述的操作。此外,这些模块中的任何两个或更多个可以组合成单个模块,并且本文中针对单个模块描述的功能可以在多个模块之间细分。此外,根据各种示例实施方式,本文中描述为在单个机器、数据库或设备内实现的模块可以跨多个机器、数据库或设备分布。
图3是示出根据一个示例实施方式的视觉跟踪***的框图。视觉跟踪***108包括例如惯性传感器模块302、光学传感器模块304和姿势估计模块306。惯性传感器模块302访问来自惯性传感器214的惯性传感器数据。光学传感器模块304访问来自光学传感器212的光学传感器数据。
姿势估计模块306确定AR设备106相对于参照系(例如,真实世界环境110)的姿势(例如,位置、定位、取向)。在一个示例实施方式中,姿势估计模块306包括VIO***,该VIO***基于来自用光学传感器212捕获的图像的特征点的3D地图和用惯性传感器214捕获的惯性传感器数据来估计AR设备106的姿势。
例如,姿势估计模块306操作跟踪在由AR设备106的光学传感器212捕获的图像中识别的视觉特征(例如,3D特征点)的应用。视觉跟踪***108基于跟踪的视觉特征构建真实世界环境的模型。视觉跟踪***108包括例如视觉同步定位和映射***(VSLAM)或视觉惯性里程计(VIO)***。VSLAM可以用于基于视觉跟踪***108的一个或更多个摄像装置从环境或场景构建目标。VIO(也称为视觉惯性跟踪)基于从设备的多个传感器(例如,光学传感器、惯性传感器)获取的数据来确定设备的最新姿势(例如,定位和取向)。
图4是示出根据一个示例实施方式的显示器控制器218的框图。显示器控制器218包括动态过度渲染引擎402和时间扭曲引擎404。
时间扭曲引擎404访问AR设备106的来自视觉跟踪***108的最新姿势。时间扭曲引擎404基于AR设备106的姿势(用于计算渲染帧)和AR设备106的最新姿势(由视觉跟踪***108提供给显示器控制器218)来重新投影用图形处理单元216生成的渲染帧。
动态过度渲染引擎402动态地调整渲染帧的过度渲染区域的尺寸。为了使时间扭曲正确地操作,渲染帧的尺寸应大于显示器204的尺寸。否则,当时间扭曲引擎404将所渲染的图像移位时,时间扭曲引擎404可能最终将空像素移位到可见区域中。在一个示例实施方式中,动态过度渲染引擎402基于以下各项的组合来调整渲染帧的尺寸:(a)视觉跟踪***108的最近姿势和视觉跟踪***108的线速度/角速度,(b)视觉跟踪***108的先前扭曲姿势,以及(c)来自动态过度渲染引擎402的先前过度渲染区域。调整后的过度渲染帧被提供给显示器204以用于显示。动态过度渲染引擎402的示例部件在下面参照图5进一步描述。
图5是示出根据一个示例实施方式的动态过度渲染引擎402的框图。动态过度渲染引擎402包括最近姿势模块508、角速度模块510、扭曲姿势历史模块512、过度渲染区域历史模块514和过度渲染区域估计器502。
最近姿势模块508识别AR设备106的最近姿势。例如,最近姿势模块508基于来自视觉跟踪***108的最新VIO数据来访问AR设备106的最新姿势。
角速度模块510识别AR设备106的角速度。在一个示例中,角速度模块510从IMU取得角速度。在另一示例中,角速度模块510根据(来自视觉跟踪***108的)VIO数据估计角速度。
扭曲姿势历史模块512识别由时间扭曲引擎404先前生成的扭曲姿势。例如,扭曲姿势历史模块512检索与由视觉跟踪***108识别的最后姿势相对应的扭曲姿势。扭曲姿势历史模块512可以将预设数目的最后扭曲姿势存储在存储设备206中。
过度渲染区域历史模块514识别由动态过度渲染引擎402先前生成的过度渲染区域。例如,过度渲染区域历史模块514检索与最后扭曲姿势或最后姿势相对应的过度渲染区域。过度渲染区域历史模块514可以将预设数目的最后过度渲染区域存储在存储设备206中。
过度渲染区域估计器502访问来自最近姿势模块508的最近姿势数据、来自角速度模块510的角速度数据、来自扭曲姿势历史模块512的扭曲姿势历史数据以及来自过度渲染区域历史模块514的过度渲染区域历史数据。过度渲染区域估计器502基于最近姿势数据、角速度数据、扭曲姿势历史数据和过度渲染区域历史数据来调整过度渲染区域的尺寸。
在一个示例实施方式中,过度渲染区域估计器502包括启发式模块504和机器学习模块506。启发式模块504对最近姿势数据、角速度数据、扭曲姿势历史数据和过度渲染区域历史数据执行基于启发式的计算方法,以估计需要由时间扭曲引擎404渲染的所需区域。在另一示例中,启发式模块504对接收的数据执行统计分析,以估计所需区域。
机器学习模块506基于最近姿势数据、角速度数据、扭曲姿势历史数据和过度渲染区域历史数据生成训练数据。机器学习模块506使用训练数据来训练模型,该模型基于不同的参数来识别过度渲染区域的尺寸。然后,经训练的模型可以用于识别最佳过度渲染区域。在另一示例中,过度渲染区域估计器502使用启发式模块504和机器学习模块506的组合来估计最佳过度渲染区域。
图6是示出根据一个示例实施方式的示例过程的框图。视觉跟踪***108接收来自传感器202的传感器数据,以确定AR设备106的姿势(例如,姿势a)。视觉跟踪***108向图形处理单元216提供姿势。图形处理单元216使用3D渲染引擎602来基于用视觉跟踪***108确定的旋转姿势(例如,姿势a)在(在显示器204中的)第一位置处渲染(由AR应用210提供的)虚拟内容的帧(例如,帧a)。图形处理单元216将渲染的帧(例如,帧a)提供给显示器控制器218。
显示器控制器218接收来自视觉跟踪***108的最新姿势(例如,姿势b)。换言之,姿势b是AR设备106的比姿势a更近的姿势。动态过度渲染引擎402动态地调整渲染帧的过度渲染区域的尺寸。
时间扭曲引擎404通过对渲染帧(例如,帧a)执行时间扭曲操作来重新投影渲染帧,以生成新的帧(例如,帧b)。显示器控制器218将帧b传送给显示器204以用于显示。
图7是示出根据一个示例实施方式的关于动态过度渲染的过程700的流程图。在框702中,视觉跟踪***108识别AR设备106的角速度和最近姿势。在框706中,动态过度渲染引擎402识别先前的扭曲姿势。在框708中,动态过度渲染引擎402识别先前的过度渲染区域。在框704中,动态过度渲染引擎402基于最近姿势、角速度、先前的扭曲姿势或先前的过度渲染区域来动态地调整过度渲染区域。
要注意的是,其他实施方式可以使用不同的排序、附加或更少的操作以及不同的命名或术语来实现类似的功能。在一些实施方式中,各种操作可以以同步或异步的方式与其他操作并行执行。本文中描述的操作被选择来以简化的形式说明一些操作原理。
图8示出了根据一个示例实施方式的动态过度渲染区域的示例。例如,动态过度渲染区域806的尺寸小于过度渲染区域802的尺寸,并且大于屏幕尺寸804。
图9示出了根据一个示例实施方式的动态过度渲染区域的示例。将AR设备106指向tn处的视图902,以在时间tn捕获物理对象908的图像。AR设备106的屏幕910在第一位置处显示了与物理对象908相对应的渲染的虚拟对象的图像。
将AR设备106指向tn+1处的视图906,以在时间tn+1捕获物理对象908的图像。AR设备106的屏幕910在第二位置处显示了与物理对象908相对应的渲染的虚拟对象的图像。
视觉跟踪***108确定渲染姿势处的视图904,并且将tn的过度渲染区域912(对应于扭曲姿势tn)与tn+1的过度渲染区域914(对应于扭曲姿势tn+1)组合。
图10是示出根据一个示例实施方式的用于在动态过度渲染区域中渲染图像的方法1000的流程图。方法1000中的操作可以由AR设备106使用上面参照图2描述的部件(例如,模块、引擎)来执行。因此,参考AR设备106通过示例的方式描述了方法1000。然而,应当理解,方法1000的操作中的至少一些操作可以被部署在各种其他硬件配置上,或者由驻留在别处的类似部件来执行。
在框1002中,AR设备106在动态过度渲染区域中渲染图像。例如,图形处理单元216渲染图像。在框1004中,AR设备106基于AR设备106的最近姿势将变换应用于渲染的图像。例如,显示器控制器218确定过度渲染区域的尺寸,并且将时间扭曲算法应用于对应于过度渲染区域的渲染图像。在框1006中,AR设备106显示变换后的图像。例如,显示器204投影扭曲的图像。
要注意的是,其他实施方式可以使用不同的排序、附加或更少的操作以及不同的命名或术语来实现类似的功能。在一些实施方式中,各种操作可以以同步或异步的方式与其他操作并行执行。本文中描述的操作被选择来以简化的形式说明一些操作原理。
图11是示出根据一个示例实施方式的用于在动态过度渲染区域中渲染图像的方法1100的流程图。方法1100中的操作可以由AR设备106使用上面参照图2描述的部件(例如,模块、引擎)来执行。因此,参考AR设备106通过示例的方式描述了方法1100。然而,应当理解,方法1100的操作中的至少一些操作可以被部署在各种其他硬件配置上,或者由驻留在别处的类似部件来执行。
在框1102中,AR设备106确定第一姿势。在一个示例实施方式中,视觉跟踪***108识别AR设备106的第一姿势。在框1104中,AR设备106访问虚拟内容。在一个示例实施方式中,AR应用210访问来自存储设备206的虚拟对象内容220。
在框1106中,AR设备106识别动态过度渲染区域的尺寸。在一个示例实施方式中,动态过度渲染引擎402确定过度渲染区域的尺寸。在框1108中,AR设备106使用图形处理单元216的渲染引擎来在动态过度渲染区域中渲染第一帧中的虚拟内容的3D模型。在框1110中,时间扭曲引擎404对渲染的3D模型应用变换。
具有头可穿戴装置的***
图12示出了根据一个示例实施方式的其中可以实现头可穿戴装置1202的网络环境1200。图12是示例头可穿戴装置1202的高级功能框图,该示例头可穿戴装置1202经由各种网络1240通信地耦接移动客户端设备1238和服务器***1232。
头可穿戴装置1202包括摄像装置,诸如可见光摄像装置1212、红外发射器1214和红外摄像装置1216中的至少一个。客户端设备1238可以能够使用通信1234和通信1236两者与头可穿戴装置1202连接。客户端设备1238连接至服务器***1232和网络1240。网络1240可以包括有线连接和无线连接的任何组合。
头可穿戴装置1202还包括光学组件的图像显示器1204的两个图像显示器。光学组件的图像显示器1204的两个图像显示器包括与头可穿戴装置1202的左横向侧相关联的一个图像显示器和与右横向侧相关联的一个图像显示器。头可穿戴装置1202还包括图像显示器驱动器1208、图像处理器1210、低功率低功率电路***1226和高速电路***1218。光学组件的图像显示器1204用于向头可穿戴装置1202的用户呈现图像和视频,所述图像和视频包括可以包括图形用户界面的图像。
图像显示器驱动器1208命令并控制光学组件的图像显示器1204的图像显示器。图像显示器驱动器1208可以将图像数据直接递送至光学组件的图像显示器1204的图像显示器,以用于呈现,或者可以必须将图像数据转换成适合于递送至图像显示设备的信号或数据格式。例如,图像数据可以是根据压缩格式(诸如H.264(MPEG-4)、HEVC、Theora、Dirac、RealVideo RV40、VP8、VP9等)格式化的视频数据,以及静止图像数据可以根据压缩格式(诸如便携式网络组(PNG)、联合摄影专家组(JPEG)、标签图像文件格式(TIFF)或可交换图像文件格式(Exif)等)而被格式化。
如上所述,头可穿戴装置1202包括框架和从框架的横向侧延伸的柄(或镜腿)。头可穿戴装置1202还包括用户输入设备1206(例如,触摸传感器或按钮),该用户输入设备1206包括头可穿戴装置1202上的输入表面。用户输入设备1206(例如,触摸传感器或按钮)是为了从用户接收输入选择,以操纵呈现的图像的图形用户接口。
图12中示出的用于头可穿戴装置1202的部件位于镜框或镜腿中的一个或更多个电路板(例如PCB或柔性PCB)上。可替选地或附加地,所描绘的部件可以位于头可穿戴装置1202的块、框架、铰链或鼻梁架中。左边和右边可以包括数字摄像装置元件,诸如互补金属氧化物半导体(CMOS)图像传感器、电荷耦合器件、摄像装置透镜、或可以用于捕获数据的任何其他相应可见或光捕获元件,所述数据包括具有未知对象的场景图像。
头可穿戴装置1202包括存储器1222,该存储器1222存储执行本文中描述的功能的子集或全部的指令。存储器1222还可以包括存储设备。
如图12中所示,高速电路***1218包括高速处理器1220、存储器1222和高速无线电路***1224。在示例中,图像显示器驱动器1208耦接至高速电路***1218并由高速处理器1220操作,以驱动光学组件的图像显示器1204的左图像显示器和右图像显示器。高速处理器1220可以是能够管理头可穿戴装置1202所需的任何一般计算***的操作和高速通信的任何处理器。高速处理器1220包括管理使用高速无线电路***1224在通信1236到无线局域网(WLAN)上的高速数据传输所需的处理资源。在某些示例中,高速处理器1220执行操作***(诸如LINUX操作***或头可穿戴装置1202的其他这样的操作***),并且操作***被存储在存储器1222中以用于执行。除了任何其他职责之外,使用执行头可穿戴装置1202的软件架构的高速处理器1220来管理与高速无线电路***1224的数据传输。在某些示例中,高速无线电路***1224被配置成实现电气和电子工程师协会(IEEE)802.11通信标准(在本文中也被称为Wi-Fi)。在其他示例中,其他高速通信标准可以通过高速无线电路***1224来实现。
头可穿戴装置1202的低功率无线电路***1230和高速无线电路***1224可以包括短程收发器(蓝牙TM)和无线广域网、局域网或广域网收发器(例如,蜂窝或WiFi)。可以使用头可穿戴装置1202的架构的细节来实现包括经由通信1234和通信1236进行通信的收发器的客户端设备1238,网络1240的其他元件也可以。
存储器1222包括能够存储各种数据和应用的任何存储设备,所述各种数据和应用包括除其他外的由左和右红外摄像装置1216和图像处理器1210生成的摄像装置数据、以及由图像显示器驱动器1208生成的以在光学组件的图像显示器1204的图像显示器上显示的图像。虽然存储器1222被示出为与高速电路***1218集成,但是在其他示例中,存储器1222可以是头可穿戴装置1202的独立的独立元件。在某些这样的示例中,电路由线可以提供通过包括高速处理器1220的芯片从图像处理器1210或低功率处理器1228至存储器1222的连接。在其他示例中,高速处理器1220可以管理存储器1222的寻址,使得低功率处理器1228将在需要涉及存储器1222的读或写操作的任何时间启动高速处理器1220。
如图12中所示,头可穿戴装置1202的低功率处理器1228或高速处理器1220可以耦接至摄像装置(可见光摄像装置1212;红外发射器1214或红外摄像装置1216)、图像显示器驱动器1208、用户输入设备1206(例如,触摸传感器或按钮)和存储器1222。
头可穿戴装置1202与主机计算机连接。例如,头可穿戴装置1202经由通信1236与客户端设备1238配对,或者经由网络1240连接至服务器***1232。服务器***1232可以是作为服务或网络计算***的一部分的一个或更多个计算设备,例如,所述一个或更多个计算设备包括处理器、存储器和通过网络1240与客户端设备1238和头可穿戴装置1202进行通信的网络通信接口。
客户端设备1238包括处理器和耦接至处理器的网络通信接口。网络通信接口允许通过网络1240、通信1234或通信1236进行通信。客户端设备1238还可以在客户端设备1238的存储器中存储用于生成双声道音频内容的指令的至少一部分,以实现本文中描述的功能。
头可穿戴装置1202的输出部件包括视觉部件,诸如显示器(诸如液晶显示器(LCD)、等离子显示面板(PDP)、发光二极管(LED)显示器、投影仪或波导)。光学组件的图像显示器由图像显示器驱动器1208驱动。头可穿戴装置1202的输出部件还包括声学部件(例如,扬声器)、触觉部件(例如,振动马达)、其他信号发生器等。头可穿戴装置1202、客户端设备1238和服务器***1232的输入部件(诸如用户输入设备1206)可以包括字母数字输入部件(例如,键盘、被配置成接收字母数字输入的触摸屏、光电键盘或其他字母数字输入部件)、基于点的输入部件(例如,鼠标、触摸板、轨迹球、操纵杆、运动传感器或其他定点仪器)、触觉输入部件(例如,物理按钮、提供触摸或触摸姿势的位置和力的触摸屏,或其他触觉输入部件)、音频输入部件(例如,麦克风)等。
头可穿戴装置1202可以可选地包括附加的***设备元件。这样的***设备元件可以包括生物计量传感器、附加传感器或与头可穿戴装置1202集成的显示元件。例如,***设备元件可以包括任何I/O部件,所述I/O部件包括输出部件、运动部件、定位部件或本文中描述的任何其他这样的元件。
例如,生物计量部件包括检测表达(例如,手部表达、面部表达、声音表达、身体姿势或眼睛追踪)、测量生物信号(例如,血压、心率、体温、出汗或脑电波)、识别人(例如,语音识别、视网膜识别、面部识别、指纹识别或基于脑电图的识别)等的部件。运动部件包括加速度传感器部件(例如,加速度计)、重力传感器部件、旋转传感器部件(例如,陀螺仪)等。定位部件包括生成位置坐标的位置传感器部件(例如,全球定位***(GPS)接收器部件)、生成定位***坐标的WiFi或蓝牙TM收发器、海拔传感器部件(例如,检测气压的高度计或气压计,根据气压可以得到海拔)、取向传感器部件(例如,磁力计)等。这种定位***坐标也可以经由低功率无线电路***1230或高速无线电路***1224从客户端设备1238通过通信1236被接收。
在使用类似于“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。
在不脱离本公开内容的范围的情况下,可以对所公开的实施方式进行改变和修改。这些及其他改变或修改旨在被包括在所附权利要求书中所表达的本公开内容的范围内。
图13是示出软件架构1304的框图1300,该软件架构可以安装在本文中描述的设备中的任何一个或更多个设备上。软件架构1304由诸如机器1302的硬件支持,机器1302包括处理器1320、存储器1326和I/O部件1338。在该示例中,软件架构1304可以被概念化为层的堆叠,其中每个层提供特定的功能。软件架构1304包括诸如操作***1312、库1310、框架1308和应用1306的层。在操作上,应用1306通过软件堆栈来激活API调用1350并且响应于API调用1350接收消息1352。
操作***1312管理硬件资源并且提供公共服务。操作***1312包括例如内核1314、服务1316和驱动器1322。内核1314用作硬件和其他软件层之间的抽象层。例如,内核1314提供存储器管理、处理器管理(例如,调度)、部件管理、联网和安全设置以及其他功能。服务1316可以为其他软件层提供其他公共服务。驱动器1322负责控制底层硬件或与底层硬件对接。例如,驱动器1322可以包括显示器驱动器、摄像装置驱动器、低能耗驱动器、闪存驱动器、串行通信驱动器(例如,通用串行总线(USB)驱动器)、/>驱动器、音频驱动器、电力管理驱动器等。
库1310提供由应用1306使用的低级别公共基础设施。库1310可以包括***库1318(例如,C标准库),该***库1318提供诸如存储器分配功能、字符串操纵功能、数学功能等的功能。另外,库1310可以包括API库1324,例如媒体库(例如,用于支持各种媒体格式的呈现和操纵的库,所述各种媒体格式例如运动图像专家组-4(MPEG4)、高级视频编码(H.264或AVC)、运动图像专家组层-3(MP3)、高级音频编码(AAC)、自适应多速率(AMR)音频编解码器、联合图像专家组(JPEG或JPG)或便携式网络图形(PNG))、图形库(例如,用于在显示器上的图形内容中以二维(2D)和三维(3D)呈现的OpenGL框架)、数据库库(例如,提供各种关系数据库功能的SQLite)、web库(例如,提供web浏览功能的WebKit)等。库1310还可以包括各种的其他库1328,以向应用1306提供许多其他API。
框架1308提供由应用1306使用的高级别公共基础设施。例如,框架1308提供各种图形用户界面(GUI)功能、高级别资源管理和高级别定位服务。框架1308可以提供可以由应用1306使用的广泛的其他API,其中一些可以专用于特定的操作***或平台。
在示例实施方式中,应用1306可以包括家庭应用1336、联系人应用1330、浏览器应用1332、书籍阅读器应用1334、位置应用1342、媒体应用1344、消息收发应用1346、游戏应用1348、以及诸如第三方应用1340的各种各样的其他应用。应用1306是执行程序中限定的功能的程序。可以采用各种编程语言来创建以各种方式构造的应用1306中的一个或更多个,编程语言例如面向对象的编程语言(例如Objective-C、Java或C++)或过程编程语言(例如C语言或汇编语言)。在特定示例中,第三方应用1340(例如,由特定平台的供应商以外的实体使用ANDROIDTM或IOSTM软件开发工具包(SDK)开发的应用)可以是在诸如IOSTM、ANDROIDTMPhone或Linux OS的移动操作***或其他移动操作***上运行的移动软件。在该示例中,第三方应用1340可以激活操作***1312所提供的API调用1350来促进本文中描述的功能。
图14是机器1400的图解表示,在该机器1400内,可以执行用于使机器1400执行本文所讨论的方法中的任何一种或更多种方法的指令1408(例如,软件、程序、应用、小程序、app或其他可执行代码)。例如,指令1408可以使机器1400执行本文中描述的方法中的任何一种或更多种方法。指令1408将通用的未经编程的机器1400转换成被编程为以所描述的方式执行所描述和所示出的功能的特定机器1400。机器1400可以作为独立设备操作,或者可以耦接(例如,联网)至其他机器。在联网部署中,机器1400可以在服务器-客户端网络环境中以服务器机器或客户端机器的身份进行操作,或者在对等(或分布式)网络环境中作为对等机器进行操作。机器1400可以包括但不限于:服务器计算机、客户端计算机、个人计算机(PC)、平板计算机、膝上型计算机、上网本、机顶盒(STB)、PDA、娱乐媒体***、蜂窝电话、智能电话、移动设备、可穿戴设备(例如,智能手表)、智能家居设备(例如,智能电器)、其他智能设备、web设备、网络路由器、网络交换机、网络桥接器或能够顺序地或以其他方式执行指定要由机器1400采取的动作的指令1408的任何机器。此外,虽然仅示出了单个机器1400,但是术语“机器”还应当被视为包括单独地或联合地执行指令1408以执行本文中讨论的方法中的任何一种或更多种方法的机器的集合。
机器1400可以包括可以被配置成经由总线1444彼此通信的处理器1402、存储器1404和I/O部件1442。在示例实施方式中,处理器1402(例如,中央处理单元(CPU)、精简指令集计算(RISC)处理器、复杂指令集计算(CISC)处理器、图形处理单元(GPU)、数字信号处理器(DSP)、ASIC、射频集成电路(RFIC)、其他处理器或其任何合适的组合)可以包括例如执行指令1408的处理器1406和处理器1410。术语“处理器”旨在包括多核处理器,所述多核处理器可以包括可以同时执行指令的两个或更多个独立的处理器(有时被称为“核”)。尽管图14示出了多个处理器1402,但是机器1400可以包括具有单个核的单个处理器、具有多个核的单个处理器(例如,多核处理器)、具有单个核的多个处理器、具有多个核的多个处理器或其任何组合。
存储器1404包括主存储器1412、静态存储器1414和存储单元1416,所述主存储器1412、静态存储器1414和存储单元1416均可由处理器1402经由总线1444访问。主存储器1404、静态存储器1414和存储单元1416存储体现本文所描述的方法或功能中的任何一种或更多种方法或功能的指令1408。指令1408在其被机器1400执行期间还可以完全地或部分地驻留在主存储器1412内、在静态存储器1414内、在存储单元1416内的机器可读介质1418内、在处理器1402中的至少一个处理器内(例如,在处理器的高速缓存存储器内)、或者在其任何合适的组合内。
I/O部件1442可以包括接收输入、提供输出、产生输出、传送信息、交换信息、捕获测量结果等的各种各样的部件。包括在特定机器中的具体I/O部件1442将取决于机器的类型。例如,便携式机器诸如移动电话可以包括触摸输入设备或其他这样的输入机构,而无头服务器机器将不太可能包括这样的触摸输入设备。应当理解,I/O部件1442可以包括在图14中未示出的许多其他部件。在各种示例实施方式中,I/O部件1442可以包括输出部件1428和输入部件1430。输出部件1428可以包括视觉部件(例如,诸如等离子显示面板(PDP)、发光二极管(LED)显示器、液晶显示器(LCD)、投影仪或阴极射线管(CRT)的显示器)、声学部件(例如,扬声器)、触觉部件(例如,振动马达、阻力机构)、其他信号发生器等。输入部件1430可以包括字母数字输入部件(例如,键盘、被配置成接收字母数字输入的触摸屏、光电键盘或其他字母数字输入部件)、基于点的输入部件(例如,鼠标、触摸板、轨迹球、操纵杆、运动传感器或其他定点仪器)、触觉输入部件(例如,物理按钮、提供触摸或触摸姿势的位置和/或力的触摸屏或其他触觉输入部件)、音频输入部件(例如,麦克风)等。
在其他示例实施方式中,I/O部件1442可以包括生物计量部件1432、运动部件1434、环境部件1436或定位部件1438以及各种其他部件。例如,生物计量部件1432包括检测表达(例如,手部表达、面部表达、声音表达、身体姿势或眼睛追踪)、测量生物信号(例如,血压、心率、体温、出汗或脑电波)、识别人(例如,语音识别、视网膜识别、面部识别、指纹识别或基于脑电图的识别)等的部件。运动部件1434包括加速度传感器部件(例如,加速度计)、重力传感器部件、旋转传感器部件(例如,陀螺仪)等。环境部件1436包括例如照明传感器部件(例如,光度计)、温度传感器部件(例如,检测环境温度的一个或更多个温度计)、湿度传感器部件、压力传感器部件(例如,气压计)、听觉传感器部件(例如,检测背景噪声的一个或更多个麦克风)、接近传感器部件(例如,检测附近对象的红外传感器)、气体传感器(例如,用于出于安全而检测危险气体浓度或测量大气中污染物的气体检测传感器)、或者可以提供与周围物理环境对应的指示、测量或信号的其他部件。定位部件1438包括位置传感器部件(例如,GPS接收器部件)、海拔传感器部件(例如,检测可以从中得出海拔的气压的高度计或气压计)、取向传感器部件(例如,磁力计)等。
可以使用各种各样的技术来实现通信。I/O部件1442还包括通信部件1440,通信部件1440可操作成分别经由耦接1424和耦接1426将机器1400耦接至网络1420或设备1422。例如,通信部件1440可以包括网络接口部件或另一合适的设备以与网络1420对接。在其他示例中,通信部件1440可以包括有线通信部件、无线通信部件、蜂窝通信部件、近场通信(NFC)部件、部件(例如,/>低能耗)、/>部件以及用于经由其他模态提供通信的其他通信部件。设备1422可以是另一机器或各种***设备中的任何***设备(例如,经由USB耦接的***设备)。
此外,通信部件1440可以检测标识符或包括可操作以检测标识符的部件。例如,通信部件1440可以包括射频识别(RFID)标签阅读器部件、NFC智能标签检测部件、光学阅读器部件(例如,用于检测诸如通用产品代码(UPC)条形码的一维条形码、诸如快速响应(QR)码的多维条形码、Aztec码、数据矩阵、数据符号(Dataglyph)、最大码(MaxiCode)、PDF417、超码(Ultra Code)、UCC RSS-2D条形码和其他光学码的光学传感器)或声学检测部件(例如,用于识别标记的音频信号的麦克风)。另外,可以经由通信部件1440得出各种信息,例如经由因特网协议(IP)地理定位的位置、经由信号三角测量的位置、经由检测可以指示特定位置的NFC信标信号的位置等。
各种存储器(例如,存储器1404、主存储器1412、静态存储器1414和/或处理器1402的存储器)和/或存储单元1416可以存储由本文中所描述的方法或功能中的任何一个或更多个实现或使用的一组或更多组指令和数据结构(例如,软件)。这些指令(例如,指令1408)在由处理器1402执行时使各种操作实现所公开的实施方式。
可以经由网络接口设备(例如,包括在通信部件1440中的网络接口部件)使用传输介质并且使用多个公知的传输协议中任何一个传输协议(例如,超文本传输协议(HTTP))通过网络1420来发送或接收指令1408。类似地,可以使用传输介质经由与设备1422的耦接1426(例如,对等耦接)来发送或接收指令1408。
如本文中使用的,术语“机器存储介质”、“设备存储介质”和“计算机存储介质”意指相同的事物,并且在本公开内容中可以互换地使用。这些术语指代存储可执行指令和/或数据的单个或多个存储设备和/或介质(例如,集中式或分布式数据库,和/或相关联的高速缓存和服务器)。因此,这些术语应当被视为包括但不限于固态存储器以及光学和磁性介质,包括处理器内部或外部的存储器。机器存储介质、计算机存储介质和/或设备存储介质的具体示例包括:非易失性存储器,包括例如半导体存储器设备,例如可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、现场可编程门阵列(FPGA)和闪存设备;磁盘,例如内部硬盘和可移动磁盘;磁光盘;以及CD-ROM和DVD-ROM盘。术语“机器存储介质”、“计算机存储介质”和“设备存储介质”明确地排除了载波、调制数据信号和其他这样的介质,载波、调制数据信号和其他这样的介质中的至少一些被涵盖在下面讨论的术语“信号介质”下。
术语“传输介质”和“信号介质”意指相同的事物,并且在本公开内容中可以互换地使用。术语“传输介质”和“信号介质”应当被视为包括能够存储、编码或承载由机器1400执行的指令1416的任何无形介质,并且包括数字或模拟通信信号或其他无形介质以促进这种软件的通信。因此,术语“传输介质”和“信号介质”应当被视为包括任何形式的调制数据信号、载波等。术语“调制数据信号”意指其各个特性中的一个或更多个特性以将信息编码在信号中的方式设置或改变的信号。
术语“机器可读介质”、“计算机可读介质”和“设备可读介质”意指相同的事物,并且在本公开内容中可以互换地使用。这些术语被定义成包括机器存储介质和传输介质两者。因此,这些术语包括存储设备/介质和载波/调制数据信号两者。
尽管已经参考特定示例实施方式描述了实施方式,但是将明显的是,在不脱离本公开内容的更广泛范围的情况下,可以对这些实施方式进行各种修改和改变。因此,说明书和附图应被认为是说明性的意义,而不是限制性的意义。形成本公开内容的一部分的附图通过说明而非限制的方式示出了其中可以实践主题的具体实施方式。所示的实施方式被足够详细地描述,以使得本领域技术人员能够实践本文公开的教导。可以利用并由此得出其他实施方式,使得可以在不脱离本公开内容的范围的情况下进行结构和逻辑替换和改变。因此,具体实施方式不应当被理解为限制性意义,并且各种实施方式的范围仅由所附权利要求以及这些权利要求所赋予的等效内容的全部范围来限定。
本发明主题的这些实施方式在本文中可以单独和/或集体地通过术语“发明”来指代,这仅仅是为了方便,并且如果事实上公开了一个以上的发明或发明构思,则并不旨在自愿地将本申请的范围限制为任何单个发明或发明构思。因此,尽管本文中已经示出和描述了具体实施方式,但是应当理解,计算以实现相同目的的任何布置都可以替代所示的具体实施方式。本公开内容旨在覆盖各种实施方式的任何和所有改编或变化。在回顾上述描述后,上述实施方式和本文未具体描述的其他实施方式的组合对于本领域技术人员来说将是明显的。
提供本公开内容的摘要以允许读者快速确定本技术公开内容的性质。以这样的理解提交摘要:即摘要将不用于解释或限制权利要求的范围或含义。此外,在前面的具体实施方式中,可以看出,出于简化本公开内容的目的,各种特征在单个实施方式中被组合在一起。本公开内容的该方法不应被解释为反映所要求保护的实施方式需要比在每个权利要求中明确叙述的特征更多的特征的意图。相反,如所附权利要求书所反映的,本发明主题在于少于单个公开实施方式的所有特征。因此,所述权利要求书在此被合并到具体实施方式中,其中每个权利要求独立作为单独的实施方式。
示例
示例1是一种用于调整过度渲染区域的方法,包括:识别显示设备的角速度、显示设备的最近姿势、先前的扭曲姿势和先前的过度渲染区域;以及基于角速度、最近姿势、先前的扭曲姿势和先前的过度渲染区域的组合来调整动态过度渲染区域的尺寸。
示例2包括示例1,其中,调整动态过度渲染区域的尺寸还包括:从显示设备处的惯性运动单元(IMU)取得角速度;检测到角速度超过阈值;以及响应于检测到角速度超过阈值,增加动态过度渲染区域的尺寸。
示例3包括示例1,其中,调整动态过度渲染区域的尺寸还包括:识别第一扭曲姿势;识别对应于第一扭曲姿势的第一过度渲染区域;识别第一扭曲姿势之后的第二扭曲姿势;识别对应于第一扭曲姿势的第二过度渲染区域;以及基于第一过度渲染区域和第二过度渲染区域形成动态过度渲染区域。
示例4包括示例3,其中,动态过度渲染区域包括第一过度渲染区域的一部分和第二过度渲染区域的一部分。
示例5包括示例1,其中,调整动态过度渲染区域的尺寸还包括:基于角速度、最近姿势、先前的扭曲姿势或先前的过度渲染区域,应用启发式算法来估计动态过度渲染区域的尺寸。
示例6包括示例1,其中,调整动态过度渲染区域的尺寸还包括:基于角速度、最近姿势、先前的扭曲姿势和先前的过度渲染区域,应用机器学习算法来估计动态过度渲染区域的尺寸。
示例7包括示例1,还包括:基于所渲染的姿势生成虚拟内容;识别动态过度渲染区域的尺寸;在动态过度渲染区域中渲染虚拟内容;基于最近姿势对所渲染的图像应用变换以生成变换后的图像;以及将变换后的图像显示在显示设备的显示器中。
示例8包括示例1,还包括:访问第一时间的来自显示设备的多个传感器的第一传感器数据;使用显示设备的跟踪***来基于第一传感器数据确定显示设备的第一姿势;访问第一时间之后的第二时间的来自显示设备的多个传感器的第二传感器数据;以及使用显示设备的跟踪***来基于第二传感器数据确定显示设备的第二姿势。
示例9包括示例1,还包括:基于显示设备的3D渲染引擎的渲染速率来调整动态过度渲染区域的尺寸。
示例10包括示例1,还包括:使用显示设备的AR应用在动态过度渲染区域中生成虚拟内容。
示例11是一种计算装置,包括:处理器;以及存储指令的存储器,所述指令在由处理器执行时将装置配置成执行操作,所述操作包括:识别显示设备的角速度、显示设备的最近姿势、先前的扭曲姿势和先前的过度渲染区域;以及基于角速度、最近姿势、先前的扭曲姿势和先前的过度渲染区域的组合来调整动态过度渲染区域的尺寸。
示例12包括示例11,其中,调整动态过度渲染区域的尺寸还包括:从显示设备处的惯性运动单元(IMU)取得角速度;检测到角速度超过阈值;以及响应于检测到角速度超过阈值,增加动态过度渲染区域的尺寸。
示例13包括示例11,其中,调整动态过度渲染区域的尺寸还包括:识别第一扭曲姿势;识别对应于第一扭曲姿势的第一过度渲染区域;识别第一扭曲姿势之后的第二扭曲姿势;识别对应于第一扭曲姿势的第二过度渲染区域;以及基于第一过度渲染区域和第二过度渲染区域形成动态过度渲染区域。
示例14包括示例13,其中,动态过度渲染区域包括第一过度渲染区域的一部分和第二过度渲染区域的一部分。
示例15包括示例11,其中,调整动态过度渲染区域的尺寸还包括:基于角速度、最近姿势、先前的扭曲姿势或先前的过度渲染区域,应用启发式算法来估计动态过度渲染区域的尺寸。
示例16包括示例11,其中,调整动态过度渲染区域的尺寸还包括:基于角速度、最近姿势、先前的扭曲姿势和先前的过度渲染区域,应用机器学习算法来估计动态过度渲染区域的尺寸。
示例17包括示例11,其中,所述指令还将装置配置成:基于所渲染的姿势生成虚拟内容;识别动态过度渲染区域的尺寸;在动态过度渲染区域中渲染虚拟内容;基于最近姿势对所渲染的图像应用变换以生成变换后的图像;以及将变换后的图像显示在显示设备的显示器中。
示例18包括示例11,其中,所述指令还将装置配置成:访问第一时间的来自显示设备的多个传感器的第一传感器数据;使用显示设备的跟踪***来基于第一传感器数据确定显示设备的第一姿势;访问第一时间之后的第二时间的来自显示设备的多个传感器的第二传感器数据;以及使用显示设备的跟踪***来基于第二传感器数据确定显示设备的第二姿势。
示例19包括示例11,其中,所述指令还将装置配置成:基于显示设备的3D渲染引擎的渲染速率来调整动态过度渲染区域的尺寸。
示例20是一种非暂态计算机可读存储介质,该计算机可读存储介质包括指令,所述指令在由计算机执行时使计算机执行操作,所述操作包括:识别显示设备的角速度、显示设备的最近姿势、先前的扭曲姿势和先前的过度渲染区域;以及基于角速度、最近姿势、先前的扭曲姿势和先前的过度渲染区域的组合来调整动态过度渲染区域的尺寸。

Claims (20)

1.一种用于调整过度渲染区域的方法,包括:
识别显示设备的角速度、所述显示设备的最近姿势、先前的扭曲姿势和先前的过度渲染区域;以及
基于所述角速度、所述最近姿势、所述先前的扭曲姿势和所述先前的过度渲染区域的组合来调整动态过度渲染区域的尺寸。
2.根据权利要求1所述的方法,其中,调整所述动态过度渲染区域的尺寸还包括:
从所述显示设备处的惯性运动单元(IMU)取得所述角速度;
检测到所述角速度超过阈值;以及
响应于检测到所述角速度超过所述阈值,增加所述动态过度渲染区域的尺寸。
3.根据权利要求1所述的方法,其中,调整所述动态过度渲染区域的尺寸还包括:
识别第一扭曲姿势;
识别对应于所述第一扭曲姿势的第一过度渲染区域;
识别所述第一扭曲姿势之后的第二扭曲姿势;
识别对应于所述第一扭曲姿势的第二过度渲染区域;以及
基于所述第一过度渲染区域和所述第二过度渲染区域形成所述动态过度渲染区域。
4.根据权利要求3所述的方法,其中,所述动态过度渲染区域包括所述第一过度渲染区域的一部分和所述第二过度渲染区域的一部分。
5.根据权利要求1所述的方法,其中,调整所述动态过度渲染区域的尺寸还包括:
基于所述角速度、所述最近姿势、所述先前的扭曲姿势或所述先前的过度渲染区域,应用启发式算法来估计所述动态过度渲染区域的尺寸。
6.根据权利要求1所述的方法,其中,调整所述动态过度渲染区域的尺寸还包括:
基于所述角速度、所述最近姿势、所述先前的扭曲姿势和所述先前的过度渲染区域,应用机器学习算法来估计所述动态过度渲染区域的尺寸。
7.根据权利要求1所述的方法,还包括:
基于所渲染的姿势生成虚拟内容;
识别所述动态过度渲染区域的尺寸;
在所述动态过度渲染区域中渲染所述虚拟内容;
基于所述最近姿势对所渲染的图像应用变换以生成变换后的图像;以及
将所述变换后的图像显示在所述显示设备的显示器中。
8.根据权利要求1所述的方法,还包括:
访问第一时间的来自所述显示设备的多个传感器的第一传感器数据;
使用所述显示设备的跟踪***来基于所述第一传感器数据确定所述显示设备的第一姿势;
访问所述第一时间之后的第二时间的来自所述显示设备的多个传感器的第二传感器数据;以及
使用所述显示设备的跟踪***来基于所述第二传感器数据确定所述显示设备的第二姿势。
9.根据权利要求1所述的方法,还包括:
基于所述显示设备的3D渲染引擎的渲染速率来调整所述动态过度渲染区域的尺寸。
10.根据权利要求1所述的方法,还包括:
使用所述显示设备的AR应用在所述动态过度渲染区域中生成虚拟内容。
11.一种计算装置,包括:
处理器;以及
存储指令的存储器,所述指令在由所述处理器执行时将所述装置配置成执行包括以下的操作:
识别显示设备的角速度、所述显示设备的最近姿势、先前的扭曲姿势和先前的过度渲染区域;以及
基于所述角速度、所述最近姿势、所述先前的扭曲姿势和所述先前的过度渲染区域的组合来调整动态过度渲染区域的尺寸。
12.根据权利要求11所述的计算装置,其中,调整所述动态过度渲染区域的尺寸还包括:
从所述显示设备处的惯性运动单元(IMU)取得所述角速度;
检测到所述角速度超过阈值;以及
响应于检测到所述角速度超过所述阈值,增加所述动态过度渲染区域的尺寸。
13.根据权利要求11所述的计算装置,其中,调整所述动态过度渲染区域的尺寸还包括:
识别第一扭曲姿势;
识别对应于所述第一扭曲姿势的第一过度渲染区域;
识别所述第一扭曲姿势之后的第二扭曲姿势;
识别对应于所述第一扭曲姿势的第二过度渲染区域;以及
基于所述第一过度渲染区域和所述第二过度渲染区域形成所述动态过度渲染区域。
14.根据权利要求13所述的计算装置,其中,所述动态过度渲染区域包括所述第一过度渲染区域的一部分和所述第二过度渲染区域的一部分。
15.根据权利要求11所述的计算装置,其中,调整所述动态过度渲染区域的尺寸还包括:
基于所述角速度、所述最近姿势、所述先前的扭曲姿势或所述先前的过度渲染区域,应用启发式算法来估计所述动态过度渲染区域的尺寸。
16.根据权利要求11所述的计算装置,其中,调整所述动态过度渲染区域的尺寸还包括:
基于所述角速度、所述最近姿势、所述先前的扭曲姿势和所述先前的过度渲染区域,应用机器学习算法来估计所述动态过度渲染区域的尺寸。
17.根据权利要求11所述的计算装置,其中,所述指令还将所述装置配置成执行以下操作:
基于所渲染的姿势生成虚拟内容;
识别所述动态过度渲染区域的尺寸;
在所述动态过度渲染区域中渲染所述虚拟内容;
基于所述最近姿势对所渲染的图像应用变换以生成变换后的图像;以及
将所述变换后的图像显示在所述显示设备的显示器中。
18.根据权利要求11所述的计算装置,其中,所述指令还将所述装置配置成执行以下操作:
访问第一时间的来自所述显示设备的多个传感器的第一传感器数据;
使用所述显示设备的跟踪***来基于所述第一传感器数据确定所述显示设备的第一姿势;
访问所述第一时间之后的第二时间的来自所述显示设备的多个传感器的第二传感器数据;以及
使用所述显示设备的跟踪***来基于所述第二传感器数据确定所述显示设备的第二姿势。
19.根据权利要求11所述的计算装置,其中,所述指令还将所述装置配置成执行以下操作:
基于所述显示设备的3D渲染引擎的渲染速率来调整所述动态过度渲染区域的尺寸。
20.一种非暂态计算机可读存储介质,所述计算机可读存储介质包括指令,所述指令在由计算机执行时使所述计算机执行包括以下的操作:
识别显示设备的角速度、所述显示设备的最近姿势、先前的扭曲姿势和先前的过度渲染区域;以及
基于所述角速度、所述最近姿势、所述先前的扭曲姿势和所述先前的过度渲染区域的组合来调整动态过度渲染区域的尺寸。
CN202280035607.6A 2021-05-18 2022-05-16 后期扭曲中的动态过度渲染 Pending CN117425869A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US63/189,928 2021-05-18
US17/530,242 US11615506B2 (en) 2021-05-18 2021-11-18 Dynamic over-rendering in late-warping
US17/530,242 2021-11-18
PCT/US2022/072348 WO2022246389A1 (en) 2021-05-18 2022-05-16 Dynamic over-rendering in late-warping

Publications (1)

Publication Number Publication Date
CN117425869A true CN117425869A (zh) 2024-01-19

Family

ID=89525229

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280035607.6A Pending CN117425869A (zh) 2021-05-18 2022-05-16 后期扭曲中的动态过度渲染

Country Status (1)

Country Link
CN (1) CN117425869A (zh)

Similar Documents

Publication Publication Date Title
US20230388632A1 (en) Dynamic adjustment of exposure and iso to limit motion blur
US20230300464A1 (en) Direct scale level selection for multilevel feature tracking under motion blur
US11615506B2 (en) Dynamic over-rendering in late-warping
US11765457B2 (en) Dynamic adjustment of exposure and iso to limit motion blur
US20220375110A1 (en) Augmented reality guided depth estimation
US20240176428A1 (en) Dynamic initialization of 3dof ar tracking system
US20220375041A1 (en) Selective image pyramid computation for motion blur mitigation in visual-inertial tracking
EP4342170A1 (en) Selective image pyramid computation for motion blur mitigation
US20240029197A1 (en) Dynamic over-rendering in late-warping
US11681361B2 (en) Reducing startup time of augmented reality experience
US11683585B2 (en) Direct scale level selection for multilevel feature tracking under motion blur
WO2023091568A1 (en) Camera intrinsic recalibration in mono visual tracking system
CN117425869A (zh) 后期扭曲中的动态过度渲染
US20220375026A1 (en) Late warping to minimize latency of moving objects
US11941184B2 (en) Dynamic initialization of 3DOF AR tracking system
CN117321472A (zh) 进行后期扭曲以最小化移动对象的延迟
CN117321546A (zh) 增强现实引导的深度估计
KR20240008370A (ko) 움직이는 객체들의 레이턴시를 최소화하기 위한 늦은 워핑
CN117337575A (zh) 用于运动模糊减轻的选择性图像金字塔计算
CN117441343A (zh) 曝光和iso的动态调整的相关应用
EP4341786A1 (en) Augmented reality guided depth estimation
CN117337422A (zh) 三自由度增强现实跟踪***的动态初始化
CN117501208A (zh) 利用步态印迹模仿的ar数据模拟
WO2024145124A1 (en) Device pairing using machine-readable optical label
CN117321635A (zh) 用于多级别特征跟踪的直接尺度级别选择

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