首页 / 专利库 / 空中管制 / 许可 / 在层子区域上选择性地应用重投影处理以优化后期重投影功率

在层子区域上选择性地应用重投影处理以优化后期重投影功率

阅读:1040发布:2020-06-27

专利汇可以提供在层子区域上选择性地应用重投影处理以优化后期重投影功率专利检索,专利查询,专利分析的服务。并且向用于多层场景的后期重投影处理提供优化。生成场景,该场景基于 计算机系统 的一部分的预测姿势。在层之一内标识子区域,并且将子区域与场景中的其他区域隔离。此后,将后期重投影处理选择性地/与场景中的其他区域不同地应用于该子区域,场景中的其他区域未经历相同的后期重投影处理。,下面是在层子区域上选择性地应用重投影处理以优化后期重投影功率专利的具体信息内容。

1.一种计算机系统,包括:
一个或多个处理器;以及
一个或多个计算机可读硬件存储介质,在其上存储有计算机可执行指令,所述计算机可执行指令是由所述一个或多个处理器可执行的,以通过使得所述计算机系统进行以下操作来使得所述计算机系统优化后期重投影:
生成包括一个或多个层的场景,所述场景是基于所述计算机系统的一部分的第一预测姿势被生成的;
标识所述一个或多个层内的子区域,所述子区域区别于所述一个或多个层中的至少一个其他区域;
将所述子区域与所述一个或多个层的所述至少一个其他区域隔离;以及
将后期重投影处理应用于隔离的所述子区域,同时避免将后期重投影处理应用于所述一个或多个层的所述至少一个其他区域。
2.根据权利要求1所述的计算机系统,其中所述后期重投影处理包括将可逆图像变换应用于所述一个或多个层。
3.根据权利要求1所述的计算机系统,其中隔离所述子区域至少部分地通过将像素掩模应用于所述一个或多个层而被执行。
4.根据权利要求1所述的计算机系统,其中标识所述子区域包括标识:(1)所述一个或多个层内的特定元素,以及(2)所述特定元素周围的边界,并且其中所述子区域包括所述元素和所述特定元素周围的所述边界。
5.根据权利要求1所述的计算机系统,其中所述后期重投影处理包括用于变换所述一个或多个层的一个或多个变换,所述一个或多个变换响应于所述计算机系统的所述部分的所述第一预测姿势而被应用于所述一个或多个层。
6.根据权利要求1所述的计算机系统,其中所述计算机可执行指令的执行还使得所述计算机系统在隔离的所述子区域周围应用缓冲区域。
7.一种或多种硬件存储设备,在其上存储有计算机可执行指令,所述计算机可执行指令是由计算机系统的一个或多个处理器可执行的,以通过使得所述计算机系统进行以下操作来使得所述计算机系统优化后期重投影:
生成包括一个或多个层的场景,所述场景是基于所述计算机系统的一部分的第一预测姿势被生成的;
标识所述一个或多个层内的子区域,所述子区域区别于所述一个或多个层中的至少一个其他区域;
将所述子区域与所述一个或多个层的所述至少一个其他区域隔离;以及
将后期重投影处理应用于隔离的所述子区域,同时避免将后期重投影处理应用于所述一个或多个层的所述至少一个其他区域。
8.根据权利要求7所述的一种或多种硬件存储设备,其中隔离所述子区域至少部分地通过将矢量掩模应用于所述一个或多个层而被执行。
9.根据权利要求7所述的一种或多种硬件存储设备,其中所述后期重投影处理包括将矩阵变换应用于所述一个或多个层。
10.根据权利要求7所述的一种或多种硬件存储设备,其中所述第一预测姿势是基于由所述计算机系统的一个或多个硬件仪器先前获取的信息被确定的。
11.根据权利要求7所述的一种或多种硬件存储设备,其中所述一个或多个层包括(1)根据第一分辨率绘制的第一层和(2)根据第二分辨率绘制的第二层。
12.根据权利要求11所述的一种或多种硬件存储设备,其中所述计算机系统还跟踪所述计算机系统的用户的眼睛的移动,并且其中所述第一层内包括的场景元素被显示在所述用户的眼睛的视网膜中央凹附近,同时所述第二层内包括的场景元素不被显示在所述用户的眼睛的所述视网膜中央凹附近,由此所述场景被配置用于视网膜中央凹式绘制。
13.根据权利要求7所述的一种或多种硬件存储设备,其中所述一个或多个层包括第一层和第二层,并且其中应用于所述第一层的后期重投影处理不同于应用于所述第二层的后期重投影处理。
14.根据权利要求13所述的一种或多种硬件存储设备,其中所述第一层的所述后期重投影处理与所述第二层的所述后期重投影处理之间的差异是由于所述第一层与所述第二层之间的确定的深度的差异而导致的。
15.一种用于优化后期重投影的方法,所述方法由计算机系统的一个或多个处理器执行,所述方法包括:
生成包括一个或多个层的场景,所述场景是基于所述计算机系统的一部分的第一预测姿势被生成的;
标识所述一个或多个层内的子区域,所述子区域区别于所述一个或多个层中的至少一个其他区域;
将所述子区域与所述一个或多个层的所述至少一个其他区域隔离;以及
将后期重投影处理应用于隔离的所述子区域,同时避免将后期重投影处理应用于所述一个或多个层的所述至少一个其他区域。

说明书全文

在层子区域上选择性地应用重投影处理以优化后期重投影

功率

背景技术

