首页> 中国专利> 动态面板掩膜

动态面板掩膜

摘要

在头戴式显示器(HMD)的一个或多个显示面板上渲染的一个或多个面板掩膜的尺寸可以根据需要动态地调整(增加/减小),以从视图中隐藏不想要的视觉伪像。例如,如果正使用重投影在所述HMD的所述显示面板上渲染帧,则可以基于所述HMD的旋转来调整与所述面板掩膜的至少一部分相关联的尺寸值,以将所述面板掩膜的至少所述部分的尺寸从当前尺寸增加或减小到经调整尺寸,并且可以通过所述经调整尺寸的所述面板掩膜的至少所述部分来渲染所述面板掩膜,以隐藏不想要的视觉伪像。如果重投影停止和/或如果头部旋转停止或减慢,则所述面板掩膜的所述部分的所述尺寸随后可以在一段时间内减小。

著录项

  • 公开/公告号CN112384843A

    专利类型发明专利

  • 公开/公告日2021-02-19

    原文格式PDF

  • 申请/专利权人 威尔乌集团;

    申请/专利号CN201980045960.0

  • 发明设计人 A·弗拉霍斯;

    申请日2019-07-11

  • 分类号G02B27/01(20060101);G02B30/30(20200101);

  • 代理机构72002 永新专利商标代理有限公司;

  • 代理人韩宏

  • 地址 美国华盛顿

  • 入库时间 2023-06-19 09:54:18

说明书

本申请是要求于2018年7月11日提交的题为“动态面板掩膜(DYNAMIC PANELMASKING)”的美国专利申请序列号16/033,162的优先权的PCT申请,所述美国专利申请特此通过引用以其全文并入。

背景技术

在视频游戏行业内外都使用虚拟现实(VR)系统。用于VR系统的显示器,如嵌入在VR头戴式耳机中的显示器通常以适合于VR应用程序的最小刷新率操作。例如,90赫兹(Hz)是VR显示器的常用刷新率。在“实时渲染”场景中,基于图形的应用程序,如视频游戏以与显示器的刷新率匹配的帧速率输出用于渲染的帧,这意味着在每次屏幕刷新时显示从应用程序接收到的新帧(本文中被称为“实际帧”)。此类实时渲染场景通常被称为应用程序“达到帧速率”。

实际上,由于各种原因,应用程序并不总是能达到帧速率。例如,应用程序可以间歇性地丢弃帧,和/或应用程序可以以较慢的速率(例如,当理想帧速率为90帧/秒时,以45帧/秒)临时输出帧。在应用程序未达到帧速率的情况下,可以使用一种被称为“仅旋转重投影”的技术以考虑用户头部旋转的方式用重投影的帧替代丢失的帧,使得看起来对用户来说就如同应用程序正在达到帧速率一样。例如,如果没有重投影,则来自应用程序的不足帧速率可能会导致游戏中的卡顿或中断。在VR应用程序中,在用户完全沉浸在虚拟环境中的情况下,如果应用程序未能达到帧速率并且没有重投影来补偿丢失的帧,则用户可能会感到恶心。因此,重投影是一种在应用程序未达到帧速率时允许有更好的用户体验的技术。考虑应用程序以理想帧速率的一半(例如,45帧/秒,其中90帧/秒是理想帧速率)输出帧的实例。在此实例中,可以使用来自最近渲染的实际帧的像素数据对每个其它帧进行重投影,以创建重投影的帧,所述重投影的帧转换场景(例如,通过旋转和重投影计算)以使重投影的场景与用户当前的头部朝向匹配。这使得看起来对用户来说就如同场景以给定用户头部旋转的预期方式移动一样,即使当使用重投影的帧来补偿应用程序未能达到帧速率时。

尽管仅旋转重投影防止游戏中的卡顿或中断,但其在头部旋转期间至少在使用低持续性显示器的VR系统中(例如,在显示器在一小部分帧时间内被照亮的情况下)会产生其自己不想要的视觉伪像。例如,当用户旋转他/她的头部时,仅旋转重投影可能导致频闪闪光出现在每个显示面板的在头部旋转的方向上的前缘处。在头部旋转期间会出现这种频闪闪光,这是因为显示面板的前缘处的像素在实际帧的有效像素与下一个重投影的帧中的纯黑色像素之间切换每一帧。在头部旋转期间在重投影的帧中会出现黑色像素,这是因为先前渲染的实际帧中没有可用的像素数据用于显示面板的前缘处的用于重投影的帧的像素。因此,当用户在使用重投影时旋转他/她的头部时,显示面板的在用户头部旋转方向上的前缘在黑色像素与被照亮的像素之间切换每一帧,从而在显示面板的前缘处造成不想要的频闪伪像。

本文提供改进和增强这些系统和其它系统的技术解决方案。

附图说明

参考附图描述具体实施方式。在图中,附图标记的最左边的一个或多个数字标识附图标记首次出现的图。在不同附图中使用同一附图标记指示类似或相同的组件或特征。

图1A是展示头戴式显示器(HMD)的示例左显示面板和右显示面板的图,其中在头部旋转期间使用动态地扩展的面板掩膜来渲染帧,同时使用重投影来处理帧,所述头部旋转的方向为向右(或正X)方向。

图1B是展示图1A的HMD的示例左显示面板和右显示面板的图,其中在头部旋转期间使用动态地扩展的面板掩膜来渲染帧,同时使用重投影来处理帧,所述头部旋转的方向为向左(或负X)方向。

图2是展示HMD的示例左显示面板和右显示面板的图,其示出了面板掩膜的完全收缩状态与面板掩膜的完全扩展状态之间的差异。

图3是展示HMD的示例左显示面板和右显示面板的另一个图,其示出了面板掩膜的完全收缩状态与面板掩膜的完全扩展状态之间的差异。

图4是根据本文所公开的实施例的用于动态地重新调整HMD的显示面板上的面板掩膜的一部分的尺寸的示例过程的流程图。

图5是根据本文所公开的实施例的用于动态地重新调整HMD的显示面板上的面板掩膜的一部分的尺寸的更详细示例过程的流程图。

图6展示了可以在其中实施本文所公开的技术的如VR头戴式耳机等可穿戴装置的示例组件。

具体实施方式

除了其它方面之外,本文所描述的是用于根据需要动态地调整(增加和减小)在头戴式显示器(HMD)的显示面板的外围处渲染的面板掩膜的尺寸以从视图中隐藏不想要的视觉伪像的技术。用户可以佩戴HMD,以使用户沉浸在虚拟现实(VR)环境或增强现实(AR)环境中。HMD的一个或多个显示面板基于由应用程序(例如,视频游戏)输出的帧来渲染图像,并且用户通过HMD中包含的光学器件查看这些图像,从而使用户感知到图像,就如同用户沉浸在VR或AR环境中一样。

可以在HMD的一个或多个显示面板的外围处渲染一个或多个面板掩膜,以提供围绕呈现在一个或多个显示面板上的图像的边界。面板掩膜很像相框一样给图像配框。在一些实施例中,可以模糊(例如,使用细微渐晕图)一个或多个面板掩膜的内边缘,以使面板掩膜在用户看来是靠近(或安置在)用户面部的近场对象,所述内边缘很像聚焦于远场对象时看到的面部特征(例如,介于眼睛之间的鼻梁)一样。

如所提及的,HMD可以利用一种被称为“重投影”的技术来补偿未达到帧速率的应用程序。在“重投影”期间,佩戴HMD的用户可能会旋转他/她的头部,如所提及的,这可能会导致不想要的频闪伪像出现在一个或多个显示面板的目前未被面板掩膜覆盖的前缘处。因此,HMD可以检测何时使用或不使用重投影,并且可以基于是否正使用或不使用重投影来动态地调整面板掩膜的至少一部分的尺寸。例如,在正在进行重投影的情况下,可以根据HMD在重投影期间的旋转量以适当的量调整(例如,远离显示面板的中心收缩或朝显示面板的中心扩展)面板掩膜的一部分。这允许覆盖(或隐藏)可能会在与头部移动结合的重投影期间表现的不想要的视觉伪像,如频闪闪光。例如,如果在帧被重投影的同时用户在向右的方向上旋转他/她的头部,则可以增加在一个或多个显示面板的前(例如,右)缘处的面板掩膜的一部分的尺寸,以确保不想要的频闪伪像被面板掩膜覆盖,使得用户在显示面板的图像区域中看不到频闪闪光。当用户随后减慢或停止头部旋转时,或当应用程序再次达到帧速率时(即,停止使用重投影),面板掩膜的此扩展部分的尺寸可以随着时间的推移调整回完全收缩状态,以便在显示面板的图像区域中渲染场景的更多部分。这种基于头部旋转与重投影相结合的面板掩膜的至少一部分的动态地扩展和收缩的技术允许HMD的用户获得更好的观看体验,这是因为用户在头部旋转期间不会注意到由重投影引起的不想要的频闪伪像;如果存在频闪伪像,则面板掩膜会扩展以遮挡频闪伪像,并且在频闪伪像停止之后,面板掩膜会收缩以显露显示面板的图像区域中的场景的更多部分。

根据本文所描述的实施例的用于动态地调整面板掩膜的一部分的尺寸的示例过程包含以下:由一个或多个处理器确定是否正使用重投影在HMD的显示面板上渲染一系列帧,至少部分地基于是否正使用重投影渲染所述一系列帧确定面板掩膜的至少一部分的目标尺寸值,确定与所述面板掩膜的至少所述部分相关联的尺寸值被设置为不等于所述目标尺寸值的现有尺寸值,将所述尺寸值从所述现有尺寸值调整到所述目标尺寸值,以将所述面板掩膜的至少所述部分的尺寸从当前尺寸增加或减小到经调整尺寸,以及在所述显示面板上渲染所述一系列帧中的某个帧以及在所述显示面板的外围处渲染的所述面板掩膜,其中所述面板掩膜的至少所述部分以依据所述目标尺寸值的所述经调整尺寸渲染。如果尺寸调整是为了增加面板掩膜的一部分的尺寸,则如果停止使用重投影和/或如果头部旋转减慢或完全停止,则随后可以减小面板掩膜的一部分的尺寸。例如,如果停止使用重投影,则可以在一段时间内将面板掩膜的一部分的尺寸逐渐减小到最小尺寸或其它某个目标值。以此方式,面板掩膜收缩回到其完全收缩状态不会在视觉上分散用户的注意力。

本文还公开了系统,所述系统包含被配置成实施本文所公开的技术和过程的HMD以及存储用于实施本文所公开的技术和过程的计算机可执行指令的非暂时性计算机可读介质。尽管通过举例在视频游戏应用程序,并且具体地VR游戏应用程序的上下文中讨论了本文所公开的技术和系统,但应当理解的是,本文所描述的技术和系统可以为使用HMD的其它应用程序提供益处,包含但不限于非VR应用程序(例如,AR应用程序)和/或非游戏应用程序,如工业机器应用程序、国防应用程序、机器人应用程序等。

图1A是展示包含构成一对显示面板的左显示面板102(L)和右显示面板102(R)的示例头戴式显示器(HMD)100的图。尽管示例HMD 100包含两个显示面板102(L)和102(R),但是应当理解的是,HMD 100可以包含单个显示面板102或者多于两个显示面板102。因此,如本文所使用的“显示面板102”可以是指如图1A所示的两面板HMD 100的显示面板102(L)或102(R)中的任一个,或者可以指具有任何数量的显示面板的HMD 100(例如,单面板HMD100或多面板HMD 100)的单个显示面板102。

一个或多个显示面板102可以表示任何合适类型的显示器,如在一个或多个显示面板102上呈现图像帧(本文中被称为“帧”)期间利用发光元件发射光的发射式显示器。作为实例,左显示面板102(L)和右显示面板102(R)可以包括液晶显示器(LCD)、有机发光二极管(OLED)显示器、无机发光二极管(ILED)显示器或利用适合的显示技术用于HMD应用程序的任何其它合适类型的显示器。

HMD 100可以表示VR系统中使用的,如与VR游戏系统一起使用的VR头戴式耳机。然而,HMD 100可以另外地或可替代地被实施为AR头戴式耳机以用于AR应用程序。在AR中,用户看到覆盖在真实世界环境上的虚拟对象,而在VR中,用户看不到真实世界环境,而是完全沉浸在虚拟环境中,如通过HMD 100的显示面板102和光学器件(例如,透镜)感知到的那样。本文所描述的实例主要涉及基于VR的HMD 100,但是应当理解的是,HMD 100不限于在VR应用程序中的实施方案。

通常,在计算装置,如HMD 100本身或与HMD 100相关联并且耦合到其的计算装置(例如,个人计算机(PC)、游戏控制台等)上执行的应用程序可以被配置成输出最终在HMD100的一个或多个显示面板102上渲染的一系列帧106。帧106的图像数据呈现在一个或多个显示面板102的未被面板掩膜110覆盖的图像区域108内。图1A示出了在左显示面板102(L)的中心处和左面板掩膜110(L)内的左图像区域108(L)以及在右显示面板102(R)的中心处和右面板掩膜110(R)内的右图像区域108(R)。

所述一系列帧106可以从视频游戏应用程序或任何其它类型的基于图形的应用程序输出。可以在输出每像素值(例如,颜色值)的图形管道中执行所述应用程序,所述每像素值被组合以在一个或多个显示面板102上创建具有期望的视觉效果的图像(在图像区域108内)。在运行期间,HMD 100的头部跟踪模块可以生成关于HMD 100的定位和姿态的数据,所述数据被提供给应用程序以通知应用程序如何根据用户的104头部定位/姿态渲染所述一系列帧106中的下一帧106。这允许以使用户104相信他/她正在查看包含对象(静态对象和移动对象两者)的虚拟环境周围的方式来渲染一个或多个显示面板102上的一个或多个图像区域108内的图像,并且这些对象与用户104的头部移动一起在场景内以预期的方式移动。