[0001] 计算机和计算系统几乎影响了现代生活的每个方面。通常在工作、休闲、医疗保健、交通、娱乐、家庭管理等中涉及计算机。
[0002] 混合现实计算机系统(其包括虚拟现实系统和增强现实系统)最近因其为用户创建沉浸式体验的能而受到极大关注。传统的增强现实系统通过在现实世界中可视地呈现虚拟对象来创建增强现实场景。相比之下,传统的虚拟现实系统创建更加沉浸式的体验,使得用户的整个视野被虚拟世界阻碍。如本文中使用的,混合现实、增强现实和虚拟现实系统被可互换地描述和引用。除非特别说明或者除非特别要求,否则如本领域技术人员所理解的,本文中的描述同样适用于任何类型的混合现实系统,包括增强现实系统、虚拟现实系统和/或能够向用户显示虚拟对象的任何其他类似系统。
[0003] 混合现实计算机系统通常使用一个或多个在身体上的设备(例如,头戴式设备、手持设备等)。头戴式设备提供显示器,该显示器有时称为头戴式显示器(下文中“HMD”),该显示器使得用户能够查看用户的周围环境中的重叠和/或整合的视觉信息。例如,混合现实系统可以通过HMD以实际桌面上的模拟对象的形式向用户呈现视觉信息。
[0004] 硬件能力和绘制技术的持续进步极大地增加了在混合现实环境内向用户显示的虚拟对象和场景的真实性。例如,在混合现实环境中,虚拟对象可以放置在现实世界内,以便给出虚拟对象是现实世界的一部分的印象。当用户在现实世界内到处移动时,混合现实环境自动更新,从而向用户提供虚拟对象的适当透视图和视图。这种混合现实环境通常被称为计算机生成的场景,或者简称为“场景”。
[0005] 在这样的系统中,用户的身体(具体地,用户的头部和对应的HMD)可以相对于虚拟环境实时地移动。例如,在混合现实应用中,如果用户在一个方向上倾斜她的头部,则她不会期望图像或全息图与他们一起倾斜。理想地,系统将测量用户头部的位置,并且以足够快的速率绘制图像,以消除如由用户感知的图像位置的任何抖动或漂移。然而,典型的图形处理单元(“GPU”)目前在每秒仅30到60之间绘制帧,这取决于GPU的质量和性能。这导致检测到头部位置的时间点与在HMD上实际显示图像的时间点之间的16至33毫秒的潜在延迟。附加延时还可能与确定新的头部位置所需要的时间和/或GPU的帧缓冲与最终调节的显示之间的延迟相关联。结果是,用户期望的图像位置与图像的实际显示位置之间的可能的大误差,从而降低了用户体验。在一些情况下,当虚拟图像未呈现在适当位置时,特别是在用户头部和HMD的移动期间,用户还可能经历不适和迷失方向。
[0006] 为了减少或消除一些前述绘制误差,现有系统应用后期校正,以在由GPU绘制图像之后对图像进行最终调节。该过程在显示像素之前执行,以便补偿由用户的头部移动产生的最新旋转、平移和/或放大。该调节过程通常被称为“后期调节”、“后期重投影”、“LSR”或“LSR调节”。在下文中,本公开将使用缩写“LSR”。因为帧可以以高速率和高分辨率进行绘制,所以采用LSR的现有系统可能需要大量的DRAM带宽和功率。将理解,在无线和电池供电的HMD的上下文中,芯片尺寸以及带宽和功率要求可能是非常重要的,这可能增加与向用户绘制混合现实场景相关联的挑战和困难。
[0007] 如上所述,很多混合现实计算机系统是不插电的电池供电设备,它们受到操作功率约束。这些约束被设计为延长电池的寿命,以便用户可以利用场景享受更多时间。然而,计算机系统的很多操作显著影响计算机系统的电池寿命。例如,执行数据获取操作和LSR动作是这种电池损伤操作的主要示例。因此,本领域迫切需要有效地改善执行这些类型操作的系统的功耗。
[0008] 本文中要求保护的主题不限于解决任何缺点或仅在诸如上述那些环境中操作的实施例。而是,提供该背景仅用于说明可以实践本文中描述的一些实施例的一个示例性技术领域。发明内容
[0009] 本文中公开的实施例涉及优化LSR处理的系统、硬件存储设备和方法。
[0010] 一些实施例生成包括多个层的计算机生成的场景。该场景是基于计算机系统的一部分(例如,HMD或其他混合现实设备)的第一预测姿势生成的。实施例还使得标识一个或多个层内的子区域。该子区域区别于一个或多个层中的至少一个其他区域。然后,实施例使得将该子区域与(多个)其他区域隔离。随后,实施例使得将LSR处理应用于隔离子区域,同时避免将LSR处理或至少相同的LSR处理应用于(多个)其他区域。
[0011] 提供本“发明内容”是为了以简化的形式介绍一些概念,这些概念将在下面的“具体实施方式”中进一步描述。本“发明内容”不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
[0012] 附加的特征和优点将在随后的描述中阐述,并且部分地将从描述中显而易见,或者可以通过本文中的教导的实践来学习。本发明的特征和优点可以借助于所附权利要求中特别指出的仪器和组合来实现和获取。本发明的特征根据以下描述和所附权利要求将变得更加完全显现,或者可以通过如下文所阐述的本发明的实践来学习。附图说明
[0013] 为了描述可以获得上面记载的和其他优点和特征的方式,将通过参考附图中所示的具体实施例,来呈现上面简要描述的主题的更具体的描述。理解的是,这些附图仅描绘了典型实施例,因此不应当被认为是对范围的限制,实施例将通过使用附图的附加特异性和细节进行描述和解释,在附图中:
[0014] 图1示出了能够执行所公开的过程和方法的计算机系统的基本架构视图。
[0015] 图2示出了能够执行所公开的过程和方法的计算机系统的另一实施例。
[0016] 图3示出了多层场景的高级概述。
[0017] 图4提供了可以在多层场景中使用的一个层的真实描绘。
[0018] 图5提供了可以在多层场景中使用的层的另一真实描绘。
[0019] 图6示出了多个层的合成绘制。
[0020] 图7示出了多个层的另一合成绘制。
[0021] 图8示出了如何可以将预滤波器应用于层中的某些像素的一个示例。
[0022] 图9示出了如何将层约束在边界区域内的一个示例。
[0023] 图10示出了如何将层约束在边界区域内的另一示例。
[0024] 图11示出了在LSR处理期间可用的缓冲区域的使用。
[0025] 图12示出了如何可以在各种情况下减少LSR处理量。
[0026] 图13示出了用于优化LSR处理的一个示例性方法。
[0027] 图14示出了用于优化LSR处理的另一示例性方法。

具体实施方式