如所提及的,在左显示面板102(L)的外围处渲染左面板掩膜110(L),并且在右显示面板102(R)的外围处渲染右面板掩膜110(R)。如本文所使用,“面板掩膜110”可以指如图1A所示的面板掩膜110(L)或110(R)中的任一个。然而,单面板HMD 100可以包含围绕单个显示面板102的图像区域108的单个面板掩膜110。在启动时,HMD 100可以计算用于一个或多个面板掩膜110的网格,所述网格用于在一个或多个显示面板102的外围处渲染处于完全收缩状态的一个或多个面板掩膜110,这意味着一个或多个面板掩膜110的尺寸可动态地调整的一部分最初以最小尺寸渲染以显露一个或多个图像区域108内的场景的更多部分。通常,一个或多个面板掩膜110可以与每个帧一起被持久地渲染,尽管可以根据需要在所述帧的特定帧中调整一个或多个面板掩膜110的各个部分的尺寸以隐藏不想要的视觉伪像。在一些实施例中,一个或多个面板掩膜110可以被实施为一个或多个显示面板102的外围处的多个黑色像素,所述多个黑色像素可以在渲染帧之前添加到帧缓冲器。尽管在图中将一个或多个面板掩膜110描绘为包围总体上圆形的图像区域108的总体上环形的面板掩膜,但应当理解的是,其它几何形状可以用于实施一个或多个面板掩膜110,如通过将一个或多个面板掩膜110渲染为围绕图像区域108的正方形、矩形或其它几何形状的帧。在一些实施例中,一个或多个面板掩膜110可以被实施为对应于红色通道、绿色通道和蓝色通道的三个单独的面板掩膜,其中三个面板掩膜110中的每个单独的面板掩膜110是基于HMD 100中包含的光学器件的已知色度失真而成形的,以减轻可能在显示面板102的外边缘处或附近发生的色边效应。例如,当用户104通过HMD 100中的透镜观看时,由于透镜在某种程度上使图像失真了,可能会出现一些自然的空间(径向)失真(在VR头戴式耳机中被称为“枕形”效应)。可能还会存在一些色度失真(例如,红色、绿色、蓝色(RGB)分离)。如果用户104的眼睛恰好离透镜组合件足够近,使得用户104实际上可以看到显示面板102的边缘,则用户102可以看到面板边缘上的来自分离RGB的色度失真的青色边缘,其中红色像素的色度失真最大(朝向显示面板102的中心),然后绿色像素的失真量较少,并且蓝色像素的失真量最少(例如,蓝色失真最少,保持最接近于面板的边缘,从而导致青色边缘效应)。对于能够看到色边的用户来说,这种色边可能相当分散注意力(取决于HMD 100中使用的泡沫的厚度、用户面部的空间几何结构等,用户104可能看到或者可能看不到色边)。因此,在每个显示面板102上的三面板掩膜实施方案的单独面板掩膜可以独立地遮掩红色、绿色和蓝色以减轻色边效应。

图1A示出了作为相对深灰色区域的左面板掩膜110(L)和作为相对浅灰色区域的右面板掩膜110(R)。这仅仅是为了在相关图中将两个面板掩膜彼此区分开,并且应当理解的是,可以在两个显示面板102(L)和102(R)上以统一的颜色(例如,黑色像素)渲染面板掩膜110(L)和110(R)。以此方式,用户104将两个面板掩膜110(L)和110(R)感知为围绕两个图像区域108(L)和108(R)的单面板掩膜,这很像人用包围每只眼睛的眼窝和鼻梁在近场视野中感知环境一样。如所提及的,可以(例如,使用细微渐晕图)稍微模糊每个面板掩膜110(L)和110(R)的内边缘112以模拟近场面部特征,这比尖锐的内边缘112更为人类所熟悉。

另外,面板掩膜110(L)和110(R)中每个的单独部分的尺寸可动态地调整,以根据需要针对所述一系列帧106中的每个帧106扩展和收缩面板掩膜110的一部分以覆盖更多或更少的图像区域108。例如,一个或多个面板掩膜110的一部分可以通过朝向一个或多个显示面板102的中心向内扩展而增加尺寸,这允许覆盖(或隐藏)在与头部旋转结合的重投影期间在一个或多个显示面板102的所述部分处表现的不想要的视觉伪像。

如所提及的,VR系统中使用的显示器通常以适合于VR应用程序的最小刷新率操作。如此,HMD 100的一个或多个显示面板102可以以例如90Hz的刷新率操作,这是VR显示器的常用刷新率。尽管90Hz被用作示例刷新率,但是应当理解的是,一个或多个显示面板102可以以其它不同的刷新率操作而不改变本文所公开的技术和系统的基本特性。在“实时渲染”场景中,输出所述一系列帧106的应用程序可以以与一个或多个显示面板102的刷新率相匹配的帧速率输出实际帧106(A)(例如,以90帧/秒输出实际帧106(A))。然而,在应用程序未达到帧速率的情况下(即,以低于90帧/秒的某一速率输出实际帧106(A)),HMD 100可以被配置成采用重投影(例如,仅旋转重投影)以用重投影的帧106(R)替代丢失的实际帧106(A),并且HMD 100可以以考虑用户104头部旋转的方式如此进行,使得看起来对用户104来说就如同应用程序正在达到帧速率一样并且场景以预期的给定的用户104头部旋转方式围绕显示面板102移动。图1A展示了此重投影场景—其中所述一系列帧106包含实际帧106(A)(1),然后是重投影的帧106(R)(2),然后是另一个实际帧106(A)(3)等等且依此类推。例如,在图1A的实例中,应用程序可以以理想帧速率的一半(例如,以45帧/秒的帧速率,其中90帧/秒是理想帧速率)输出帧。在此情况下,顺序实际帧106(A)之间每隔一帧就是重投影的帧106(R)。使用来自近期渲染的实际帧106(A)(例如,最近渲染的实际帧106(A))的像素数据生成重投影的帧106(R),以创建以考虑用户104头部旋转的方式进行转换(例如,通过旋转和重投影计算)的场景。假设在图1A中实际帧106(A)(1)在重投影的帧106(R)(2)之前被渲染,则重投影的帧106(R)(2)可以衍生自与先前渲染的实际帧106(A)(1)相关联的像素数据。在此情况下,将先前渲染的实际帧106(A)(1)的场景旋转并且重投影以用户104将预期给定的他/她的头部移动的方式来创建重投影的帧106(R)(2)。

当使用重投影在HMD 100的一个或多个显示面板102上渲染所述一系列帧106时,并且当用户104旋转他/她的头部时,频闪闪光可能会出现在每个显示面板102的在头部旋转方向上的前缘处。例如,在图1A中,用户104被示为在向右(即,正X)旋转方向上旋转他/她的头部。在此场景下,上述频闪闪光可能会在重投影期间发生,并且可能表现在每个显示面板102(L)和102(R)的右边缘(即,在旋转方向上的前缘)处,这是因为先前渲染的实际帧106(A)(1)中没有可用的像素数据来渲染在每个显示面板102(L)和102(R)的右边缘处的用于重投影的帧106(R)(2)的像素,由于用户106已经在向右的方向上进行了旋转。因此,HMD100可以被配置成动态地增加每个面板掩膜110的右侧部分的尺寸以覆盖(或隐藏)此不想要的视觉伪像。在不改变每个面板掩膜110的右侧部分的尺寸的情况下,此频闪伪像可以在一个或多个显示面板102的一个或多个图像区域108内可见。

在说明性实例中,HMD 100可以包含逻辑(例如,软件、硬件和/或固件等),所述逻辑被配置成确定是否正使用重投影在HMD 100的一个或多个显示面板102上渲染一系列帧106。也就是说,逻辑可以确定所述一系列帧106中的帧106中的一个或多个是否是从像素数据生成的重投影的帧106(R),所述像素数据与从应用程序接收的已在一个或多个显示面板102上渲染的实际帧106(A)相关联。在一些实施例中,逻辑可以在渲染重投影的帧106(R)(2)时进行此确定。在其它实施例中,逻辑可以在渲染实际帧106(A)(1)之后,但在渲染重投影的帧106(R)(2)之前进行此确定。在任何情况下,如果正使用重投影,则逻辑还可以被配置成至少部分地基于由HMD 100的头部跟踪模块提供的指示HMD 100已经旋转(例如,在时间t

图1B是展示图1A的HMD 100的示例左显示面板和右显示面板102的图,其中在头部旋转期间使用动态地扩展的一个或多个面板掩膜110渲染帧106(例如,实际帧106(A)(3)),同时使用重投影来处理帧106,所述头部旋转的方向在图1B中为与图1A所示的旋转方向相反的向左(或负X)方向。在图1B的场景中,HMD 100的逻辑被配置成以类似于其在图1A的场景中响应的方式进行响应,区别在于响应于由HMD 100检测的不同旋转方向对每个面板掩膜110的不同部分(即,左侧部分)的尺寸进行了重新调整。例如,当在重投影期间存在向左(即,负X)旋转时,将每个面板掩膜110的左侧部分向内拉以扩展面板掩膜110的左侧部分的尺寸,使得在一个或多个显示面板102的左边缘/侧上的图像区域108的更多部分被一个或多个面板掩膜110覆盖。

同样,可以理解的是,向上或向下方向的头部旋转可以分别引起每个面板掩膜110的顶部部分和底部部分的尺寸动态地增加(例如,通过朝向一个或多个显示面板102的中心向内扩展),使得一个或多个显示面板102的顶部/底部边缘/侧的图像区域108的更多部分被一个或多个面板掩膜110覆盖。可以理解的是,如果HMD 100的旋转方向性是同时具有X和Y分量两者的向量,则这可能引起面板掩膜110的相邻部分的尺寸同时扩展。例如,如果用户104将他/她的头对角线地旋转到图1A和1B所示的参考坐标系的正X-Y象限,则一个或多个面板掩膜110的右侧部分和顶部部分两者的尺寸都可以同时扩展,使得面板掩膜110的两个相邻部分同时朝向显示面板102的中心向内扩展。还可以理解的是,在一些实施方案中,全部一个或多个面板掩膜110(即,所有部分)的尺寸可以扩展,使得一个或多个图像区域108随着一个或多个图像区域108的更多部分被扩展的一个或多个面板掩膜110覆盖而收缩(或变小)。随后,当全部一个或多个面板掩膜110收缩到更小的尺寸时,一个或多个图像区域108可以随着更小的一个或多个图像区域108被收缩的一个或多个面板掩膜110覆盖而扩张回到一个或多个图像区域108的最大尺寸。

图2是展示了HMD 100的示例左显示面板和右显示面板102的图,其示出了在图2顶部处的一个或多个面板掩膜110的完全收缩状态与在图2底部处的一个或多个面板掩膜110的完全扩展状态之间的差异。如所提及的,可以根据需要动态地调整每个显示面板102的面板掩膜110的各个部分的尺寸,以覆盖每个显示面板102的图像区域108的更多或更少部分。这些尺寸调整可能有限制或界限。例如,面板掩膜110的各个部分可以增加到但不超过最大尺寸,并减小到但不低于最小尺寸。在此意义上,面板掩膜110可以与每一帧一起被持久地渲染,并且其尺寸是可基于介于最小尺寸值(例如,“0”)与最大尺寸值(例如,“1”)之间的值来控制的。换句话说,面板掩膜110的各个部分的尺寸值被夹在最小尺寸值(例如,“0”)与最大尺寸值(例如,“1”)之间,但是可调整到这两个界限之间的任何数字,包含这两个界限。一种思考方法是百分比调整(例如,0是0%、0.4是40%、0.6是60%、1是100%,等等)。如上所述,可以针对面板掩膜110的各个部分独立地控制此尺寸调整。

例如,考虑将左面板掩膜110(L)划分为四个部分,包含左侧部分110(L)(1)、顶部部分110(L)(2)、右侧部分110(L)(3)和底部部分110(L)(4)。同样,可以将右面板掩膜110(R)划分为四个部分,包含左侧部分110(R)(1)、顶部部分110(R)(2)、右侧部分110(R)(3)和底部部分110(R)(4)。面板掩膜110的这些部分中的每个部分的尺寸可以在对应于在图2的顶部处的完全收缩状态的最小尺寸值(例如,设置为“0”的尺寸值)与对应于在图2的底部处的完全扩展状态的最大尺寸值(例如,设置为“1”的尺寸值)之间进行调整。因此,对于每个面板掩膜110,可以至少有四个可动态地调整的尺寸值以控制面板掩膜110的各个部分的尺寸。可以通过将尺寸值设置为最小尺寸值与最大尺寸值之间的值(例如,介于“0”与“1”之间的尺寸值)来将面板掩膜110(在面板掩膜110的每个部分处)的内边缘112在最小程度(在图2的顶部处示出)与最大程度(在图2的底部处示出)之间移动一半。无论是否正使用重投影和/或是否存在头部旋转,都可以存在以最小尺寸(即,在完全收缩状态下)持续地渲染一个或多个面板掩膜110的原因。例如,一些HMD 100可以在显示面板102的外边缘处或附近表现出色边,并且可以期望覆盖(或隐藏)此类视觉伪像以避免其分散用户104的注意力。同时,一个或多个面板掩膜110需要扩展尺寸以超过最大尺寸值,这是因为当用户104佩戴HMD100时,所述HMD的旋转速率存在实际限制,并且当用户104高速旋转他/她的头部时可感知视觉元素存在实际限制。例如,普通用户104实际上不可能将他/她的头部旋转到特定阈值角速度以上,并且因此,在此方面,面板掩膜110可不需要扩展以覆盖整个显示面板102的;面板掩膜的扩展可以“引入”视场,足以覆盖不想要的视觉伪像。此外,即使用户104可以将他/她的头部旋转超过此阈值角速度,用户104也将无法辨别在这些高速旋转下表现的不想要的视觉伪像,因为当视场快速变化时,眼睛根本无法跟踪这些视觉元素。

图3是展示HMD 100的示例左显示面板102(L)和右显示面板102(R)的另一个图,其示出了面板掩膜110(L)和110(R)的完全收缩状态与面板掩膜110(L)和110(R)的完全扩展状态之间的差异。在图3中,完全收缩状态由虚线示出,所述虚线表示面板掩膜110的内边缘112将处于完全收缩状态中。面板掩膜110的每个部分(例如,顶部部分、底部部分、左侧部分和右侧部分)的尺寸值(SV)可以设置为零(例如,SV=0),以将面板掩膜110的所述部分的内边缘112远离显示面板102的中心向外移动,使得面板掩膜110的一部分减小到其最小尺寸。在HMD 100启动时,面板掩膜110的各个部分的尺寸值可以设置为零。在图3中,一个或多个面板掩膜110的完全扩展状态由实线示出,所述实线表示面板掩膜110的内边缘112将处于完全扩展状态中。面板掩膜110的每个部分的尺寸值可以设置为一(例如,SV=1),以将面板掩膜110的所述部分的内边缘112朝向显示面板102的中心向内移动,使得面板掩膜110的一部分增大到其最大尺寸。如所提及的,通过将每个部分的尺寸值设置为最小尺寸值(例如,“0”)与最大尺寸值(例如,“1”)之间的中间值,可以将面板掩膜110的各个部分调整到最小尺寸与最大尺寸之间的中间尺寸。

本文所描述的过程被展示为逻辑流程图中的框集合,所述过程表示可以以硬件、软件、固件或其组合(即,逻辑)实施的操作序列。在软件的上下文中,框表示计算机可执行指令,当由一个或多个处理器执行时,所述计算机可执行指令执行操作。通常,计算机可执行指令包含执行特定功能或实施特定抽象数据类型的例程、程序、对象、组件、数据结构等。所描述的操作顺序不旨在被解释为是限制性的,并且任何数量的所描述的框可以以任何顺序和/或并行组合以实施过程。

图4是根据本文所公开的实施例的用于动态地重新调整HMD 100的显示面板102上的面板掩膜110的一部分的尺寸的示例过程400的流程图。为了讨论目的,参考前面的图描述了过程400。

在402处,HMD 100的逻辑可以确定一个或多个面板掩膜110的至少一个或多个部分的一个或多个目标尺寸值。对于给定帧106,HMD 100的逻辑可以例如确定对应于左面板掩膜110(L)的左侧部分110(L)(1)、顶部部分110(L)(2)、右侧部分110(L)(3)和底部部分110(L)(4)的四个目标尺寸值以及对应于右面板掩膜110(R)的左侧部分110(R)(1)、顶部部分110(R)(2)、右侧部分110(R)(3)和底部部分110(R)(4)的四个目标尺寸值。因此,在框402处,可以确定针对给定帧106渲染左面板掩膜110(L)和右面板掩膜110的两面板HMD 100的总共八个目标尺寸值。在框402处对一个或多个目标尺寸值的确定可以取决于当前是否正使用重投影来渲染所述一系列帧106。如果正在进行重投影(例如,如果给定帧106是正使用重投影渲染的一系列帧106的一部分),则可以至少部分地基于由HMD 100的头部跟踪模块提供的旋转数据来确定一个或多个目标尺寸值。如果没有正在进行重投影,则在框402处可以将一个或多个目标尺寸值设置为一个或多个零值。如所提及的,面板掩膜110的各个部分的目标尺寸值可以被夹在最小尺寸值(例如,“0”)与最大尺寸值(例如,“1”)之间,使得目标尺寸值可以设置为介于这两个界限之间(例如,介于“0”与“1”之间)的任何值,包含这两个界限。具体地,当正在进行重投影时,目标尺寸值可以被计算为对应于HMD 100已经旋转的量的值。例如,HMD 100旋转的更大数量对应于更接近最大尺寸值(例如,“1”)的目标尺寸值,并且HMD 100旋转的更小数量对应于更接近最小尺寸值的目标尺寸值(例如,“0”)。

在404处,假设目标尺寸值不等于现有尺寸值,HMD 100的逻辑可以将与面板掩膜110的至少一部分相关联的尺寸值从现有尺寸值调整到在框402处确定的目标尺寸值。也就是说,如果目标尺寸值等于现有尺寸值,则逻辑可以在框404处避免进行尺寸调整。因此,如果正在进行重投影,并且如果逻辑确定与面板掩膜的一部分相关联的尺寸值被设置为小于目标尺寸值的现有尺寸值,则在框404处的调整可以导致面板掩膜110的至少一部分的尺寸从当前尺寸增加到增加的尺寸。如果没有正在进行重投影(在框402处导致目标尺寸值为零)并且如果现有尺寸值当前为非零,或者如果正在进行重投影并且非零目标尺寸值以其它方式小于现有尺寸值,则在框404处的调整可以导致面板掩膜110的至少一部分的尺寸从当前尺寸减小到减小的尺寸。在框404处将尺寸向下调整到减小的尺寸可以是从当前尺寸值到较小目标值(例如,最小值或其它某个目标值)少量(例如,每帧lerp值0.005)的缓慢内插。在一些实施例中,在框404处将尺寸向下调整进一步以以下为条件:在当前帧106之前的预定数量的连续帧106的过程中没有增加面板掩膜110的一部分的尺寸。例如,如果面板掩膜110的一部分的尺寸在最后十个连续帧中未增加,则可以将尺寸向下调整到减小的尺寸。否则,如果不满足此连续帧标准,则在框404处可以不对尺寸值进行任何调整。

在406处,HMD 100的逻辑可以在显示面板102上渲染所述一系列帧106的帧106以及在显示面板102的外围处渲染的面板掩膜110,其中面板掩膜110的至少一部分以依据目标尺寸值的某一尺寸(例如,经调整尺寸)渲染。

过程400允许通过面板掩膜110扩展以覆盖显示面板102的以其它方式存在不想要的视觉伪像的区域而隐藏在与头部旋转结合的重投影期间可能发生的不想要的视觉伪像。这通过举例并非限制性地示出于图1A和1B中,其中每个显示面板102上的面板掩膜110的一部分的尺寸从当前尺寸增加到增加的尺寸并且在一个或多个显示面板102上与帧106一起被渲染。

图5是根据本文所公开的实施例的用于动态地重新调整HMD 100的显示面板102上的面板掩膜110的一部分的尺寸的更详细的示例过程500的流程图。为了讨论目的,参考前面的图描述了过程500。

在502处,处理一系列帧106中的帧106以在HMD 100的一个或多个显示面板102上渲染。此时,要与帧106一起在一个或多个显示面板102上渲染的一个或多个面板掩膜110的与一个或多个面板掩膜110的各个部分相关联的尺寸值可以被设置为指示一个或多个面板掩膜110的那些部分是否处于完全收缩状态、完全扩展状态的或者介于两者之间的现有尺寸值。当一个或多个面板掩膜110先前没有被扩展到增加的尺寸时,每个部分的现有尺寸值可以被设置为对应于完全收缩状态的最小尺寸值(例如,尺寸值为零)。

在504处,HMD 100的逻辑可以可以确定所述一系列帧106中的最近渲染的帧106是否是衍生自像素数据的重投影的帧106(R),所述像素数据与从应用程序接收的先前渲染的实际帧106(A)相关联。换句话说,HMD 100的逻辑确定当前是否正在进行重投影。如果在504处确定正使用重投影在HMD 100的一个或多个显示面板102上渲染所述一系列帧106,则过程500可以遵循从框504到框506的“是”路径。

在506处,HMD 100的逻辑可以至少部分地基于由HMD 100的头部跟踪模块提供的旋转数据来确定面板掩膜110的各个部分的目标尺寸值。例如,可以基于HMD 100旋转确定四个目标尺寸值,每个方向上所述目标尺寸值夹在0.0到1.0。也就是说,可以为面板掩膜110的左侧部分确定介于0与1(包含端值)之间的第一目标尺寸值,可以为面板掩膜110的顶部部分确定介于0与1(包含端值)之间的第二目标尺寸值,可以为面板掩膜110的右侧部分确定介于0与1(包含端值)之间的第三目标尺寸值,并且可以为面板掩膜110的底部部分确定介于0与1(包含端值)之间的第四目标尺寸值。这可以针对每个面板掩膜110进行,这意味着可以在框506处可以针对左面板掩膜110(L)和右面板掩膜110(R)确定总共八个目标尺寸值。通常,HMD 100旋转的方向和量分别指示面板掩膜110的一部分和面板掩膜110的所述一部分的目标尺寸值。

如子框508所示,HMD 100的逻辑可以基于由HMD 100的头部跟踪模块提供的旋转数据来确定自最后一次渲染所述一系列帧106的经渲染帧106以来的一段时间内HMD 100的每个方向的旋转量(例如,左、右、上和下方向的旋转量)。以任何测量单位确定旋转量的任何合适方式可以用于框508处的确定。例如,可以将帧之间的旋转度数确定为旋转量。在一些实施例中,在框508处确定的旋转量可以是角速度的形式。HMD 100旋转的方向性可以参考正或负水平和竖直方向或任何其它合适形式的方向测量来确定,并且HMD 100旋转的方向性可以分解为分量方向(例如,X-Y平面中的左、右、上和/或下方向)。因此,在框506处的逻辑可以包含确定一个或多个面板掩膜110的多个部分中的对应于HMD 100旋转的方向的一个或多个部分。通常,HMD 100的旋转量越大,目标尺寸值越大,使得显示面板102上的图像区域108的更多部分被面板掩膜110覆盖,从而旋转量更大。在此意义上,可以存在对应于面板掩膜110的一部分的最大尺寸值的旋转量阈值,并且如果HMD 100的旋转量满足或超过此阈值量,则可以在框506处选择最大尺寸值作为目标尺寸值。如果HMD 100的旋转量小于此阈值量,则目标尺寸值被确定为小于最大尺寸值的某个值。在一些实施例中,可以基于用于前一帧106和当前帧106的重投影变换的相对差来确定目标尺寸值。也就是说,代替或者除了确定HMD 100的旋转量之外,在前一帧106和当前帧106期间使用的重投影变换之间的相对差可以用于驱动基于以下概念的目标尺寸值的计算:重投影变换之间的差越大,显示面板的更多部分会表现出不想要的视觉伪像(例如,黑色像素之间和照明/有效像素之间的频闪闪光)。

如果在504处确定未正使用重投影在HMD 100的一个或多个显示面板102上渲染所述一系列帧106,则过程500可以遵循从框504到框510的“否”路径。在先前的迭代之后,在框504处的此确定可以是重投影已经停止的确定。例如,在渲染帧106并且在502处继续处理下一帧之后,HMD 100的逻辑可以确定无需重投影来渲染所述一系列帧106(例如,无需任何重投影的帧106(R)),这指示已停止使用重投影。换句话说,要在显示面板102上渲染的一个或多个未来帧可以不包含任何重投影的帧102(R),这指示重投影的使用已经停止或者当前未以其它方式发生。当应用程序在先前未能达到帧速率后达到帧速率时,可能会发生这种情况。

在510处,HMD 100的逻辑可以将面板掩膜110的各个部分的目标尺寸值设置为零(或最小尺寸值)。例如,在框510处,可以将对应于面板掩膜110的左侧部分、顶部部分、右侧部分和底部部分的四个目标尺寸值设置为零。

在512处,在框506/508或在框510之后,HMD 100的逻辑可以针对面板掩膜110的每个单独部分确定目标尺寸值是否大于面板掩膜110的一部分的现有尺寸值。如果在框512处确定目标尺寸值大于现有尺寸值,则过程500可以遵循从框512到框514的“是”路径。

在514处,HMD 100的逻辑可以将与面板掩膜110的一部分相关联的尺寸值从现有尺寸值调整(或改变)到目标尺寸值,以将面板掩膜110的一部分的尺寸从当前尺寸增加到增加的尺寸。如所指示的,此尺寸增加调整可以基于目标尺寸值大于现有尺寸值,从而指示面板掩膜110的一部分将被向内带入以覆盖图像区域108的更多部分。在一些实施例中,框514处的尺寸调整被暂时平滑以减轻突然的视野变化。

在516处,HMD 100的逻辑可以在一个或多个显示面板102上渲染帧106以及在一个或多个显示面板102的外围处渲染的一个或多个面板掩膜110,其中面板掩膜的至少一部分以依据目标尺寸值的尺寸渲染,并且在框518处,针对下一帧,所述一系列帧106中的下一帧106可以通过从框502迭代来处理。在框514之后,由于从现有尺寸值增加到目标尺寸值,面板掩膜110可以在框516处以增加的尺寸渲染。还应当理解的是,对于具有一对显示面板(例如,左显示面板102(L)和右显示面板102(R))的HMD 100,可以针对每个面板掩膜110(L)和110(R)独立地执行图5的算法。实际上,每个掩膜的相同部分可以响应于在重投影期间的特定HMD 100旋转而以相同或类似的方式调整,如当每个显示面板102上的面板掩膜110的前缘部分朝向每个显示面板102的中心向内扩展时,如图1A和1B的实例中所描绘的。此外,针对根据新确定的目标尺寸值渲染的面板掩膜110的帧106可以是实际帧106(A)或重投影的帧106(R)。在至少一个实例中,在框504处确定正在发生重投影是基于先前渲染的重投影的帧106(R)。因此,后续帧可以是从应用程序接收的实际帧106(A),在这种情况下,在框516处根据所计算的目标尺寸值来渲染面板掩膜110以及实际帧106(A)。换句话说,当第一次检测到重投影时,用已经调整尺寸的面板掩膜110渲染的第一帧106可以是下一帧,其可以是从应用程序接收到的实际帧106(A)。然而,在一些实施例中,如当在顺序的实际帧106(A)之间渲染多个重投影的帧106(R)时(例如,当应用程序以例如30帧/秒输出帧,并且在每个实际帧106(A)之间渲染两个重投影的帧106(R)时),使用增加的尺寸的面板掩膜110渲染的第一帧106可以是下一重投影的帧106(R)。

返回参考框512,如果在框512处确定目标尺寸值不大于现有尺寸值,则过程500可以遵循从框512到框520的“否”路径。在520处,HMD 100的逻辑可以确定目标尺寸值(针对面板掩膜110的各个部分)是否小于现有尺寸值。如果框520处的回答是“否”,则过程500可以基于确定目标尺寸值等于现有尺寸值遵循从框520到框522的“否”路径。在522处,不对面板掩膜110的给定部分的尺寸值进行调整,并且在不对面板掩膜110的一部分的尺寸进行任何调整的情况下在框516处渲染帧。换句话说,如果确定面板掩膜110已经覆盖了其假设要覆盖的内容,则不进行调整。另一方面,如果在框520处确定面板掩膜110的一部分的目标尺寸值小于现有尺寸值,则过程500可以遵循从框520到框524的“是”路径。

在524处,HMD 100的逻辑可以确定是否已在不增加面板掩膜110的相关部分的尺寸的情况下已经连续渲染了预定数量的帧106(例如,N个帧,其中N等于5、10等)。如果在最后N个连续帧106的过程中,面板掩膜110的相关部分的尺寸已经增加,则过程500可以遵循从框524到框522(在其中不对面板掩膜110的所述部分进行调整)以及到框516(在其中在不调整面板掩膜110的相关部分的尺寸的情况下渲染帧)的“否”路径。这可以基于以下概念,即,在收缩面板掩膜110以暴露图像区域108的先前覆盖部分之前已停止重投影略微确信可能是有益的。此置信度可以基于在不增加面板掩膜110的相关部分的尺寸的情况下渲染特定数量的连续帧106(A)。因此,如果在最后N个连续帧106的过程中面板掩膜110的相关部分的尺寸没有任何增加,则过程500可以遵循从框524到框526的“是”路径。

在526处,尺寸值可以朝向较小的目标值递减(例如,向下递增地调整)(例如,目标尺寸值,或者以其它方式减小到对应于面板掩膜110的完全收缩状态的最小尺寸值“0”)。这可以允许在一段时间(例如,大约两秒的持续时间)内将面板掩膜110的所述部分的所述部分的尺寸从现有尺寸值递减到小于现有尺寸值的目标尺寸值,使面板掩膜110的一部分在一段时间内从当前尺寸减小到较小的尺寸。因此,在多个帧的过程中,在框526处的递减最终将导致面板掩膜110的先前扩展部分的尺寸减小。当头部旋转减慢和/或重投影停止时,面板掩膜110的先前扩展部分最终可以在过程500的多次迭代中减小到最小尺寸。这使得能够以人眼不易察觉的速率控制面板掩膜110的收缩速率。以此方式,面板掩膜110的收缩可以不分散用户104的注意力。在一些实施例中,在框526处的递减操作是将现有的尺寸值以相对较小的量递减到较小的目标值(例如,每帧lerp值0.005)的缓慢内插步骤。换句话说,逻辑可以被配置成避免面板掩膜110的部分收缩快于最大收缩速率,这意味着如果用户104头部旋转突然大幅度减慢,代替将面板掩膜110的一部分的尺寸一直递减到所确定的目标尺寸值,相反,可以将现有尺寸值递减到大于目标尺寸值且小于现有尺寸值的中间尺寸值。在一些实施例中,如果目标尺寸值介于较小尺寸值与现有尺寸值之间,则在框526处的递减将递减到目标尺寸值。在将现有尺寸值(例如,使现有尺寸值变小为特定百分比(例如,5%))递减之后,过程500可以从框526进行到框516(在其中在显示面板102上渲染帧106以及面板掩膜),其中面板掩膜110的尺寸递减的部分相对于面板掩膜110的一部分的先前尺寸以减小的尺寸渲染。

可以理解的是,在过程500的后续迭代时,可以在框504处确定重投影仍然正在用于渲染所述一系列帧106,或者重投影已经停止,这指示面板掩膜110的各个部分是否要相对于先前的尺寸调整动态地增加、减小或者保持不变。通常,面板掩膜110的适当部分在与更多的HMD 100旋转结合的重投影期间增加,并且当HMD 100的旋转减慢和/或重投影停止时,面板掩膜110的部分的尺寸可以减小以在显示面板102上显露更多的图像区域108。

图6展示了根据本文所公开的实施例的可以嵌入的如VR头戴式耳机等HMD 600的示例组件。HMD 600可以与先前图中引用的HMD 100相同或类似,并且因此图6中所示的HMD600的组件可以在HMD 100中实施。HMD 600可以被实施为用户104(例如,在用户104的头部)要佩戴的独立装置。在一些实施例中,HMD 600可以是可头戴的,如通过允许用户104使用尺寸被设计成安装在用户104的头部周围的固定机构(例如,可调节带)将HMD 600固定在他/她的头部。在一些实施例中,HMD 600包括包含一个近眼显示器或多个近眼显示器的虚拟现实(VR)或增强现实(AR)头戴式耳机。如此,术语“可穿戴装置”、“可穿戴电子装置”、“VR头戴式耳机”、“AR头戴式耳机”和“头戴式显示器(HMD)”在本文可以互换使用,以指代图6的装置600。然而,应当理解的是,这些类型的装置仅仅是HMD 600的实例,并且应当理解的是,HMD600可以以各种其它形状因子来实施。

在所展示的实施方案中,HMD 600包含一个或多个处理器602和存储器604(例如,计算机可读介质604)。在一些实施方案中,一个或多个处理器602可以包含中央处理单元(CPU)、图形处理单元(GPU)、CPU和GPU两者、微处理器、数字信号处理器或本领域已知的其它处理单元或组件。可替代地或另外地,本文所描述的功能可以至少部分地由一个或多个硬件逻辑组件执行。通过举例而非限制性地,可以使用的硬件逻辑组件的说明性类型包含现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑装置(CPLD)等。另外地,一个或多个处理器602中的每一个可以拥有自己的本地存储器,其也可以存储程序模块、程序数据和/或一个或多个操作系统。

存储器604可以包含用任何方法或技术实施的用于存储如计算机可读指令、数据结构、程序模块或其它数据等信息的易失性和非易失性存储器、可移除和不可移除介质。此类存储器包含但不限于RAM、ROM、EEPROM、闪速存储器或其它存储技术、CD-ROM、数字通用盘(DVD)或其它光盘存储、磁盒、磁带、磁盘存储或其它磁存储装置、RAID存储系统或者可以用于存储期望信息并且可以由计算装置访问的任何其它介质。存储器604可以被实施为计算机可读存储介质(“CRSM”),其可以是可由一个或多个处理器602访问以执行存储在存储器602上的指令的任何可用物理介质。在一个基础实施方案中,CRSM可以包含随机存取存储器(“RAM”)和闪速存储器。在其它实施方案中,CRSM可以包含但不限于只读存储器(“ROM”)、电可擦可编程只读存储器(“EEPROM”)或可以用于存储期望信息并且可以由一个或多个处理器602访问的任何其它有形介质。

通常,HMD 600可以包含被配置成实施本文所描述的技术、功能和/或操作的逻辑(例如,软件、硬件和/或固件等)。计算机可读介质604被示出为包含各种模块,如指令、数据存储等,所述模块可以被配置成在一个或多个处理器602上执行,以执行本文所描述的技术、功能和/或操作。很少示例功能模块被示出为存储在计算机可读介质604中并且可在一个或多个处理器602上执行,尽管相同功能可以可替代地在硬件、固件或作为片上系统(SOC)和/或在其它逻辑中实施。

操作系统模块606可以被配置成管理在HMD 600内并且耦合到其的硬件,以有益于其它模块。另外,在一些实例中,HMD 600可以包含存储在存储器604中或者以其它方式可由HMD 600访问的一个或多个应用程序608。在此实施方案中,一个或多个应用程序608包含游戏应用程序610。然而,HMD 600可以包含任何数量或类型的应用程序,并且不限于此处所示的具体实例。游戏应用程序610可以被配置成启动可由用户104播放的基于视频的交互式游戏(例如,VR游戏)的游戏设置,以及输出要在HMD 100的显示面板上渲染的帧(例如,实际帧106(A))。合成器611可以被配置成渲染并且动态地调整面板掩膜110以及每个帧以作为后期渲染操作。因此,合成器611以及HMD 100的相关联逻辑可以执行本文所公开的动态面板掩膜调整技术。

通常,HMD 600具有输入装置612和输出装置614。输入装置612可以包含控制按钮。在一些实施方案中,一个或多个麦克风可以充当输入装置612以接收音频输入,如用户语音输入。在一些实施方案中,一个或多个相机或其它类型的传感器(例如,惯性测量单元(IMU))可以充当输入装置612以接收手势输入,如用户104的手和/或头部运动。在一些实施例中,可以以键盘、小键盘、鼠标、触摸屏、操纵杆等形式提供另外的输入装置612。在其它实施例中,HMD 600可以省略键盘、小键盘或其它类似形式的机械输入。相反,HMD 600可以被实施为相对简化的形式的输入装置612、网络接口(基于无线或有线)、功率以及处理/存储器能力。例如,可以采用一个或多个输入组件的有限集合(例如,启动配置的专用按钮、电源开/关等),以便此后可以使用HMD 600。在一个实施方案中,一个或多个输入装置612可以包含控制机构,如用于增加/减小音量的一个或多个基本音量控制按钮以及电源按钮和复位按钮。

输出装置614可以包含一个或多个显示器616,所述显示器可以与参考先前的图所描述的一个或多个显示面板102相同或类似。输出装置614可以进一步包含但不限于光元件(例如,LED)、用于产生触觉感觉的振动器、一个或多个扬声器(例如,耳机)等。还可以存在简易光元件(例如,LED)以指示状态,例如,当接通电源时的。

HMD 600可以进一步包含耦合到天线620以促进与网络的无线连接的无线单元618。无线单元618可以实施各种无线技术中的一种或多种,如Wi-Fi、蓝牙、射频(RF)等。应当理解的是,HMD 600可以进一步包含促进与网络的有线连接的物理端口、连接的外围装置(包含PC、游戏控制台等)或与其它无线网络通信的插入式网络装置。

HMD 600可以进一步包含光学子系统622,所述光学子系统使用一个或多个光学元件将来自一个或多个电子显示器616的光引导到一个或多个用户的眼睛。光学子系统622可以包含不同光学元件的各种类型和组合,包含但不限于如孔、透镜(例如,菲涅耳透镜、凸透镜、凹透镜等)、滤波器等。在一些实施例中,光学子系统622中的一个或多个光学元件可以具有一个或多个涂层,如抗反射涂层。通过光学子系统622对图像光的放大使得一个或多个电子显示器616与较大的显示器相比在物理上更小、重量更轻并且消耗的功率更少。另外地,图像光的放大可以增加显示内容(例如,图像)的视野(FOV)。例如,所显示的内容的FOV使得所显示的内容几乎是使用用户的几乎全部FOV(例如,120-150度对角线)来呈现的,并且在一些情况下,是用户的全部FOV来呈现的。AR应用程序的FOV可能较窄(例如,FOV为约40度)。光学子系统622可以被设计成校正一个或多个光学误差,如但不限于桶形失真、枕形失真、纵向色度失真、横向色度失真、球面像差、彗形像差、场曲、像散等。在一些实施例中,提供给一个或多个电子显示器616以供显示的内容是预失真的,并且当从一个或多个电子显示器616接收基于内容生成的图像光时,光学子系统622校正失真。

HMD 600可以进一步包含一个或多个传感器624,如用于生成运动数据、定位数据和朝向数据的传感器。这些传感器624可以是或包含陀螺仪、加速度计、磁力计、摄像机、颜色传感器或其它运动、定位和朝向传感器。传感器624还可以包含传感器的子部分,如一系列有源或无源标记,所述一系列有源或无源标记可以由相机或颜色传感器从外部查看以生成运动数据、定位数据和朝向数据。例如,VR头戴式耳机可以在其外部包含多个标记,如反射器或光(例如,红外光或可见光),当由外部相机查看或由光(例如红外或可见光)照亮时,所述标记可以提供一个或多个参考点以供软件解释,以生成运动数据、定位数据和朝向数据。HMD 600可以包含对由HMD 600的环境中的基站投射或广播的光(例如,红外光或可见光)敏感的光传感器。

在一个实例中,一个或多个传感器624可以包含惯性测量单元(IMU)626。IMU 626可以是电子装置,所述电子装置基于从加速度计、陀螺仪、磁力计和/或适合于检测运动、校正与IMU 626相关联的误差或其组合的其它传感器接收的测量信号来生成校准数据。基于测量信号,如IMU 626等基于运动的传感器可以生成指示HMD 600相对于HMD 600的初始位置的估计定位的校准数据。例如,多个加速度计可以测量平移运动(前进/后退、上/下、左/右),并且多个陀螺仪可以测量旋转运动(例如,俯仰、偏摆和滚动)。IMU 626可以例如快速采样测量信号并且从采样的数据计算HMD 600的估计定位。例如,IMU 626可以随时间整合从加速度计接收的测量信号以估计速度矢量,并且随时间整合速度矢量以确定HMD 600上的参考点的估计定位。参考点是可以用于描述可穿戴装置702的定位的点。虽然参考点通常可以被定义为空间中的点,但在各个实施例中,参考点被定义为HMD 600内的点(例如,IMU626的中心)。可替代地,IMU 626将采样的测量信号提供给确定校准数据的外部控制台(或其它计算装置)。

传感器624可以在相对高的频率下操作以便以高速率将数据提供给传感器。例如,可以以1000Hz的速率生成传感器数据(或每1毫秒1个传感器读数)。以此方式,每秒可以读取一千个读数。当传感器以此速率(或以更高的速率)生成如此多的数据时,用于预测运动的数据集相当大,甚至在数十毫秒量级的相对较短的时间段内也是如此。

如所提及的,在一些实施例中,传感器624可以包含对由HMD 600的环境中的基站发射的光敏感的光传感器,以用于在3D空间中跟踪HMD 600的定位和/或朝向、姿态等。定位和/或朝向的计算可以基于光脉冲的定时特性以及由传感器624检测的光的存在与否。

HMD 600可以进一步包含眼睛跟踪模块628。HMD 600内的相机或其它光学传感器可以捕获用户眼睛的图像信息,并且眼睛跟踪模块628可以使用捕获的信息来确定每只眼睛相对于HMD 600的瞳间距离、眼间距离、三维(3D)定位(例如,用于失真调整的目的),包含每只眼睛的扭转和旋转(即,滚动、俯仰和偏摆)的幅度和注视方向。在一个实例中,红外光在HMD 600内发射并且从每只眼睛反射。反射光由HMD 600的相机接收或检测,并且被分析以从每只眼睛反射的红外光的变化中提取眼睛旋转。眼睛跟踪模块628可以使用许多用于跟踪用户104的眼睛的方法。因此,眼睛跟踪模块628可以跟踪每只眼睛的多达六个自由度(即,3D定位、滚动、俯仰和偏摆),并且可以将来自用户104的两只眼睛的跟踪量的至少一个子集进行组合,以估计注视点(即,用户正在看的虚拟场景中的3D位置或定位)。例如,眼睛跟踪模块628可以整合来自过去的测量、标识用户104的头部的定位的测量的信息以及描述由一个或多个电子显示器616呈现的场景的3D信息。因此,使用用于用户104的眼睛的定位和朝向的信息来确定用户104正在看的由HMD 600呈现的虚拟场景中的注视点。

HMD 600可以进一步包含头部跟踪模块630。头部跟踪模块630可以利用传感器624中的一个或多个来跟踪用户104的头部运动,包含头部旋转,如上文所描述的。例如,头部跟踪模块630可以跟踪HMD 600的多达六个自由度(即,3D定位、滚动、俯仰和偏摆)。这些计算可以在一系列帧106的每一帧106处进行,使得应用程序608可以根据头部定位和朝向确定如何渲染在下一帧106(甚至对于重投影的帧106(R))中的场景。在一些实施例中,头部跟踪模块630被配置成基于当前和/或过去的数据来预测HMD 600的未来定位和/或朝向。这是因为应用程序被要求在用户104实际看到一个或多个显示器616上的光(并且因此看到图像)之前渲染帧106。因此,下一帧106可以基于在先前的时间点,如在渲染帧106之前大约25-30毫秒(ms)所进行的头部定位和/或朝向的未来预测来渲染。由头部跟踪模块630提供的旋转数据可以用于确定HMD 600旋转的两个方向和以任何合适的测量单位确定HMD 600旋转的量。例如,可以简化旋转方向,并且以对应于左、右、上和下的正或负水平方向和正或负竖直方向输出。旋转量可以以度、弧度等为单位。可以计算角速度来确定HMD 600的旋转速率。

尽管以特定于结构特征的语言描述了主题,但应理解的是所附权利要求中限定的主题不必限于所描述的具体特征。相反,具体特征被公开为实施权利要求的说明性形式。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号