[0028] 通过介绍的方法,本文中公开的实施例涉及优化LSR处理的系统、硬件存储设备和方法。为此,所公开的实施例生成包括多个层的计算机生成的场景。该场景是基于计算机系统的设备(例如,也许是HMD)的第一预测姿势生成的。一个或多个层内的特定子区域被标识,并且区别于一个或多个层中的至少一个其他区域。然后,将该子区域与(多个)其他区域隔离。随后,将特定LSR处理应用于隔离的子区域,同时避免将该特定LSR应用于(多个)其他区域。
[0029] 如稍后将讨论的,本文中描述的实施例克服了贯穿传统技术普遍存在的很多缺陷。此外,这些实施例提供了很多其他实质性益处,这些益处也将在本公开的其余部分中描述。
[0030] 提供以下段落作为本公开的主题的初始指南。特别地,本公开将首先使用图1来呈现计算系统的一些介绍性讨论。在该讨论之后,提供关于LSR处理的一些介绍性主题。然后,本公开关于图2进行阐述,图2呈现了关于能够优化对多层场景执行的LSR处理的计算机系统的主题。然后,将讨论图3-图12。这些图提供了在执行LSR的情况下在计算机生成的场景中使用多个层的细节。最后,将关于随后的附图详细描述使用本文中描述的新颖原理的附加支持架构和方法。
[0031] 如图1所示,在其最基本的配置中,计算机系统100采用很多不同的形式。例如,图1将计算机系统100示出为台式(或膝上型)计算机100A、平板电脑100B、手机100C、或包括HMD的头戴式设备100D。尽管图1示出了广泛的计算设备阵列,但是当前实施例不仅限于图1所示的那些。结果,省略号100E表明任何类型的计算设备可用于由本实施例使用。
[0032] 计算机系统100通常包括至少一个处理单元110和存储装置120。存储装置120可以是物理系统存储器,其可以是易失性的、非易失性的、或两者的某种组合。术语“存储器”在本文中也可以用于指代非易失性大容量存储装置,诸如物理存储介质。如果计算系统是分布式的,则处理、存储器和/或存储能力也可以是分布式的。如本文中使用的,术语“可执行模”、“可执行组件”或甚至“组件”可以指代可以在计算系统上执行的软件对象、例程或方法。本文中描述的不同组件、模块、引擎和服务可以实现为在计算系统上执行的对象或处理器(例如,作为单独的线程)。
[0033] 本发明的实施例可以包括或利用包括计算机硬件的专用或通用计算机,例如,计算机硬件诸如为一个或多个处理器(诸如处理器110)和系统存储器(诸如存储装置120),如下面更详细讨论的。在本发明的范围内的实施例还包括用于承载或存储计算机可执行指令和/或数据结构的物理和其他计算机可读介质。这样的计算机可读介质可以是可以由通用或专用计算机系统访问的任何可用介质。以数据形式存储计算机可执行指令的计算机可读介质是物理计算机存储介质。承载计算机可执行指令的计算机可读介质是传输介质。因此,通过示例而非限制的方式,本发明的实施例可以包括至少两种截然不同的种类的计算机可读介质:计算机存储介质和传输介质。
[0034] 计算机存储介质包括硬件,诸如RAM、ROM、EEPROM、CD-ROM、基于RAM的固态驱动器(SSD)、闪存、相变存储器(PCM)或其他类型的存储器、或其他光盘存储装置、磁盘存储装置或其他磁存储设备、或者任何其他硬件介质,该任何其他硬件介质可以用于以计算机可执行指令、数据或数据结构的形式存储期望的程序代码装置,并且可以由通用或专用计算机访问。
[0035] 还如图1所示,计算机系统100包括各种不同的组件,包括(多个)I/O接口130、(多个)图形绘制引擎140和一个或多个传感器150。计算机系统100还可以连接(经由有线或无线连接)到外部传感器160(例如,一个或多个远程相机、加速度计、陀螺仪、声学传感器、磁力计等)。此外,计算机系统100还可以通过一个或多个有线或无线网络170连接到(多个)远程系统180,(多个)远程系统180被配置为执行关于计算机系统100的所描述的处理中的任何处理。
[0036] 在使用期间,计算机系统100的用户能够通过(多个)I/O接口130内包括的显示屏来感知信息(例如,计算机生成的场景)。(多个)I/O接口130和传感器150/160还包括手势检测设备、眼睛跟踪器和/或其他移动检测组件(例如,相机、陀螺仪、加速度计、磁力计、声学传感器、全球定位系统(“GPS”)等),这些组件能够检测一个或多个现实世界对象的定位和移动,一个或多个现实世界对象诸如为用户的手、触笔和/或用户在沉浸在场景(即,混合现实环境)中时可以与之交互的(多个)任何其他对象。
[0037] 在一些情况下,连续监测用户和对象的定位和移动。该监测专检测对象的位置和移动的任何变化,诸如检测到的位置、速度、定向或加速度的变化。这些移动可以是绝对移动和/或相对移动,诸如与HMD的相对定位相比的相对移动,并且使得HMD的移动/定位将被计算为在对象存在于场景中时对象的相对移动/定位。
[0038] (多个)图形绘制引擎140被配置为与(多个)处理器110一起绘制在计算机生成的场景内的一个或多个虚拟对象。该绘制包括手部遮挡或被映射到现实世界对象的相对位置的其他类型的遮挡。结果,虚拟对象响应于现实世界对象的移动而准确地移动。图形绘制引擎140还被配置为绘制如下的一个或多个遮挡:该一个或多个遮挡是纯粹虚拟的(不被映射到现实世界对象),但是尽管如此,当用户在场景内进行交互时,该一个或多个遮挡响应于用户输入而定位和移动。
[0039] 可以包括一个或多个GPU的(多个)图形绘制引擎140被配置为利用某些显示性质来绘制遮挡(即,虚拟对象)。这些性质包括着色、透明度或不透明度、纹理、边缘清晰度(例如,厚度和/或锐度与模糊和/或羽化)、尺寸等。当针对遮挡检测到某些移动阈值时,那么将修改用于遮挡的显示性质的一个或多个组合(至少在检测到的移动满足或超过移动阈值时)。
[0040] 移动阈值可以包括以下的任何组合:1)与遮挡相关联的现实世界对象的检测到的实际移动,2)虚拟化遮挡的检测到的动画移动,和/或3)现实世界移动与动画移动之间的检测到的差异或滞后。检测到的移动与速度和/或加速度属性值相关联。这些值由计算机系统100的传感器150和/或处理器110检测、测量和/或计算,以确定何时满足和/或超过预定阈值。
[0041] 在一些实施例中,相同的绝对移动阈值与所有类型的移动相关联。例如,与遮挡相关联的某个速度、加速度或滞后将足以触发遮挡的显示性质的改变。无论检测到的移动的具体类型如何,都可以触发该改变。在其他实施例中,不同类型的移动(即,六个自由度内的不同移动,包括纵荡、垂荡、横荡、纵摇、横摇和首摇)与不同的移动阈值相关联。例如,特定的旋转加速度将触发不同于侧向加速度的第一阈值。
[0042] 在一些情况下,对于不同移动类型中的一种或多种移动类型,存在至少两个或更多的单独的阈值限制。例如,在第一加速度量度下,满足第一阈值。在大于或小于第一加速度量度的第二加速度量度下,满足第二阈值。在一些情况下,针对一种或多种类型的移动中的每一种类型,设置一个或多个单独的速度阈值。遮挡的外观将响应于满足不同阈值中的每个阈值而动态地改变,诸如通过改变遮挡的显示属性。
[0043] 各种阈值和移动属性类型被映射在计算系统100的存储装置120中的存储的数据结构中,和/或被映射在一个或多个远程系统180中。
[0044] 一些公开的实施例包括:(多个)GPU 140与存储装置通信,以确定何时以及如何与和遮挡相关联的(多个)移动属性的检测到的不同变化对应地,来逐渐修改遮挡的外观。在这样的实施例中,根据连续变化的移动属性,连续地改变/缩放显示属性/性质(使得不存在离散平)。例如,针对遮挡的透明度和/或边缘羽化的水平可以与和遮挡相关联的速度和/或加速度的很多不同的对应幅度相关联(即使在包括现实世界对象的移动时),和/或与和绘制遮挡动画相关联的滞后相关联。
[0045] 像图1所示的网络170的“网络”被限定为一个或多个数据链路和/或数据交换机,其使得能够在计算机系统、模块、和/或其他电子设备之间输运电子数据。当通过网络(硬连线、无线、或者硬连线和无线的组合)向计算机传送或提供信息时,计算机将连接适当地视为传输介质。计算机系统100将包括用于与网络170通信的一个或多个通信信道。传输介质包括网络,该网络可以用于以计算机可执行指令的形式或以数据结构的形式承载数据或期望的程序代码装置。此外,这些计算机可执行指令可以由通用或专用计算机访问。上述的组合也应当被包括在计算机可读介质的范围内。
[0046] 在到达各种计算机系统组件时,计算机可执行指令或数据结构形式的程序代码装置可以从传输介质自动地被传送给计算机存储介质(或者反之亦然)。例如,通过网络或数据链路接收的计算机可执行指令或数据结构可以缓存在网络接口模块(例如,网络接口卡或“NIC”)内的RAM中,并且然后最终被传送给计算机系统RAM和/或计算机系统处的较不易失性的计算机存储介质。因此,应当理解,计算机存储介质可以被包括在也(或者甚至主要)利用传输介质的计算机系统组件中。
[0047] 例如,计算机可执行(或计算机可解译)指令包括使得通用计算机、专用计算机或专用处理设备执行某个功能或功能组的指令。例如,计算机可执行指令可以是二进制、诸如汇编语言之类的中间格式指令、或甚至是源代码。尽管用特定于结构特征和/或方法动作的语言来描述本主题,但要理解,所附权利要求中限定的主题不必限于所描述的上述特征或动作。而是,所描述的特征和动作被公开作为实现权利要求的示例形式。
[0048] 本领域技术人员将理解,本发明可以在具有很多类型的计算机系统配置的网络计算环境中实践,包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持设备、多处理器系统、基于微处理器或可编程的消费电子产品、网络PC、小型计算机、大型计算机、移动电话、PDA、寻呼机、路由器、交换机等。本发明还可以在分布式系统环境中实践,其中通过网络链接(通过硬连线数据链路、无线数据链路、或者通过硬连线和无线数据链路的组合)的本地和远程计算机系统各自执行任务(例如,计算、云服务等)。在分布式系统环境中,程序模块可以位于本地和远程存储器存储设备两者中。
[0049] 后期重投影(“LSR”)
[0050] 生成现实混合现实环境的一个问题涉及:与HMD的特定姿势相对应的世界定虚拟对象的图像被显示给HMD的最终用户的延时或时间量。例如,如果在最终用户的头部转动远离特定姿势的时间与基于下一姿势显示虚拟对象的图像的时间之间经过了太多时间,则虚拟对象将看起来漂移远离其在混合现实环境中的旨在位置(即,图像可能未看起来与旨在的现实世界位置或对象对准)。因此,HMD还可以包括用于以大于其他虚拟对象的绘制帧速率的帧速率生成和显示一些虚拟对象的技术。
[0051] 以增加的帧速率绘制虚拟对象显著地改善了场景的稳定性。所显示的对象(即,虚拟对象)可以包括对预绘制场景(即,以某个绘制帧速率绘制的前向预测场景)的后期图形调节,以便并入更高频率的姿势估计。绘制帧速率可以对应于绘制与HMD的姿势相关联的图像的最小时间。为了实现该目的,HMD可以执行以下中的一个或多个:1)确定与HMD的未来位置和定向相关联的预测姿势(例如,HMD在未来10ms或20ms的预测姿势),2)基于该预测姿势生成预绘制图像,3)在生成预绘制图像之后或者在生成预绘制图像的同时确定与HMD相关联的更新姿势,4)基于更新姿势和预绘制图像来生成更新图像,以及5)在HMD上显示更新图像。更新图像可以经由预绘制图像的单应变换和/或像素偏移调节来生成。在一些情况下,更新图像可以由显示器内的电路生成。关于这些功能的进一步细节将在本公开中稍后提供。
[0052] 预测姿势可以基于以下来确定:1)HMD的当前位置和定向,以及2)紧接在确定预测姿势之前的HMD的加速度和速度(例如,通过基于在确定预测姿势之前的5ms、10ms或另一预定距离的HMD的移动,来推断预测姿势)。更新姿势可以基于以比绘制帧速率更高的频率提供给姿势跟踪器的更新姿势信息来确定(例如,通过从各种姿势跟踪仪器(诸如加速度计、陀螺仪等)获取数据)。
[0053] 该更新姿势信息可以使用低延时惯性测量单元(IMU)或IMU和基于相机的姿势跟踪的组合来生成。更新图像可以包括对预绘制图像的至少一部分的图像旋转、平移、伸缩(例如,拉伸或收缩)、移位或倾斜,以便校正预测姿势与更新姿势之间的差异(例如,以补偿在生成预绘制图像时的不正确姿势预测)。
[0054] 更进一步地,更新图像可以经由预绘制图像的单应变换来生成。在一些情况下,单应变换可以包括仿射变换。更新图像可以使用像素偏移调节或单应变换和像素偏移调节的组合来生成。在一些情况下,单应变换和/或像素偏移调节可以在核心绘制管线的下游生成(例如,使用与HMD集成的控制器或处理器)。在其他情况下,像素偏移调节可以使用显示器来执行,该显示器并入了移位寄存器或用于允许显示器的像素阵列内的像素值的移位的其他电路(例如,类似于电荷耦合设备的操作)。
[0055] 更新图像包括对前向预测的绘制图像的后期图形调节,并且可以使用不同计算复杂度的各种图像重投影技术来生成。图像重投影技术可以包括每像素重投影(例如,其中基于更新姿势来重投影绘制图像的每个像素)、多层单应性(例如,其中与3D场景内的多个层相关联的多个绘制图像用于生成合成更新图像)、单层单应性(例如,其中与3D场景内的单个层相关联的单个绘制图像用于生成更新图像)、仿射单应性、或基于像素偏移的调节。
[0056] 尽管先前系统支持LSR调节,但是这些系统无法以有效的方式优化该处理。结果,这些系统遭受与电池长寿相关联的很多障碍。所公开的实施例可以用于通过针对多层场景执行选择性LSR调节,来帮助解决这些问题中的一些问题。
[0057] 多层计算机生成的场景
[0058] 现在将注意力指向图2-图12。简而言之,图2示出了一个示例性计算机系统,其包括用于优化对包括多个层的计算机生成场景的LSR处理的各种组件。图3-图12阐述了本实施例中可用的各种功能。
[0059] 如上面所指示的,图2示出了计算机系统200,其包括各种组件(例如,场景生成组件210、LSR组件220、层创建组件230和绘制组件240)。计算机系统200类似于图1中呈现的计算机系统100。在一些实施例中,计算机系统200被配置作为一个或多个处理器(例如,GPU)的专用集合。还将结合其余附图讨论计算机系统200的附加属性。
[0060] 特别地,计算机系统200能够创建和绘制计算机生成的场景。该场景可以是混合现实、增强现实或虚拟现实场景。如前面所讨论的,该场景是基于由计算机系统的一个或多个硬件组件(例如,IMU仪器、加速度计、陀螺仪、磁力计、深度传感器、相机、红外传感器等)先前获取的信息而生成的。
[0061] 一些实施例响应于计算机系统的一部分(例如,也许是HMD)的第一预测姿势,来生成该场景。该第一预测姿势不同于计算机系统的该部分的先前获取的实际确定姿势。为了减少多么经常地从硬件组件获取数据(该过程对计算机系统的电池寿命造成损伤),本发明的实施例利用预测的或计算机估计的姿势数据来增强实际姿势数据。通过执行该增强过程,可以减少多么经常地从硬件组件获取姿势数据(即,从硬件组件获取姿势数据的频率)。该增强过程显著降低了功耗。为了更加清楚,假定计算机系统以某个频率从各种硬件组件(例如,早前讨论的IMU仪器)收集姿势数据。通过用预测的姿势数据来增强实际姿势数据,本实施例减少了多么经常地收集该真实/实际数据。因此,如贯穿本公开所讨论的,本实施例能够基于以下来预测计算机设备的姿势:1)先前获取的实际姿势确定,以及2)关于用户的当前和/或未来行为的估计(例如,通过跟踪身体移动或其他特性)。
[0062] 继续讨论,场景生成组件210能够创建场景,该场景包括诸如图3所示的输入帧310之类的多个输入帧。术语“输入帧”的使用与术语“场景”相关;意思是,场景实际上由向穿戴HMD的用户显示的多个输入帧组成。如图3中进一步所示,输入帧310包括前景层320(“FG层”)和背景层330(“BG层”)。FG层320和BG层330由层创建组件230创建。在一些情况下,根据第一分辨率绘制FG层320,同时根据第二分辨率绘制BG层330。通过示例的方式,FG层320可以包括看起来在视觉上更靠近用户的对象(例如,树),同时BG层330可以包括看起来更远离用户的景观(例如,远处背景中的山)。因为BG层330包括看起来在视觉上“更远离”用户的内容,所以BG层330中的内容可以以较低分辨率绘制。
[0063] 在其他情况下,计算机系统100支持视网膜中央凹式绘制。鉴于这种视网膜中央凹式绘制,FG层320可以放置在较高分辨率区域(即,视网膜中央凹区域)中,同时BG层330可以放置在分辨率低得多的区域(例如,场景的边缘或外围区域)中。
[0064] LSR组件220能够对FG层320和BG层330执行LSR处理。在一些情况下,应用于FG层320的LSR处理不同于应用于BG层330的LSR处理。FG层320与BG层330之间的LSR处理的这种差异可能是由于各种各样的原因。通过示例而非限制的方式,该差异可能是由于FG层320与BG层330之间的确定深度的差异。HMD的移动也可能与BG组件的定位/绘制不同地影响FG组件的定位/绘制。
[0065] 此时,一个示例将是有帮助的。使用上面的示例,假定正在呈现给用户的场景包括附近的树和远处的山地景观。现在,假定用户移动位置或以其他方式改变她的定向。响应于用户的位置变化,将需要更新混合现实场景。这里,值得注意的是,由于感知的深度的差异,更接近用户的树的视觉效果的变化将显著大于远处山地景观的任何变化。结果,用于每层的LSR处理可能不同。
[0066] 在将LSR处理应用于场景的各种层(例如,FG层320和BG层330)之后,计算机系统将这些层合成在一起以形成一体化层,诸如图3中的一体化层340。换言之,FG层320和BG层330(在经历LSR处理之后)被合成在一起以形成一体化层340。为了确保在场景中适当地可视化层(例如,以确保使用关于彼此正确的深度和定向来可视化层),计算机系统200还将一个或多个变换应用于层中的一个或多个层。这些变换可以在LSR处理期间或在合成处理期间被应用。通过示例的方式,可能需要对一个层进行尺寸调节(即,伸缩)、旋转、歪斜或以其他方式操纵,这对于一体化场景中的(多个)其他层可能是不需要的。为了实现这种选择性操纵,计算机系统200应用适当类型的变换,以使得层能够被适当地绘制。这些变换中的一些变换包括单应变换、可逆图像变换、仿射变换、像素偏移调节、深度处理变换和/或矩阵变换。在将层合成在一起之后,绘制组件240在HMD上绘制一体化层340。
[0067] 虽然图3示出了多层场景的抽象可视化,但是图4-图7示出了具体实现。
[0068] 特别地,图4示出了计算机生成场景的第一层400。该第一层类似于图3中的BG层330。该第一层400被示出为由边界区域410界定。该边界区域410涉及穿戴HMD的用户可查看的区域。然而,特别地,计算机生成场景不仅限于单个视点。而是,当用户移动位置或以其他方式改变定向时,HMD上显示的视图将关于HMD的定向而改变(例如,根据用户的移动,新内容将出现,同时其他内容将消失)。结果,第一层400和边界区域410不应当用于表征或以其他方式限制计算机系统200的能力。
[0069] 类似于图4,图5示出了可以由计算机系统200可视化的第二层500。该第二层500类似于图3中的FG层320。第二层500也被示出为具有边界区域510。这里,值得注意的是,第二层500与图4的第一层400略有不同。特别地,第二层500包括一个或多个透明部分520。“透明”的意思是:位于该透明部分520下面的任何内容将是可查看的,即使下面的内容不是第二层500的一部分。结果,在1)第二层500的LSR处理、2)任何变换、和/或3)合成过程被应用于第二层500之后(并且如果层500仍然设置在另一层之上以与该另一层重叠),底层的至少一些部分将通过第二层500的透明部分520可见。
[0070] 图6示出了多层场景600,其被呈现为一体化的合成层。该多层场景600由场景生成组件210创建。多层场景600包括第一层610和第二层620,第一层610类似于图4中的第一层400,第二层620类似于图5中的第二层500。换言之,该一体化层600是多个层的合成。如图6中进一步所示,第二层620包括一个或多个透明部分630,其类似于图5中的透明部分520。这里,值得注意的是,第一层610的一部分通过第二层620的透明部分630可查看。为了清楚起见,第二层620是已经被放置在第一层610的顶部上的层。结果,第二层620遮挡或混淆第一层610的各种部分。然而,因为第二层620包括透明部分630,所以第一层610的某些部分通过第二层620的透明部分630可查看(至少在用户处于该特定姿势时)。如果用户稍后改变位置或定向,则第一层610的其他部分将变为通过第二层620的透明部分630可见。哪些部分可见与用户的姿势直接相关。
[0071] 图7类似于图6,但是图7包括附加层——层710。具体地,图7示出了与图6中的多层场景600类似的多层场景700。然而,现在,多层场景700包括附加层——层710(即,树)。层710被定位成与多层场景700中的其他层重叠。特别地,层710的一部分遮挡底层(即,房屋)的一些透明部分。结果,层710遮挡其他层的各种部分(例如,树覆盖窗户,窗户覆盖山,但是因为窗户是透明的,所以山通过窗户可查看,但是树还覆盖山的一部分)。
[0072] 如上面所讨论的,取决于正在执行的LSR处理和HMD的检测到的移动,各种层可以各自经历相同或不同的LSR处理。在最坏的情况下,所有层中的所有像素都经历LSR处理。使用图3作为示例,如果BG层330的所有像素和FG层320的所有像素都要经历LSR处理,则会出现最坏情况。
[0073] 为了提高LSR处理的效率,本实施例中的一些实施例预先过滤多层场景的各种层中的至少一些像素。一种预先过滤像素的方法是通过使用像素掩模。可以在特定层的顶部、底部、左侧和右侧边缘上的每行和每列限定像素掩模。如在上面的讨论中所暗示的,该像素掩模可以用于消除对像素的处理,这些像素中的一些像素可能对图像质量没有显著贡献(例如,位于显示器的边缘区域上的像素)。该预先过滤过程允许针对个体像素并且甚至针对大片像素跳过一些LSR处理。在图8中大体上可视化了该预先过滤过程。
[0074] 特别地,图8示出了像素掩模可以应用于一个(或多个)层(例如,图3的BG层330)。通过应用像素掩模,对由像素掩模标识的像素、由像素掩模操作的像素或以其他方式对应于像素掩模的像素,不需要执行LSR处理,或者更确切地说可以省略/跳过LSR处理。
[0075] 虽然图8公开了像素掩模的使用,但是还可以使用其他类型的操作来预先过滤像素。通过示例而非限制的方式,矢量掩模也可以用于预先过滤一些像素(例如,标识要从LSR省略的像素)。
[0076] 其他实施例通过在某些层周围应用边界框,来减少或消除每个像素位置处的LSR计算。该边界框功能在图9中可视化。具体地,该边界框用于限定完全包含输出图像(即,绘制场景)内的某个层(或层内的子区域)的区域。当使用该边界框时,当输出图像改变时(例如,当用户改变位置或定向并且场景相应地调节时),各种实施例消除了在框外部的所有计算。如该段落中所示,边界框用于标识和隔离特定层内的子区域。在该子区域被隔离之后,然后计算机系统200将LSR处理应用于该子区域,同时放弃将LSR处理应用于该层中的其余区域。结果,计算机系统200选择性地确定层的哪些区域应当在其上应用LSR处理。
[0077] 如早前所讨论的,当用户改变位置或定向时,将需要相应地调节层,以反映位置或定向的该变化。通过示例的方式,如果用户向她的右侧移动,则将需要调节各种层以反映用户的新视点。这里,一个示例将是富有洞察力的。假定用户正在查看图7的多层场景700。当用户向她的右侧移动时,用户的树、房屋和山地景观的视图全都将改变。特别地,树和房屋的新区域将可能是可查看的。用户的相对于山地景观的树和房屋的视图也将改变。相比之下,距用户非常遥远的山地景观的视图将可能根本不会改变,并且如果确实如此,则改变将很可能极其小,以至于不明显。因为树比房屋更靠近用户,所以与关于房屋可注意到的相比,关于树的透视图变化将可注意到更多的视觉变化。因此,计算机系统支持对不同层应用不同LSR处理,并且这可以通过检测针对不同层的某些移动阈值来触发。独立触发器可以应用于分离针对每个层的阈值确定。
[0078] 继续讨论,为了响应于用户位置的变化来执行该调节,计算机系统200选择性地将各种变换应用于层。这些变换在LSR处理期间和/或在稍后的合成过程期间被应用。如早前简要提到的,一个这样的变换是可逆图像变换。这种类型的变换使用图像分辨率技术来确定层的拐(例如,也许使用图9的边界框)。然后,反转该变换,以确定与输入图像的左上拐角相对应的一体化层(即,输出图像)中的点,如图10中当前所示。执行类似的计算以确定其他拐角。一旦标识出层,则可以以各种方式操纵层(例如,拉伸、收缩、歪斜等)。如早前所讨论的,其他类型的变换包括单应变换、仿射变换、像素偏移调节、深度处理变换和矩阵变换。
[0079] 这里,值得注意的是,并非所有变换都是容易可逆的。例如,可以使用矩阵变换执行大规模移动。然而,可以使用其他变换(例如,深度处理变换)来进行较小的调节。为了考虑这些变换,一些实施例在先前生成的边界框周围施加缓冲区域。该缓冲区域在图11中示出,并且可以用于帮助将各种层混合在一起,以形成凝聚的视觉上吸引人的一体化层。
[0080] 在很多情况下,诸如当HMD支持视网膜中央凹式绘制时,在执行少量混合之后,背景层将被前景层完全遮挡。本实施例通过减少或甚至完全消除应用于那些被遮挡部分的处理量,来利用诸如此类的情况。例如,图12示出了前景层,前景层是不透明的,并且遮挡底部BG层的一部分。对于被顶层的不透明区域遮挡的底层的部分,可以跳过LSR计算,并且可以减少电池消耗。
[0081] 刚刚讨论了优化对多层场景的LSR处理的计算机系统,本公开现在将呈现用于优化LSR处理的各种示例性方法。特别地,以下讨论涉及可以被执行的很多方法和方法动作。虽然方法动作可以按某个顺序讨论或者在流程图中被图示为以特定顺序发生,但是除非特别说明或者因为动作取决于在执行该动作之前完成的另一动作而要求,否则不需要特定排序。
[0082] 对层子区域的重投影处理的选择性应用
[0083] 图13示出了由诸如图2的计算机系统200之类的计算机系统执行的示例性方法1300。具体地,方法1300包括生成包括一个或多个层的场景的动作(动作1310)。
[0084] 这里,值得注意的是,在一些情况下,整个层可以仅由单个元素组成,使得该元素是层。使用图5作为示例,整个层500仅由单个房屋元素组成。然而,在其他情况下,层可以由多个元素组成。通过示例而非限制的方式,图4示出了层400包括山地景观、道路、天空以及可能的草地。这里,山地景观可以被认为是不同的元素,道路可以被认为是不同的元素,等等。因此,在一些情况下,层400由多个不同的元素组成。然而,在其他实施例中,层中的元素之间不存在这种区别。
[0085] 在一些实施例中,场景是基于计算机系统的一部分(例如,HMD)的各种姿势而生成的。为了清楚起见,姿势包括由IMU仪器确定的实际姿势以及由估计的行为和预期的移动确定的预测姿势两者。这里,场景生成组件210以先前描述的方式生成场景。稍后将在本公开中呈现对该功能的进一步描述。
[0086] 一些实施例将该场景配置用于视网膜中央凹式绘制。特别地,这些实施例利用眼睛跟踪技术来跟踪用户的眼睛移动。然后,这些实施例绘制场景,使得层中的至少一个层被显示为在用户眼睛的视网膜中央凹附近,同时其他层不被显示为在用户眼睛的视网膜中央凹附近。对应地,如果实施例区分层内的元素,则还根据视网膜中央凹式绘制技术显示元素。
[0087] 方法1300还包括标识一个或多个层内的子区域的动作(动作1320)。该子区域区别于一个或多个层中的至少一个其他区域。这里,层创建组件230操纵和以其他方式区分各种层内的子区域。
[0088] 在一些实施例中,标识该子区域的过程还包括标识:1)一个或多个层内的特定元素,以及2)特定元素周围的缓冲边界。因此,在这些实施例中,子区域包括元素本身以及元素周围的缓冲边界两者。相比之下,其他实施例不包括子区域周围的这种缓冲边界。
[0089] 在上面的示例中,图4中的层400由多个元素(例如,山地景观元素、道路元素等)组成。一些实施例选择整个元素(例如,道路元素)来用作子区域。然而,备选地,所标识的子区域可以只是广义层部分,而与元素没有任何特定关系。
[0090] 在一些实施例中,响应于检测到元素相对于HMD已经满足或超过特定移动阈值,而其他元素/层相对于HMD的相对移动尚未满足该特定移动阈值,来标识特定元素。
[0091] 然后,方法1300包括将所标识的子区域与一个或多个层的至少一个其他区域隔离的动作(动作1330)。与上述步骤类似,层创建组件230还执行该动作。该隔离以各种方式执行。例如,通过将像素掩模或矢量掩模应用于一个或多个层,来执行该隔离。如上面详述的,还可以在该隔离子区域周围应用缓冲区域。该缓冲区域以先前在本公开中描述的方式创建。
[0092] 继续上面的示例,假定道路元素被选择作为子区域。然后,将该道路元素与层400中的其他区域区分开(例如,其他区域至少包括山地景观元素)。为了区分道路元素,实施例通过使用像素掩模、矢量掩模、边界框等将道路元素与其他区域隔离。
[0093] 最后,图13示出了将后期重投影处理应用于隔离子区域、同时避免将后期重投影处理应用于一个或多个层的至少一个其他区域的动作(动作1340)。通过示例的方式,LSR组件220以先前描述的方式执行LSR处理。在一些实施例中,LSR处理包括一个或多个变换,以用于变换一个或多个层或一个或多个层内的元素。这些变换包括单应变换、仿射变换、可逆图像变换、像素偏移调节、深度处理变换、矩阵变换或任何其他种类的图像变换(拉伸、歪斜、伸缩、旋转等)。此外,响应于计算机系统的一部分(例如,HMD)的某个预测姿势,将一个或多个变换应用于一个或多个层(或那些层内的元素)。这里,值得注意的是,在一些多层场景中,LSR处理应用于一个层中的所有像素,同时LSR处理仅应用于不同层中的像素子集。然而,在其他情况下,LSR处理应用于所有层中的所有像素。这种情况通常是最坏的情况。
[0094] 继续上面的示例,在道路元素被选择用于隔离之后,实施例对该道路元素执行LSR处理。例如,假定用户以某种方式改变她的位置或定向(例如,也许用户从站位变为坐位)。距离用户最远的道路部分可能在透视图或视图中没有太大变化。然而,响应于用户的位置变化,最靠近用户的道路部分可能在透视图中显著变化,从而超过总距离和/或加速度的移动阈值。响应于该新姿势,这些实施例对所标识的元素(例如,道路或道路的特定部分)执行LSR处理。
[0095] 如上面所指示的,该LSR处理还可以包括各种变换的选择性应用。这里,将需要将某些变换应用于道路元素,以确保其可视化响应于用户的位置变化被适当地绘制。例如,最接近用户的道路部分可能必须被拉伸、歪斜或以其他方式操纵,以确保道路被适当地对准并且被用户感知。结果,应用于所标识的子区域(例如,层400中的道路元素)的LSR处理可以不同于应用于该层内的其余区域的LSR处理(例如,也许没有LSR处理应用于山地景观元素,因为该元素被感知为非常远离用户,并且将响应于用户位置变化而变化很小)。
[0096] 在包括多个层的场景中,一个层(例如,顶层)的一部分将与底层的一部分重叠。结果,顶层的该部分混淆了底层的混淆部分。在这样的多层场景中,所标识的子区域可以被包括在使下面层的混淆部分混淆的顶层的部分内。这里,值得注意的是,在一些情况下,所标识的子区域将包括透明部分(例如,来自图6的透明部分630)。在这些情况下,即使在应用LSR处理之后,位于子区域的透明部分下面的下面层的部分也将通过透明部分可查看。
[0097] 因此,实施例支持对多层场景的层子区域选择性地应用LSR处理。
[0098] 将重投影处理选择性地应用于多层场景
[0099] 图14示出了由诸如图2中的计算机系统200之类的计算机系统执行的另一示例性方法1400,其中每个场景元素可以包括不同的层。
[0100] 首先,方法1400包括生成包括多个层的场景的动作(动作1410)。这里,场景生成组件210和层创建组件230协力工作以生成多层场景。正如上文,该场景可以被包括作为混合现实、增强现实或虚拟现实场景的一部分。
[0101] 在一些实施例中,该场景是响应于计算机系统的一部分(例如,HMD)的各种姿势而生成的。这些姿势包括:1)由IMU仪器确定的实际姿势,以及2)基于用户行为(例如,历史行为和当前行为两者)和预期移动两者的预测姿势。当生成预测姿势时,它基于先前的姿势确定。此外,预测的姿势数据用于增加实际姿势数据,使得计算机系统减少它多么经常地从其硬件IMU仪器获取数据。通过减少多么经常地实际收集数据,实施例延长了计算机系统的电池寿命。
[0102] 可以生成多个姿势确定。例如,一些实施例生成针对特定时间点的多个预测姿势确定(例如,针对时间X的十个不同姿势估计),其中每个预测姿势确定是关于HMD在该时间点将如何定位的估计。这些实施例向那些预测姿势确定中的每一者分配实现概率(例如,姿势Y具有52%的可能性被实现,姿势Z具有35%的可能性被实现,等等)。该概率是基于以下而被确定的:1)用户的历史行为,2)用户的当前移动,和/或3)在场景中当前正在发生或将很快发生的事件(例如,软件应用确定新的敌人将很快在特定位置和时间出现在场景中,并且软件应用估计用户将通过执行某个移动来对该新外观做出反应)。在概率确定完成之后,实施例选择排名最高的预测姿势,并且继续进行接下来的操作。
[0103] 其他实施例以不同方式生成多个预测姿势确定。这里,代替针对单个时间点生成多个预测姿势确定,这些实施例使连续预测姿势确定基于先前预测姿势确定。为了清楚起见,假定计算机系统以某个频率收集实际姿势数据,该频率也许是每20ms(该数字仅是一个示例,而不应当被视为限制度量,并且可以多于或少于20ms)。然而,特别地,场景可能需要以更快的速率更新。结果,这些实施例用预测的姿势数据来增强实际姿势数据。为了这样做,这些实施例至少部分地基于实际姿势数据来生成第一预测姿势,并且基于该第一预测姿势绘制场景。然后,实施例至少部分地基于第一预测姿势来生成第二预测姿势,并且然后基于该第二预测姿势绘制场景。该过程继续,其中连续的预测姿势基于先前的预测姿势,直到计算机系统再次获取实际姿势数据。结果,连续的预测姿势不同于计算机系统的部分的先前获取的实际确定姿势。在某些情况下(并且响应于各种预测姿势),应用于场景中的多个层的LSR处理被应用于那些层的所有像素。然而,在其他情况下,LSR处理仅应用于一个或多个层内的像素子集。
[0104] 方法1400还包括将LSR处理应用于多个层中的第一层的动作(动作1420)。这里,LSR组件220将LSR处理应用于层。特别地,一些实施例仅将LSR处理应用于特定层内的所标识的像素子集(例如,也许像素中的一些像素已经以本公开中早前描述的方式从该层中被预先滤除),而其他实施例将LSR处理应用于多个层的所有像素。
[0105] 方法1400还包括将LSR处理应用于多个层中的第二层的动作(动作1430)。应用于该第二层的LSR处理独立于第一层的LSR处理而被执行。此外,应用于第二层的LSR处理包括一个或多个变换(例如,可逆图像变换和/或矩阵变换)。这些变换应用于第二层,但是没有应用于第一层。基于检测不同层的不同属性,和/或基于检测已经满足或不满足用于不同层的不同移动阈值,应用于第一层和第二层的不同变换可以不同。存储和访问的参数限定何时应当将不同的变换应用于不同的层。
[0106] 在稍后将描述的后续合成过程期间,还可以应用附加的变换。因此,可以在各种不同时间将图像变换应用于层。与上面的动作类似,LSR组件220应用该LSR处理。结果,LSR组件220能够在不同时间将不同的LSR处理应用于不同的层。
[0107] 这里,值得注意的是,可以将各种各样的变换应用于层。除了上面提到的变换(即,单应变换、仿射变换、可逆图像变换、深度处理变换、像素偏移变换、矩阵变换等)之外,变换还包括:1)平移,2)反射,3)旋转,或4)伸缩变换。可以应用各种其他变换,来改变层的其他特性。通过示例的方式,假定响应于用户位置的变化,应当向场景中引入新的眩光或反射(例如,也许计算机系统确定太阳光现在应当从图5中的房屋的窗户反射,并且应当投射到用户的眼睛中)。这种新的眩光或反射将影响用户如何查看场景,尤其是各种层的颜色和透明度方面。结果,可能需要更改场景的各种层的颜色或透明度。因此,除了尺寸变换之外,一个或多个变换还包括颜色和透明度变换。
[0108] 方法1400还包括创建一体化层的动作(动作1440)。通过将各种层合成在一起(例如,变换后的第二层与第一层),来创建该一体化层。这里,层创建组件230创建该一体化层。
[0109] 一些实施例通过以先前在本公开中描述的方式在第二层周围生成缓冲区域来执行该合成。此外,将变换后的第二层与第一层合成可以使得变换后的第二层与第一层的一部分重叠。结果,变换后的第二层至少部分地混淆第一层的一部分。然而,层中的一些层可以包括(多个)透明部分。由于该(多个)透明部分,(多个)透明部分下面的内容通过(多个)透明部分可查看。
[0110] 最后,方法1400包括绘制一体化层的动作(动作1450)。该一体化层可以绘制在HMD上。这里,绘制组件240绘制一体化层。
[0111] 一些实施例支持在HMD上的视网膜中央凹式绘制,使得使用视网膜中央凹式绘制技术来绘制一体化层。为了清楚起见,如果底层计算机系统包括HMD,则通过在HMD上绘制一体化层来执行一体化层的绘制。
[0112] 尽管未在图14中示出,但是其他实施例包括从各种层预先过滤像素的动作。例如,可以从第一层的其他像素中预先过滤第一层的一些像素。备选地,可以从不同层的像素中预先过滤第一层的一些像素(例如,在一体化的合成层的情况下)。该预先过滤处理通过应用像素掩模或矢量掩模来执行。在这些实施例中,预先过滤的像素中的至少一些像素被标识为是边缘像素。这些边缘像素被确定为对场景质量的贡献小于非过滤或非边缘像素。因为这些像素对场景质量的贡献较小,所以实施例通过跳过对这些像素的LSR处理来优化电池寿命。
[0113] 其他实施例生成计算机系统的部分(例如,HMD)的附加预测姿势。这些实施例通过再次将第二层与第一层合成来创建新的一体化层。在一些情况下,响应于与预测的下一姿势相关联的定向变化,先前通过第二层的透明部分可查看的第一层的部分现在被混淆。现在,响应于与预测的下一姿势相关联的定向变化,原来通过第二层的透明部分不可查看的第一层的新部分变为通过透明部分可查看(例如,图6所示的通过窗户的山地景观的新视图现在可查看)。
[0114] 一些实施例还确定第一层的先前重叠部分何时仍然与第二层重叠,即使响应于计算机系统的部分的预测的下一姿势(例如,图6中的在房屋的底部附近的山地景观的部分仍然重叠)。作为响应,这些实施例跳过第一层的重叠部分的LSR处理。为了清楚起见,实施例将LSR处理应用于第一层的一些部分,同时避免将LSR处理应用于仍然与第二层重叠的第一层的重叠部分。结果,实施例动态地确定何时LSR处理是可避免的,并且通过在那些可避免的情况期间跳过LSR处理来有效地优化计算机系统的电池寿命。
[0115] 将理解,虽然本公开的大部分内容强调基于HMD的姿势来生成姿势数据,但是情况并非总是如此。例如,所公开的实施例还能够生成HMD与不同的身体上设备(例如,手持设备、脚部设备、胸部设备等)或甚至没有位于用户的身体上的设备(例如基站,其位于房间中,并且用于通过映射和详细描述房间内容来进一步增强混合现实体验)之间的关系姿势数据。因此,除了基于HMD的姿势生成场景之外,实施例还能够基于HMD与各种身体上和/或基础设备之间的关系来生成场景。这里,一个简短示例将是有帮助的。假定用户穿戴HMD并且持有手持设备。当沉浸在场景中时,可以将激光枪可视化为附接到用户的手臂。为了计算激光枪的正确定向和姿势,计算机系统依赖于从HMD和手持设备两者收集的姿势数据。因此,本文中讨论的实施例不限于仅基于从HMD获取的姿势数据生成场景。相反,实施例还能够基于从其他类型的身体上和/或基础设备收集的姿势数据来生成场景。
[0116] 因此,本公开呈现了优化用于包括多个层的计算机生成的场景的LSR处理的系统、硬件存储设备和方法。一些实施例使得将LSR处理选择性地应用于层的各种子区域。其他实施例使得将LSR处理选择性地应用于多层场景。作为这些过程的结果,本文中呈现的实施例优化并且选择性地应用LSR处理,从而可以有助于节省否则通用LSR处理将会花费的功率。
[0117] 在不脱离本发明的精神或特性的情况下,可以以其他具体形式来体现本发明。所描述的实施例在所有方面仅被认为是说明性的而非限制性的。因此,本发明的范围由所附权利要求而不是由前面的描述来指示。在权利要求的等同物的含义和范围内的所有变化都要被包含在其范围内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