CN113272715A - 基于眼睛跟踪的动态渲染时间确定 - Google Patents
基于眼睛跟踪的动态渲染时间确定 Download PDFInfo
- Publication number
- CN113272715A CN113272715A CN202080008252.2A CN202080008252A CN113272715A CN 113272715 A CN113272715 A CN 113272715A CN 202080008252 A CN202080008252 A CN 202080008252A CN 113272715 A CN113272715 A CN 113272715A
- Authority
- CN
- China
- Prior art keywords
- pixels
- display panel
- hmd
- frame
- pixel data
- 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
- 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/017—Head mounted
- G02B27/0172—Head mounted characterised by optical features
-
- 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
- G06F3/012—Head tracking input arrangements
-
- 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
- G06F3/013—Eye tracking input arrangements
-
- 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/017—Gesture based interaction, e.g. based on a set of recognized hand gestures
-
- 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/033—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
- G06F3/0346—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a 3D space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/20—Perspective computation
- G06T15/205—Image-based rendering
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G3/00—Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes
- G09G3/20—Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes for presentation of an assembly of a number of characters, e.g. a page, by composing the assembly by combination of individual elements arranged in a matrix no fixed position being assigned to or needed to be assigned to the individual characters or partial characters
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G3/00—Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes
- G09G3/20—Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes for presentation of an assembly of a number of characters, e.g. a page, by composing the assembly by combination of individual elements arranged in a matrix no fixed position being assigned to or needed to be assigned to the individual characters or partial characters
- G09G3/22—Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes for presentation of an assembly of a number of characters, e.g. a page, by composing the assembly by combination of individual elements arranged in a matrix no fixed position being assigned to or needed to be assigned to the individual characters or partial characters using controlled light sources
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G3/00—Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes
- G09G3/20—Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes for presentation of an assembly of a number of characters, e.g. a page, by composing the assembly by combination of individual elements arranged in a matrix no fixed position being assigned to or needed to be assigned to the individual characters or partial characters
- G09G3/34—Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes for presentation of an assembly of a number of characters, e.g. a page, by composing the assembly by combination of individual elements arranged in a matrix no fixed position being assigned to or needed to be assigned to the individual characters or partial characters by control of light from an independent source
- G09G3/3406—Control of illumination source
- G09G3/342—Control of illumination source using several illumination sources separately controlled corresponding to different display panel areas, e.g. along one dimension such as lines
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G3/00—Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes
- G09G3/20—Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes for presentation of an assembly of a number of characters, e.g. a page, by composing the assembly by combination of individual elements arranged in a matrix no fixed position being assigned to or needed to be assigned to the individual characters or partial characters
- G09G3/34—Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes for presentation of an assembly of a number of characters, e.g. a page, by composing the assembly by combination of individual elements arranged in a matrix no fixed position being assigned to or needed to be assigned to the individual characters or partial characters by control of light from an independent source
- G09G3/36—Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes for presentation of an assembly of a number of characters, e.g. a page, by composing the assembly by combination of individual elements arranged in a matrix no fixed position being assigned to or needed to be assigned to the individual characters or partial characters by control of light from an independent source using liquid crystals
-
- 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/12—Synchronisation between the display unit and other units, e.g. other display units, video-disc players
-
- 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/0101—Head-up displays characterised by optical features
- G02B2027/0147—Head-up displays characterised by optical features comprising a device modifying the resolution of the displayed image
-
- 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
- G09G2310/00—Command of the display device
- G09G2310/02—Addressing, scanning or driving the display screen or processing steps related thereto
- G09G2310/024—Scrolling of light from the illumination source over the display in combination with the scanning of the display screen
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2320/00—Control of display operating conditions
- G09G2320/02—Improving the quality of display appearance
- G09G2320/0261—Improving the quality of display appearance in the context of movement of objects on the screen or movement of the observer relative to the screen
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2320/00—Control of display operating conditions
- G09G2320/06—Adjustment of display parameters
- G09G2320/0613—The adjustment depending on the type of the information to be displayed
- G09G2320/062—Adjustment of illumination source parameters
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2340/00—Aspects of display data processing
- G09G2340/04—Changes in size, position or resolution of an image
- G09G2340/0407—Resolution change, inclusive of the use of different resolutions for different screen areas
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2340/00—Aspects of display data processing
- G09G2340/04—Changes in size, position or resolution of an image
- G09G2340/0407—Resolution change, inclusive of the use of different resolutions for different screen areas
- G09G2340/0435—Change or adaptation of the frame rate of the video stream
-
- 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
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2380/00—Specific applications
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)
- Crystallography & Structural Chemistry (AREA)
- Chemical & Material Sciences (AREA)
- Multimedia (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Computing Systems (AREA)
- Control Of Indicators Other Than Cathode Ray Tubes (AREA)
- Controls And Circuits For Display Device (AREA)
- Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
Abstract
本发明公开了一种具有滚动照亮显示面板的头戴式显示器(HMD),该HMD可基于眼睛跟踪来动态地确定用于给定帧的渲染时间。使用此方法,最小化在该显示器中用户正在观看的位置处的重新投影调整,这减轻了该“感兴趣区域”中的多余的基于重新投影的视觉伪影。例如,该HMD的逻辑可预测用户在给定帧的照亮时间段期间将观看的该显示面板上的位置、确定在该照亮时间段内与所预测的位置相对应的单独子集的像素将被照亮的时间、预测该HMD在所确定的时间时将处于的姿态,并且将指示所预测的姿态的姿态数据发送给应用程序以用于渲染该帧。
Description
相关申请的交叉引用
本PCT申请要求2019年3月27日提交的标题为“DYNAMIC RENDER TIME TARGETINGBASED ON EYE TRACKING”的美国专利申请序列号16/367,008的优先权,该美国专利申请要求2019年1月14日共同转让、共同未决的美国临时专利申请序列号62/792,305的优先权。申请序列号16/367,008和62/792,305全部内容以引用方式并入本文。
背景技术
虚拟现实(VR)系统用于视频游戏工业之内及其他方面。可以使用各种显示驱动技术来操作用于VR系统的显示器,诸如嵌入VR头戴式耳机中的那些显示器。一些VR系统使用“全局闪光”技术来驱动显示器。在全局闪光技术中,显示器的所有像素同步地照亮以在显示器上呈现给定帧的图像。其他VR系统使用“滚动带”技术来驱动显示器。在滚动带技术中,依次(通常从上到下)照亮像素行以在显示器上呈现给定帧的图像。换句话讲,利用滚动带显示驱动技术,在呈现给定帧的图像期间,照亮过程在整个显示器上传播(或“滚动”)。
当观看显示器的顶部或底部时,实现滚动带显示驱动技术的VR头戴式耳机的用户可能注意到关于那些区域中的运动对象或动画显示对象的多余视觉伪影,诸如“抖动”。抖动使用户感知到“双重影效果”,其中运动对象(诸如对用户的手在显示器底部运动的虚拟表示)看起来在两个位置之间(或与其自身分开)逐帧地摆动。在显示器的顶部和底部附近导致这种多余视觉伪影的原因部分在于提供给应用程序来渲染给定帧的目标渲染时间,并且部分在于将旋转校正应用于经应用程序渲染的帧以呈现与对用户的头部姿态的最新估计对准的图像的重新投影步骤。
考虑基于图形的应用程序,诸如视频游戏,这些应用程序输出用于在VR头戴式耳机的显示面板上呈现图像的渲染帧。为了基于用户的头部姿态来渲染正确的场景,应用程序接收用户头部的预测姿态作为输入。然而,利用基于光栅化的渲染方法,应用程序仅可接受单个姿态(基于单个目标渲染时间)作为用于渲染所讨论的帧的输入。这意味着必须为用户头部的初始姿态预测选择单个目标渲染时间。在使用滚动带显示驱动技术的VR系统中,一个选项是选择中间一行像素将被照亮的时间作为每帧的目标渲染时间。尽管预期该方法能够最小化整个帧的重新投影调整的总量,但是它仍然不能减轻用户在显示器的顶部和底部附近注意到的多余抖动伪影,因为用户不总是看着显示面板的中间。实际上,用户的眼睛倾向于在显示面板周围游荡,当使用VR头戴式耳机时,用户的眼睛经常注视显示器的顶部或底部。例如,当用户的眼睛从显示器的中间偏离到显示器的顶部或底部时,应用于显示器的顶部或底部附近的像素值的重新投影调整可导致关于显示器的那些区域中的运动对象或动画显示对象的显而易见的抖动伪影。
本文提供了用于改进和增强这些及其他系统的技术性解决方案。
附图说明
参考附图进行详细描述。在附图中,参考标号的最左边数字标识首次出现该参考标号的附图。在不同附图中使用相同的参考标号指示相似或相同的部件或特征结构。
图1是示出根据本文所公开的实施方案的用于基于眼睛跟踪来动态地确定用于给定帧的渲染时间的示例性技术的示意图。
图2是根据本文所公开的实施方案的当使用基于眼睛跟踪来动态地确定用于给定帧的渲染时间的方法时重新投影调整的程度如何针对不同子集的像素跨显示器变化的示意图。
图3示出了根据本文所公开的实施方案的用于基于眼睛跟踪来动态地确定用于给定帧的渲染时间的示例性过程的流程图。
图4示出了根据本文所公开的实施方案的用于应用重新投影调整的示例性子过程的流程图。
图5示出了其中可实现本文所公开的技术的可穿戴设备诸如VR头戴式耳机的示例性部件。
具体实施方式
本文除其他方面外,还描述了用于基于眼睛跟踪和针对各个子集的像素的隐含扫描输出延迟来动态地确定用于给定帧的渲染时间的技术和系统(包括头戴式显示器(HMD)系统)。使用此方法,对在图像呈现期间显示器中用户正在观看的位置处的像素值应用几乎为零的重新投影调整,这减轻了用户正在观看的“感兴趣区域”中的多余的基于重新投影的视觉伪影。一般来讲,当大尺度的重新投影调整被应用于经应用程序渲染的帧时,所得的经重新投影的帧将表现出多余视觉伪影,诸如抖动,这些视觉伪影显现为逐帧地分裂成两个或更多个对象的运动对象或动画显示对象。相比之下,当小尺度的重新投影调整被应用于经应用程序渲染的帧时,所得的经重新投影的帧将减轻由重新投影导致的这些多余视觉伪影。因此,为了实现尽可能精确地进行预测以正确地渲染帧并且在重新投影期间尽可能少地进行重新投影调整的目标,本文描述的技术和系统通过最小化对用户正在观看的感兴趣区域中的像素值进行的重新投影调整来改进该感兴趣区域中的图像质量。这改进了实现滚动带显示驱动技术的HMD的显示质量。
在例示性示例中,用户可佩戴HMD以实现使用户沉浸在虚拟现实(VR)环境或增强现实(AR)环境中的目的。HMD的一个或多个显示面板基于由应用程序(例如,视频游戏)输出的帧来呈现图像,并且用户通过包括在HMD中的光学器件来观看这些图像,从而使用户感知图像,就好像用户沉浸在VR或AR环境中一样。HMD可利用滚动带技术以通过在照亮时间段内依次照亮各个子集的像素来驱动HMD的显示面板。因此,在呈现给定帧的图像期间,照亮过程在整个显示面板上传播(或“滚动”)。
包括HMD的HMD系统还可利用被称为“重新投影”的技术来补偿HMD的初始姿态预测中的轻微不精确性并且/或者补偿未能达到帧速率的应用程序,应用程序未能达到帧速率具有与轻微不精确的初始姿态预测相同的效果。例如,可使用来自经应用程序渲染的帧的像素数据通过以考虑HMD的姿态的更新预测的方式变换(例如,通过旋转和重新投影计算)该经应用程序渲染的帧来生成经重新投影的帧。
本文描述了用于减轻由显示器上用户正在观看的感兴趣区域中的重新投影导致的多余视觉伪影从而通过使这些多余视觉伪影(如果存在的话)对于正在观看的用户不显而易见(因为这些视觉伪影将不显现在感兴趣区域中)来改进显示性能的技术和系统。在示例性过程中,在将姿态数据作为输入提供给应用程序以用于渲染下一帧之前,HMD系统的逻辑(例如,合成器)可预测显示面板上(佩戴HMD的)用户将在该帧的照亮时间段期间观看的位置。该预测可至少部分地基于由HMD系统的眼睛跟踪系统生成的眼睛跟踪数据。在一些实施方案中,HMD系统的逻辑被配置为基于眼睛跟踪数据来预测用户将在照亮时间段期间观看的注视点,并且确定显示面板上与该预测注视点相对应的位置。HMD系统的逻辑还被配置为确定在照亮时间段内与显示面板上的预测位置相对应的单独子集的像素将被照亮的时间。使用由HMD系统的头部跟踪系统生成的头部跟踪数据,该逻辑然后可预测HMD在所确定的时间(基于指示用户在照亮时间段期间将观看何处的眼睛跟踪数据来动态地确定该时间)时将处于的姿态。然后,可将指示HMD的预测姿态的姿态数据发送给应用程序以用于渲染帧,并且在从应用程序接收到帧时,HMD系统的逻辑可将重新投影调整应用于针对经应用程序渲染的帧的像素数据以获得与经重新投影的帧相关联的修改的像素数据。该修改的像素数据可被输出到帧缓冲器以用于在显示面板上呈现图像,由此在照亮时间段期间依次照亮各个子集的像素以呈现图像。
通过基于眼睛跟踪和针对各个子集的像素的隐含扫描输出延迟来动态地确定用于经应用程序渲染的帧的渲染时间,可针对来自显示面板上的感兴趣区域的光(光子)将实际到达用户眼睛的时间来渲染场景(或图片)。这意味着:可在感兴趣区域中正确地渲染场景,并且因此仅将小尺度的重新投影调整(如果有的话)应用于在图像呈现期间用户正在观看的感兴趣区域中的像素数据(值)。换句话讲,如果通过跟踪用户的眼睛可确定用户可能在滚动照亮时间段期间观看显示面板的顶部部分内的像素子集,则HMD系统的逻辑(例如,合成器)可告知应用程序根据针对在滚动照亮时间段期间该像素子集将照亮的时间预测的用户的头部姿态来渲染场景。对于随后的帧,如果预测用户在滚动照亮时间段期间观看显示面板的底部部分内的像素子集,则逻辑可告知应用程序根据针对在滚动照亮时间段期间该像素子集将照亮的时间预测的用户的头部姿态来渲染场景。因此,并非总是针对中间一行像素将照亮的时间来渲染给定帧,本文描述的技术涉及基于预测用户在图像呈现期间将观看显示面板上的何处来动态地选择用于下一帧的渲染时间。换句话讲,对于每个帧,HMD系统的逻辑被配置为告知应用程序选择哪个时间点用于要在显示面板上呈现的“世界图景”,并且基于对当呈现该世界图景时用户将观看何处的预测来选择该时间点。
本文还公开了系统,例如,包括被配置为实现本文所公开的技术和过程的显示系统(例如,HMD系统)以及存储用于实现本文所公开的技术和过程的计算机可执行指令的非暂态计算机可读介质的系统。尽管本文所公开的技术和系统以举例的方式在视频游戏应用程序尤其是VR游戏应用程序的上下文中进行讨论,但是应当理解,本文所述的技术和系统可为其他应用程序提供益处,包括但不限于非VR应用程序(例如,AR应用程序)和/或非游戏应用程序(诸如,工业机器应用程序、国防应用程序、机器人技术应用程序等)。
图1是示出用于基于眼睛跟踪来动态地确定用于给定帧的渲染时间的示例性技术的示意图。图1描绘了由用户102佩戴的头戴式显示器(HMD)100。图1的示例中的HMD 100可包括单个显示面板104或多个显示面板104,诸如立体显示面板对中的左显示面板和右显示面板。HMD 100的该一个或多个显示面板104可用于呈现佩戴HMD 100的用户102可观看的一系列图像帧(本文称为“帧”)。应当理解,HMD 100可包括任何数量的显示面板104(例如,多于两个显示面板、一对显示面板或单个显示面板)。因此,如本文以单数使用的术语“显示面板”可指代双面板式HMD 100的一对显示面板中的一个显示面板104,或者其可指代具有任何数量的显示面板的HMD 100(例如,单面板式HMD 100或多面板式HMD 100)的单个显示面板104。在双面板式HMD 100中,立体帧缓冲器可在HMD 100的两个显示面板上渲染例如2160×1200像素(例如,每个显示面板上渲染1080×1200像素)。
HMD 100的显示面板104可利用任何合适类型的显示技术,诸如利用发光元件(例如,发光二极管(LED))在显示面板104上呈现帧期间发光的发射型显示器。作为示例,HMD100的显示面板104可包括液晶显示器(LCD)、有机发光二极管(OLED)显示器、无机发光二极管(ILED)显示器或者用于HMD应用的任何其他合适类型的显示技术。
HMD 100的显示面板104可以任何合适的刷新速率进行操作,诸如90赫兹(Hz)的刷新速率。显示器的“刷新速率”是显示器每秒可重绘屏幕的次数。每秒显示的帧数可由显示器的刷新速率限制。因此,一系列帧可被处理(例如,渲染)并且作为图像显示在显示器上,使得该系列帧中的单个帧随着每次屏幕刷新而被显示。即,为了在显示面板104上呈现一系列图像,显示面板104可以显示器的刷新速率在该系列帧中逐帧地转换,从而在每次屏幕刷新时照亮这些像素。在一些实施方案中,可抑制帧速率,并且可在经应用程序渲染的帧之间插入幻影帧(基于重新投影)。
HMD 100的显示系统还可实现滚动带类型的显示驱动方案。即,显示面板104的发光元件可以是可单独寻址的,使得各个子集的发光元件(并且因此使得各个子集的像素)可在照亮时间段期间以滚动照亮带的形式独立地并且顺序地被照亮。在一些实施方案中,像素阵列和显示面板104上的发光元件两者都布置成行和列,但不一定是一个像素对应一个发光元件。在这种配置中,可依次寻址各个行和/或各个列的发光元件,并且/或者可依次寻址各个组的邻接行和/或各个组的邻接列的发光元件。作为以这种“滚动”方式寻址发光元件的结果,与这些可单独寻址的子集的发光元件相对应的这些子集的像素可被独立地“照亮”。
如本文所用,“照亮像素”意味着照亮与该像素相对应的发光元件。例如,LCD照亮具有背光的发光元件以照亮显示器的对应像素。此外,如本文所用,“像素子集”可包括单个像素或多个像素(例如,一组像素)。在一些实施方案中,像素子集包括一行像素、一列像素、一组邻接行的像素或一组邻接列的像素。因此,在本文描述的技术和系统的一个方面中,像素子集可被依次(顺序地)扫描输出并照亮,诸如通过从第一行像素(例如,顶行像素)开始并且以最后一行像素(例如,底行像素)结束来依次扫描输出并照亮每行像素。然而,使用本文描述的技术和系统可采用任何合适的照亮模式(例如,蛇形照亮模式、逐列照亮、依次一次多行/多列像素等)。
为了以这种“滚动”方式驱动显示面板104,HMD 100除其他方面外还可包括显示控制器、显示驱动器电路和用于驱动显示面板104的类似电子器件等。显示驱动器电路可经由柔性印刷电路上的导电路径(诸如金属迹线)耦接到显示面板104的发光元件阵列。在一个示例中,显示控制器可通信地耦接到显示驱动器电路并且被配置为向显示驱动器电路提供信号、信息和/或数据。由显示驱动器电路接收的信号、信息和/或数据可使显示驱动器电路以特定方式照亮发光元件。即,显示控制器可确定要照亮哪个(哪些)发光元件、何时照亮该(这些)发光元件,以及要由该(这些)发光元件发射的光输出的水平,并且可将适当的信号、信息和/或数据传送到显示驱动器电路以便实现该目的。
针对给定帧的像素数据可被输出到帧缓冲器以用于将该帧作为图像呈现在显示面板104上。在一些实施方案中,针对每个帧的像素数据可包括每像素值(例如,色值)的二维阵列。在一些实施方案中,像素数据还包括附加的数据或元数据,诸如深度值。在一些实施方案中,像素数据可包括由单组色值和阿尔法值表示的针对每个像素的数据(例如,红色通道对应一个色值、绿色通道对应一个色值、蓝色通道对应一个色值,并且一个或多个阿尔法通道对应一个或多个值)。该像素数据可被输出到帧缓冲器(例如,立体帧缓冲器)以作为图像在HMD 100的显示面板104上呈现出期望的视觉效果。
HMD 100可表示用于VR系统中(诸如,用于与VR游戏系统一起使用)的VR头戴式耳机。然而,HMD 100可附加地或另选地被实现为用于AR应用程序中的AR头戴式耳机。在AR中,用户102看到覆盖在真实世界环境上的虚拟对象,而在VR中,用户102看不到真实世界环境,而是完全沉浸在虚拟环境中,如经由HMD 100的显示面板104和光学器件(例如,透镜)所感知的。本文所述的示例主要涉及基于VR的HMD 100,但是应当理解,HMD 100不限于在VR应用程序中进行实现。
一般来讲,在计算设备诸如HMD 100本身或者作为HMD系统的一部分与HMD 100相关联并耦接的计算设备(例如,个人计算机(PC)、游戏机等)上执行的基于图形的应用程序106(例如,视频游戏)可被配置为输出一系列帧108(1)、108(2)和108(3)等(统称108)。该系列帧108最终作为图像呈现在HMD 100的显示面板104上。图1的示例描绘了关于渲染时间线110的三个示例性帧108(1)(或帧“F”)、108(2)(或帧“F+1”)和108(3)(或帧“F+2”)以说明可如何按序列渲染帧108。在此,应用程序106在渲染时间线110上从左到右依次首先渲染帧F、然后渲染帧F+1、并且然后渲染帧F+2。渲染时间线110还朝针对每个帧108的每个渲染间隔的结尾示出了HMD 100(或HMD系统)的合成器114的渲染工作负荷112。合成器114针对给定帧108的各个渲染工作负荷112可表示当在HMD100上渲染最终图像之前应用于由应用程序106输出的像素数据的调整。此类调整可包括但不限于对色度失真、面板掩模、重新投影等的调整,当在HMD 100上渲染最终图像之前将此类调整应用于由应用程序106输出的帧108。因此,图1中示出的帧108在从应用程序106(其可表示视频游戏应用程序或任何其他类型的基于图形的应用程序)输出的意义上讲应当表示“实际”帧。应用程序106可在输出像素数据的图形流水线中执行,并且合成器114被配置为修改该像素数据并将修改的像素数据输出到帧缓冲器(例如,立体帧缓冲器)。
在运行时间期间,HMD 100(或HMD系统)的眼睛跟踪系统可生成关于用户102在任何给定时刻正在观看的注视点的眼睛跟踪数据。眼睛跟踪系统可包括HMD 100内部的相机或其他光学传感器以捕获用户的眼睛116的图像数据,并且所捕获的图像数据可用于确定运动矢量、瞳孔间距、双眼间距、每只眼睛116相对于HMD 100的三维(3D)位置,该三维位置包括每只眼睛116的扭转和旋转(例如,翻滚、俯仰和偏航)的幅度以及注视方向。在一个示例中,在HMD 100内发射红外光并且从每只眼睛116反射红外光。反射光由HMD 100的相机接收或检测并被分析以从每只眼睛116反射的红外光的变化中提取眼睛旋转。在一些实施方案中,眼睛跟踪系统可集成来自过去的测量结果的信息、识别用户102的头部的位置的测量结果,以及描述显示面板104上呈现的场景的3D信息。因此,针对用户102的眼睛116的位置和取向的信息可用于确定由HMD 100呈现的虚拟场景中用户102正在观看的注视点。HMD100(或HMD系统)的眼睛跟踪系统可采用用于跟踪用户102的眼睛116的许多方法,并且这些仅仅是可采用的眼睛跟踪技术的示例。
在任何情况下,HMD 100(或HMD系统)的眼睛跟踪系统所生成的眼睛跟踪数据可由合成器114用来预测用户102在即将到来的帧108的照亮时间段期间将观看的注视点,并且该注视点可与显示面板104上的位置相关,该位置可以任何合适的粒度水平来定义(例如,各个子集(例如,行)的像素、各个组的邻接子集(例如,行)的像素、显示面板104的其他区域等)。在一些实施方案中,最近的眼睛跟踪数据(例如,注视点)可用作用于预测用户102在即将到来的帧108的照亮时间段期间将观看何处的代理。利用当今的眼睛跟踪技术,难以精确地预测用户的眼睛在未来的时间将观看何处,因为在眼睛快速运动期间眼睛可能表现出弹道运动。这是使用最近的注视点估计作为用于预测未来注视点的代理的一个原因。然而,当眼睛跟踪随着时间的推移而改进时,对用户102在未来的时间将观看何处的预测可变得更为精确,并且因此,可根据过去的眼睛跟踪数据来确定对未来注视点的预测。例如,可基于用户的眼睛116的运动矢量估计和/或基于附加数据来预测未来注视点。
图1还示出了“扫描输出+照亮”时间线118以示出与在渲染时间线110中进行渲染的每个帧108相对应的照亮时间段。例如,在应用程序106对帧F进行渲染之后并且在合成器114执行其渲染工作负荷112(1)以修改针对帧F的像素数据之后,在帧F的照亮时间段120(1)期间,在显示面板104上呈现与帧F相对应的图像。在该照亮时间段120(1)期间,针对帧F的像素值(像素数据)的子集经由显示端口(例如,高清晰度多媒体接口(HDMI))依次被扫描输出到显示面板104,并且显示面板104的发光元件依次被照亮以使各个子集的像素依次照亮。图1示出了其中各个子集的像素与各个行的像素相对应的示例。例如,显示面板104可具有多行像素,从第一行(“行1”)开始并以最后一行(“行N”)结束,该第一行可以是顶行并且该最后一行可以是底行。也可根据图1所示的时间t1至tN来描述照亮时间段120。例如,第一子集的像素(例如,“行1”)可在时间t1照亮,并且最后子集的像素(例如,“行N”)可在时间tN照亮,而中间子集的像素可在照亮时间段120的这些外边界之间的相应时间照亮。如所提及的,对于90Hz的刷新速率,照亮时间段120的持续时间可以是大致11ms。
在图1的示例中,为了渲染帧F,合成器114可预测用户102在帧F的照亮时间段120(1)期间将观看的注视点。在图1的示例中,帧F的预测注视点是与显示面板104的顶部部分内的单独子集(或一组邻接子集)的像素相对应的注视点。这可被描述为合成器114预测用户102在照亮时间段120(1)期间将观看的显示面板104的位置,并且在这种情况下,帧F的预测位置是与显示面板104的顶部部分内的单独子集(或一组邻接子集)的像素相对应的位置。应当理解,可以适于描述用户102可能正在观看显示面板104上的何处的任何合适的方式和/或任何合适的粒度水平来定义显示面板104的“位置”。图1的示例示出了其中可基于显示面板的像素行来确定显示面板104的该位置的示例。根据HMD 100(或HMD系统)的眼睛跟踪系统的精确度以及各个子集的像素可被寻址的分辨率,可以任何合适的粒度水平来作出对用户102将观看何处的预测,诸如通过估计用户102正在观看给定子集的像素(例如,各个行的像素、各个列的像素等)或各个组的邻接子集(例如,各个组的邻接行、各个组的邻接列等)的像素。
一旦合成器114确定当呈现与帧F相对应的图像时用户102将观看何处,那么合成器114就可进一步被配置为确定在帧F的照亮时间段120(1)内与显示面板104上的该位置(预测用户102将观看的地方)相对应的单独子集的像素将被照亮的时间。例如,如果预测用户102在帧F的照亮时间段120(1)期间正在观看显示面板104的顶部部分内的单独子集(或一组邻接子集)的像素,则合成器114可确定(显示面板104的顶部部分内的)该子集的像素将被照亮的时间。在一个示例中,合成器114可确定在显示面板104的顶部部分内的第一行像素(例如,“行1”)将在时间t1时照亮。在该示例中,因为基于眼睛跟踪数据而预测用户102在帧F的照亮时间段120(1)期间正在观看与显示面板104的顶部部分内的第一行像素相对应的位置,所以合成器114可将目标渲染时间(在帧F的照亮时间段120(1)内)确定为目标渲染时间=t1。作为另一个示例,如果预测用户102观看例如第200行像素,则合成器114可将第200行像素的照亮时间确定为目标渲染时间。
除了眼睛跟踪系统之外,HMD 100(或HMD系统)的头部跟踪系统可生成关于HMD100的姿态的头部跟踪数据,并且合成器114被配置为预测HMD 100在所确定的时间(目标渲染时间)时将处于的姿态。因此,对于帧F,合成器114可预测HMD 100在时间t1时将处于的姿态,该时间被确定为在照亮时间段120(1)期间显示面板104的顶部部分内的该子集的像素(例如,“行1”)将被照亮的时间。合成器114可向应用程序106发送指示预测姿态的姿态数据以用于渲染帧F。预先向应用程序106提供姿态数据允许应用程序106输出像素数据,以便以对用户102在未来的目标渲染时间t1时所预测的头部姿态正确的方式在HMD 100上呈现影像。这意味着应用程序106渲染在当来自显示面板104中预测用户102将正在观看的部分的光到达用户的眼睛116时的时间t1时适于用户的预测头部姿态的场景。
HMD 100(或HMD系统)的图形逻辑可以是异步的或同步的。在异步系统中,合成器114与应用程序106分开(在分开的异步线程上)运行在HMD 100(或HMD系统)的图形处理单元(GPU)上。例如,应用程序106可调用从合成器114接收姿态数据的功能,并且合成器114可向应用程序106提供所请求的姿态数据(根据帧F的目标渲染时间t1预测),使得应用程序106可根据该姿态数据来渲染帧108(例如,帧F),该姿态数据与用于渲染场景的虚拟相机姿态相对应。假设应用程序106在合成器的工作负荷112开始之前完成渲染帧108,那么合成器114被配置为从应用程序106获取帧108(例如,左图像帧和右图像帧)并且将帧108失真到HMD100的显示面板104上的后台缓冲器中。例如,合成器114可在基于由应用程序106输出的帧108在HMD 100上渲染最终图像之前执行但不限于色度失真、面板掩模、重新投影等。
合成器114可在高优先级上下文模式中执行,这意味着:当合成器114到了开始其工作负荷112的时间时,GPU驱动程序允许合成器114抢占应用程序106(例如,通过使应用程序106中断渲染(如果其仍然在渲染帧108)并且/或者阻止应用程序106开始渲染下一帧108)。合成器114可在每个渲染间隔结束时分配时隙(平均多达1ms)来开展其工作112,而不管应用程序106发生了什么。因此,在每个渲染间隔处,合成器114渲染“一些东西”以使得从某种意义上合成器114获得其可从应用程序106获得的最佳帧108(例如,新作/全新的帧108,或先前渲染的帧108),并且合成器114使用与该帧108相关联的像素数据来将像素数据放入帧缓冲器中以供输出在HMD 100的显示面板104上。合成器114针对每次屏幕刷新无论怎样都输出不同像素数据的能力是保持一切显得“生动”并且当应用程序106无法达到帧速率时保持在HMD 100上渲染的图像不严重挂接的机制。
通过将渲染时间动态地确定为最接近用户将观看的地方的像素子集将照亮的时间(例如,帧F的t1),可在照亮时间段120期间仅利用小尺度的重新投影调整(如果有的话)在显示面板104上的用户102在照亮时间段120期间正在观看的位置处呈现与帧F相对应的图像。这意味着用户102将不会看到由重新投影导致的关于在图像呈现期间用户正在观看的感兴趣区域中的运动对象或动画显示对象的多余视觉伪影。
在帧F被渲染之后,动态渲染时间确定可在渲染该系列帧108时针对其中的每一帧进行迭代。例如,对于帧F+1,眼睛跟踪数据可指示用户102将在帧F+1的照亮时间段120(2)期间观看显示面板104的中间部分内的单独子集(或一组邻接子集)的像素,这使得合成器114将显示面板104的中间部分中的该子集(或该组子集)的像素将照亮的时间动态地确定为帧F+1的渲染时间。例如,合成器114可确定中间一行像素将在时间tN/2时照亮,并且因此可预测HMD 100在时间tN/2时将处于的姿态。合成器114可将指示该预测姿态的姿态数据发送给应用程序106以用于渲染帧F+1,并且作为响应,合成器114可接收针对帧F+1的像素数据。在合成器114针对帧F+1的渲染工作负荷112(2)期间,除了在渲染工作负荷112(2)期间施加的其他调整之外,合成器114可对针对帧F+1的像素数据应用重新投影调整,以获得与帧F+1的经重新投影的帧相关联的修改的像素数据,并且合成器114可将修改的像素数据输出到帧缓冲器,使得可在帧F+1的照亮时间段120(2)期间在显示面板104上呈现对应的图像。
同样,对于帧F+2,眼睛跟踪数据可指示用户102将在帧F+2的照亮时间段120(3)期间观看显示面板104的底部部分内的单独子集(或一组邻接子集)的像素,这使得合成器114将显示面板104的底部部分中的该子集(或该组子集)的像素将照亮的时间动态地确定为帧F+2的渲染时间。例如,合成器114可确定第N行的像素将在时间tN时照亮,并且因此可预测HMD 100在时间tN时将处于的姿态。合成器114可将指示该预测姿态的姿态数据发送给应用程序106以用于渲染帧F+2,并且作为响应,合成器114可从应用程序106接收针对帧F+2的像素数据。在合成器114针对帧F+2的渲染工作负荷112(3)期间,除了其他调整之外,合成器114可对针对帧F+2的像素数据应用重新投影调整,以获得与帧F+2的经重新投影的帧相关联的修改的像素数据,并且合成器114可将修改的像素数据输出到帧缓冲器,使得可在帧F+2的照亮时间段120(3)期间在显示面板104上呈现对应的图像。
在一些实施方案中,HMD 100(或HMD系统)的逻辑可被配置为以不同的分辨率寻址显示面板104的不同位置。这样,由于眼睛跟踪数据可用于预测显示面板104上的用户102在图像呈现期间将观看的感兴趣区域,因此HMD 100(或HMD系统)可利用该动态寻址机制来以第一(高)分辨率动态地寻址显示面板104的用户102正在观看的位置,并且以小于第一分辨率的第二(更低)分辨率动态地寻址显示面板104的剩余部分。这可在感兴趣区域中提供改进的显示质量以及就减少用于扫描输出像素数据的延迟而言提供改进的显示性能,因为感兴趣区域外的区域可具有更少要扫描输出的像素数据。
图2是根据本文所公开的实施方案的当使用基于眼睛跟踪来动态地确定用于给定帧108的渲染时间的方法时重新投影调整的程度如何针对不同子集的像素跨显示器变化的示意图。图2示出了HMD 100的显示面板104,这两者都在图1中有所介绍。在一些实施方案中,该显示面板104可表示HMD 100的立体显示面板对中的左显示面板或右显示面板。显示面板104被示为包括M×N像素阵列。在这种情况下,像素被布置成M列和N行,其中M是任何合适的数目,N是任何合适的数目,并且M和N可以相等或不相等。如本文所述,因为使用滚动带显示驱动技术来驱动显示面板104,所以在给定帧108的图像呈现期间的滚动照亮通过在照亮时间段120(这在图1中有所介绍)内依次照亮单独子集的像素来进行。在图2的示例中,各个子集的像素对应于各个行的像素(例如,行1至行N),并且在给定帧108的照亮时间段120内从第一行(“行1”)到最后一行(“行N”)依次照亮这些行。在所示的示例中,这意味着滚动照亮从顶部进行到底部,但是应当理解,这仅仅是其中可照亮像素子集的示例顺序。
考虑其中目标渲染时间200被预测为照亮时间段120(其可被描述为从时间t1到时间tN的时间段)内的时间t3的示例。例如,如果眼睛跟踪数据指示用户102在给定帧的照亮时间段120期间将观看显示面板104的顶部部分内的单独子集(或一组邻接子集)的像素(例如,第三行像素(“行3”)),则可确定该示例目标渲染时间200。因此,合成器114被配置为预测HMD100在目标渲染时间200(例如,时间t3)时将处于的姿态,并且合成器114可将指示该预测姿态的姿态数据发送给应用程序106以用于渲染给定帧108。在接收到针对经应用程序渲染的帧108的像素数据之后,合成器114在其对给定帧108的渲染工作负荷112期间可将重新投影调整应用于该像素数据。
为了确定要应用于所接收的像素数据的重新投影调整,合成器114在接收到像素数据之后可至少部分地基于由HMD 100(或HMD系统)的头部跟踪系统生成的更新的头部跟踪数据来预测HMD 100在照亮时间段120内的这些各个子集的像素将被照亮时的多个时间时的多个更新姿态。例如,在从应用程序106接收到与给定帧108相关联的像素数据时,合成器114可预测HMD 100在针对第一行像素(“行1”)的时间t1时将处于的第一更新姿态、HMD100在针对第二行像素(“行2”)的时间t2时将处于的第二更新姿态、HMD 100在针对第三行像素(“行3”)的时间t3时将处于的第三更新姿态、……,以及HMD 100在针对第N行像素(“行N”)的时间tN时将处于的第N更新姿态。在当前有所述多个更新姿态预测的情况下,合成器114可至少部分地基于初始姿态预测与更新姿态中的各个姿态之间的比较来计算(或以其他方式确定)多个调整202(1)-(N)。例如,所述多个调整202(1)-(N)可包括针对第一单独子集的像素(例如,第一行像素(“行1”))的第一调整202(1)、针对第二单独子集的像素(例如,第二行像素(“行2”))的第二调整202(2)、针对第三单独子集的像素(例如,第三行像素(“行3”))的第三调整202(3)、……,以及针对第N单独子集的像素(例如,第N行像素(“行N”))的第N调整202(N)。在图2的示例中,可基于作为输入提供给应用程序106的初始姿态预测和用于对应像素子集的更新姿态预测(例如,当第一行像素(“行1”)准备照亮时,针对时间t1的更新姿态预测)进行差值计算来计算(或以其他方式确定)单独调整(例如,第一调整202(1))。
图2所示的曲线图204示出了重新投影调整对显示面板104中用户102正在观看的位置附近的这些子集的像素是小尺度调整的方式。在图2的示例中,这些像素对应于第三行像素(“行3”)附近的像素。例如,可能对第三行像素(“行3”)的像素值作出几乎为零的重新投影调整,并且对相邻行像素的像素值仅作出小尺度的重新投影调整。这是因为:在图2的示例中,针对目标渲染时间t3(其为在照亮时间段120期间(即,在图像呈现期间)当第三行像素(“行3”)将照亮的时间)作出初始姿态预测,并且针对同一时间t3作出的与第三行像素(“行3”)相关联的更新姿态预测可能与初始姿态预测相同,或者如果不同,则预期该差值小于初始姿态预测与更新姿态预测中的其他姿态预测之间的差值。因此,即使需要应用任何重新投影调整,应用于第三行像素(“行3”)的像素值的重新投影调整也是小尺度重新投影调整。对于离第三行像素(“行3”)越远的行,重新投影调整的量逐渐增大。因此,对邻近于第三行像素(“行3”)的各个子集(行)的像素进行的任何重新投影调整将小于对远离(即,不邻近于)第三行像素(“行3”)的那些子集(行)的像素进行的重新投影调整。这就是为什么应用于第N行像素(“行N”)的像素值的重新投影调整比应用于比如说第二行像素(“行2”)的像素值的重新投影调整大得多的原因。然而,因为用户102在图像呈现期间正在观看显示面板104的顶部部分内的单独子集(或一组邻接子集)的像素(例如,第三行像素(“行3”)),所以由显示面板104的底部处的重新投影调整所导致的任何多余视觉伪影不被注意到。同时,用户102正在观看的感兴趣区域将没有由重新投影导致的这些类型的多余视觉伪影。
本文描述的过程被示为逻辑流程图中的框的集合,这些框代表可在硬件、软件、固件或其组合中实现的一系列操作(即逻辑)。在软件的上下文中,这些框代表计算机可执行指令,当由一个或多个处理器执行时,这些计算机可执行指令执行所列举的操作。通常,计算机可执行指令包括执行特定功能或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。描述操作的顺序不旨在被理解为限制,并且可以任何顺序和/或并行地组合任意数量的所描述的框来实现这些过程。
图3示出了根据本文所公开的实施方案的用于基于眼睛跟踪来动态地确定用于给定帧的渲染时间的示例性过程300的流程图。出于讨论的目的,参考前面的附图描述过程300。
在302处,可渲染一系列帧中的帧108以用于在HMD 100的显示面板104上呈现对应的图像。如所提及的,如果HMD 100包括一对显示面板,则该帧108可被渲染以用于在左显示面板104上呈现第一图像并且在右显示面板104上呈现第二图像,反之亦然。如302内的各个子框所示,可以存在由HMD 100(或HMD系统)的逻辑执行的各种子操作,以实现在框302处渲染帧108的目的。
在子框304处,HMD 100(或HMD系统)的逻辑(例如,包括合成器114的逻辑)可预测佩戴HMD 100的用户102在帧108的照亮时间段120期间将观看的显示面板104上的位置。在此,照亮时间段120是显示面板104上的各个子集的像素被依次照亮以在显示面板104上呈现图像的持续时间。如子框306所示,对用户102将观看的显示面板104上的位置的预测可至少部分地基于由HMD 100(或HMD系统)的眼睛跟踪系统生成的眼睛跟踪数据。例如,在子框306处,逻辑(例如,合成器114)可至少部分地基于由眼睛跟踪系统生成的眼睛跟踪数据来预测用户102在帧108的照亮时间段120期间将观看的注视点,并且该注视点可与显示面板104上的特定位置相对应。这样,逻辑(例如,合成器114)可被配置为确定显示面板104上与所预测的注视点相对应的位置(例如,通过访问可能的注视点和显示面板104上的各种位置之间的关联数据,并且/或者基于眼睛跟踪数据和其他参数来计算该位置)。在例示性示例中,眼睛跟踪数据(例如,眼睛取向数据)可指示佩戴HMD 100的用户的眼睛取向,诸如以偏离HMD100的视场(FOV)参数的中线的度数的形式。例如,基于HMD 100的FOV参数(例如,110度),并且可能基于HMD光学器件的失真参数,眼睛取向数据可用于估计最靠近或最接近用户在即将到来的帧的照亮时间段期间将观看的地方的一个子集(例如,一行)或一组邻接子集(例如,一组邻接行)的像素。例如,如果眼睛取向数据指示用户将从110度FOV的中线观看+20度的位置,则这可以是通过数学计算进行计算的并且角度偏移可与显示面板104的一行(或一组邻接行)(例如,1200行显示面板上的第400行)相关。因此,对用户将观看的显示面板104的位置的预测可基于HMD 100的FOV参数结合眼睛跟踪数据。
在子框308处,逻辑(例如,合成器114)可基于对用户102将观看显示面板104上的何处的预测来动态地确定用于帧108的渲染时间200。即,逻辑可确定帧108的照亮时间段120内的与显示面板104上的该位置相对应(例如,在该位置内)的单独子集的像素将被照亮的时间。在图3右侧的示意图中,示出了一个示例,其中在子框304处,逻辑预测用户102将观看显示面板104的底部部分,并且在子框308处,逻辑确定照亮时间段120(例如,从时间t1到时间tN)内的目标渲染时间200,该目标渲染时间与显示面板104的底部部分中的一个子集(例如,一行)的像素将照亮的时间相对应。
在子框310处,逻辑(例如,合成器114)可预测HMD 100在子框308处确定的时间(即,目标渲染时间200)时将处于的姿态。在子框310处对HMD 100的姿态的初始预测可至少部分地基于由HMD 100(或HMD系统)的头部跟踪系统生成的头部跟踪数据。
在子框312处,逻辑(例如,合成器114)可向应用程序106发送指示在子框310处预测的姿态的姿态数据以实现渲染帧108的目的。
在子框314处,逻辑(例如,合成器114)可从应用程序106接收针对帧108的像素数据。如本文所述,像素数据可包括显示面板104的像素阵列中的各个像素的像素值。
在子框316处,逻辑(例如,合成器114)可将重新投影调整应用于针对帧108的像素数据以获得与经重新投影的帧相关联的修改的像素数据。在图1的示意图中,这可在合成器114从应用程序106接收到针对帧108的像素数据之后的渲染工作负荷112期间发生。
在子框318处,逻辑(例如,合成器114)可将修改的像素数据输出到帧缓冲器。同样,对于具有一对显示面板104的HMD 100,该像素数据可与表示要在该对显示面板104上显示的一对图像的帧相对应。
在320处,HMD 100(或HMD系统)的逻辑(例如,显示控制器、显示驱动器电路等)可基于在框302处渲染的帧108(例如,至少部分地基于在子框318处输出到帧缓冲器的修改的像素数据)来使图像呈现在显示面板104上。如子框322和324所示,在框320处呈现图像可包括一个或多个子操作。
在子框322处,例如,可针对显示面板104上的各个子集的像素依次扫描输出修改的像素数据。例如,可经由显示端口(例如,HDMI)将各个行的像素的像素值顺序地扫描输出到显示面板104,从第一子集(例如,行)的像素开始并且以最后子集(例如,行)的像素结束。
在子框324处,可在帧108的照亮时间段120内依次照亮各个子集的像素,以便在显示面板104上呈现图像。这可通过使用滚动带显示驱动技术来驱动显示面板104的发光元件来实现,在滚动带显示驱动技术中,显示面板104的各个子集的发光元件被依次照亮以使对应子集的像素在图像呈现期间依次照亮。
图4示出了根据本文所公开的实施方案的用于应用重新投影调整的示例性子过程400(例如,过程300的框316的子过程)的流程图。出于讨论的目的,参考前面的附图描述过程400。
在402处,在合成器114已从应用程序106接收到针对帧108的像素数据之后,HMD100(或HMD系统)的逻辑(例如,包括合成器114的逻辑)可至少部分地基于由HMD 100(或HMD系统)的头部跟踪系统生成的更新的(第二)头部跟踪数据来预测HMD 100在帧108的照亮时间段120内的这些各个子集的像素将被照亮时的多个时间时的多个更新姿态。在其中各个子集的像素是各个行的像素的示例中,在框402处预测的所述多个更新姿态可包括HMD 100的在第一行像素(“行1”)将被照亮的时间时的第一更新姿态、HMD 100的在第二行像素(“行2”)将被照亮的时间时的第二更新姿态,以此类推到N行像素,N是任何合适的数目。
在406处,逻辑(例如,合成器114)可至少部分地基于初始预测的姿态与更新姿态中的各个姿态之间的比较来计算(或以其他方式确定)多个调整(例如,重新投影调整)。即,在框402处预测的更新姿态中的各个姿态可与在过程300的框310处预测并且作为输入发送给应用程序106以用于渲染帧108的初始姿态进行比较。在框406处进行的姿态之间的比较可确定可应用于初始预测的姿态以获得所讨论的各个更新姿态的变换。例如,在框406处确定的调整中的一个调整可例如与针对第一行像素可应用于初始预测的姿态以获得HMD 100的更新姿态的变换相对应。可以类似的方式确定针对其他子集的像素的附加变换。
在408处,逻辑(例如,合成器114)可至少部分地基于在框406处计算的所述多个调整来修改针对帧108的像素数据(从应用程序106接收该像素数据),以获得与经重新投影的帧相关联的修改的像素数据。再次简要地参考图2,曲线图204示出了在框406处计算的调整如何因在不同时间依次照亮各个子集的像素的滚动带显示驱动技术以及因用户102的头部可能在空间中不断移动的事实而跨显示面板104变化的示例。针对和与目标渲染时间200相关联的该子集的像素相邻的多个子集的像素的调整是小尺度调整,而针对和与目标渲染时间200相关联的该子集的像素不相邻的多个子集的像素的其他调整是较大尺度调整;与相邻像素子集的小尺度调整相比,这些较大尺度调整有多大取决于在渲染帧108并呈现对应图像时发生的头部旋转量(或速率)。在任何情况下,所述多个调整中针对和与目标渲染时间200相关联的该子集的像素相邻的第一单独子集的像素的第一调整可能小于所述多个调整中针对和与目标渲染时间200相关联的该子集的像素不相邻的第二单独子集的像素的第二调整,如图2的曲线图204中所描绘的。这意味着在显示面板104上呈现的图像没有由显示面板104上用户102正在观看的位置处的重新投影导致的多余伪影(例如,抖动)。
图5示出了根据本文所公开的实施方案的HMD 500(或包括HMD 500的HMD系统)的示例性部件,诸如可嵌入的VR头戴式耳机。HMD 500可以与先前附图中所引用的HMD 100相同或相似,并且因此可在HMD 100中实现图5所示的HMD 500的部件。HMD 500可被实现为将由用户102佩戴(例如,佩戴在用户102的头部上)的独立设备。在一些实施方案中,HMD 500可以是可头戴的,诸如通过允许用户102使用尺寸被设计为适配在用户102的头部周围的固定机构(例如,可调节带)将HMD 500固定在他/她的头部上。在一些实施方案中,HMD 500包括虚拟现实(VR)或增强现实(AR)头戴式耳机,该头戴式耳机包括近眼显示器。这样,术语“可穿戴设备”、“可穿戴电子设备”、“VR头戴式耳机”、“AR头戴式耳机”和“头戴式显示器(HMD)”在本文中可能够互换地使用以指代图5的设备500。然而,应当理解,这些类型的设备仅仅是HMD 500的示例,并且应当理解,HMD 500可以各种其他形状因子来实现。还应当理解,可在HMD500上实现图5所示的部件中的一些或全部部件。因此,在一些实施方案中,图5所示的部件的子集可在作为HMD系统的一部分但是与HMD 500自身分隔开的计算设备(诸如PC、游戏机或任何其他合适的计算设备)上实现。
在所示出的具体实施中,HMD 500包括一个或多个处理器502和存储器504(例如,计算机可读介质504)。在一些具体实施中,处理器502可包括中央处理单元(CPU)、图形处理单元(GPU)503、CPU和GPU 503两者、微处理器、数字信号处理器或本领域已知的其他处理单元或部件。另选地或附加地,本文所述的功能可至少部分地由一个或多个硬件逻辑部件执行。例如但不限于:可使用的例示性类型的硬件逻辑部件包括现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂的可编程逻辑器件(CPLD)等。另外,处理器502中的每个处理器可拥有自己的本地存储器,这些存储器也可存储程序模块、程序数据和/或一个或多个操作系统。
存储器504可包括采用用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术实现的易失性存储器和非易失性存储器、可移动介质和不可移动介质。此类存储器包括但不限于RAM、ROM、EEPROM、闪存存储器或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光学存储装置、盒式磁带、磁带、磁盘存储装置或其他磁性存储设备、RAID存储系统,或可用于存储所需信息并可由计算设备访问的任何其他介质。存储器504可被实现为计算机可读存储介质(“CRSM”),该CRSM可以是处理器502可访问以执行存储在存储器502上的指令的任何可用物理介质。在一种基本的具体实施中,CRSM可包括随机存取存储器(“RAM”)和闪存存储器。在其他具体实施中,CRSM可包括但不限于只读存储器(“ROM”)、电可擦除可编程只读存储器(“EEPROM”)或可用于存储所需信息并可由处理器502访问的任何其他有形介质。
一般来讲,HMD 500可包括被配置为实现本文描述的技术、功能和/或操作的逻辑(例如,软件、硬件和/或固件等)。计算机可读介质504被示为包括各种模块,诸如指令、数据存储等,这些模块可被配置为在处理器502上执行以实现本文描述的技术、功能和/或操作。一些示例性功能模块被示为存储在计算机可读介质504中并可在处理器502上执行,但是相同的功能可另选地采用硬件、固件或片上系统(SOC)和/或其他逻辑来实现。
为了其他模块的利益,操作系统模块506可被配置为管理位于HMD500内且耦接到该HMD的硬件。另外,在一些实例中,HMD 500可包括存储在存储器504中或者以其他方式可由HMD 500访问的一个或多个应用程序106。在该具体实施中,应用程序106包括游戏应用程序510。然而,HMD 500可包括任何数量或类型的应用程序,并且不限于此处示出的具体示例。游戏应用程序510可被配置为发起可由用户102玩耍的基于视频的交互式游戏(例如,VR游戏)的游戏开局并且输出要在HMD 500的显示面板上渲染的帧108。与HMD 500的其他逻辑相结合,合成器114可被配置为执行本文所述的技术以基于眼睛跟踪来动态地确定用于应用程序(例如,应用程序106)的渲染时间。
一般来讲,HMD 500具有输入设备512和输出设备514。输入设备512可包括控制按钮。在一些具体实施中,一或多个麦克风可用作输入设备512以接收音频输入,诸如用户语音输入。在一些具体实施中,一个或多个相机或其他类型的传感器(例如,惯性测量单元(IMU))可用作输入设备512以接收姿势输入,诸如用户102的手和/或头部运动。在一些实施方案中,可以键盘、小键盘、鼠标、触摸屏、操纵杆等的形式提供附加的输入设备512。在其他实施方案中,HMD 500可省略键盘、小键盘或其他类似形式的机械输入。相反,HMD 500可被实现具有相对简单形式的输入设备512、(基于无线或有线的)网络接口、功率和处理/存储能力。例如,可采用一个或多个输入部件的有限集合(例如,用于发起配置、开机/关机等的专用按钮),使得可在之后使用HMD 500。在一个具体实施中,输入设备512可包括控制机构,诸如用于增大/减小音量的基础音量控制按钮,以及电源和复位按钮。
输出设备514可包括显示器516,其可包括一个或多个显示面板104(例如,立体显示面板104对),如本文所述。输出设备514还可包括但不限于发光元件(例如,LED)、用于产生触觉的振动器、扬声器(例如,耳机)等。还可存在简单的发光元件(例如LED)来指示状态,例如在开机时。
HMD 500还可包括耦接到天线520的无线单元518以促进与网络之间的无线连接。无线单元518可实现各种无线技术中的一种或多种,诸如Wi-Fi、蓝牙、射频(RF)等。应当理解,HMD 500还可包括物理端口,以促进与网络、所连接的外围设备(包括PC、游戏机等)或与其他无线网络通信的插入式网络设备(其可以是HMD系统的一部分)之间的有线连接。
HMD 500还可包括光学子系统522,该光学子系统使用一个或多个光学元件将光从电子显示器516引导到用户的眼睛。光学子系统522可包括不同类型的不同光学元件及其组合,包括但不限于,诸如孔、透镜(例如,菲涅耳透镜、凸透镜、凹透镜等)、过滤器等。在一些实施方案中,光学子系统522中的一个或多个光学元件可具有一个或多个涂层,诸如抗反射涂层。光学子系统522对图像光的放大允许电子显示器516与较大的显示器相比在物理上更小、重量更轻且功率消耗更少。另外,对图像光的放大可增加所显示内容(例如,图像)的视场(FOV)。例如,所显示内容的FOV使得所显示内容使用用户FOV的几乎所有(例如,120至150度对角线)并且在一些情况下使用用户FOV的所有来进行呈现。AR应用程序可具有较窄的FOV(例如,约40度FOV)。光学子系统522可被设计成校正一个或多个光学误差,诸如但不限于桶形失真、枕形失真、纵向色差、横向色差、球面像差、彗形像差、像面弯曲、像散等。在一些实施方案中,提供给电子显示器516用于显示的内容被预失真,并且光学子系统522在其从电子显示器516接收到基于内容生成的图像光时校正该失真。
HMD 500还可包括一个或多个传感器524,诸如用于生成运动、位置和取向数据的传感器。这些传感器524可以是或包括陀螺仪、加速度计、磁力仪、摄像机、颜色传感器或其他运动、位置和取向传感器。传感器524还可包括传感器的子部分,诸如可由相机或颜色传感器从外部观察到以便生成运动、位置和取向数据的一系列有源或无源标记。例如,VR头戴式耳机可在其外部包括多个标记,诸如反射器或灯(例如,红外或可见光灯),当由外部相机观察到或由光(例如,红外或可见光)照射时,这些标记可提供一个或多个参考点以供软件解译以便生成运动、位置和取向数据。HMD 500可包括对由基站投射或散播到HMD 500的环境中的光(例如,红外或可见光)敏感的光传感器。
在一个示例中,传感器524可包括惯性测量单元(IMU)526。IMU 526可以是基于从加速度计、陀螺仪、磁力仪,和/或适于检测运动、校正与IMU526相关联的误差的其他传感器或它们的某种组合接收的测量信号来生成校准数据的电子设备。基于测量信号,此类基于运动的传感器诸如IMU 526可生成校准数据,该校准数据指示HMD 500相对于HMD 500的初始位置的估计位置。例如,多个加速度计可测量平移运动(向前/向后、向上/向下、向左/向右),并且多个陀螺仪可测量旋转运动(例如,俯仰、偏航和翻滚)。IMU 526可例如快速地对测量信号进行采样并且根据采样的数据来计算HMD 500的估计位置。例如,IMU 526可在时间上对从加速度计接收的测量信号进行积分以估计速度矢量,并且在时间上对速度矢量进行积分以确定HMD 500上的参考点的估计位置。参考点是可用于描述HMD 500的位置的点。虽然参考点通常可被定义为空间中的点,但是在各种实施方案中,参考点被定义为HMD 500内的点(例如,IMU 526的中心)。另选地,IMU526将采样的测量信号提供给确定校准数据的外部控制台(或其他计算设备)。
传感器524可以相对高的频率运行,以便以高速率提供传感器数据。例如,可以1000Hz(或每1毫秒获取1个传感器读数)的速率生成传感器数据。这样,每秒获取一千个读数。当传感器以该速率(或以更大的速率)生成这么多的数据时,即使在约数十毫秒的相对短的时间段内,用于预测运动的数据集也相当大。
如所提及的,在一些实施方案中,传感器524可包括光传感器,这些光传感器对由HMD 500的环境中的基站发射的光敏感以实现跟踪HMD500在3D空间中的位置和/或取向、姿态等的目的。对位置和/或取向的计算可基于光脉冲的定时特性以及由传感器524检测到的光的存在或不存在。
HMD 500还可包括眼睛跟踪系统528,如本文别处所述地作为生成眼睛跟踪数据的系统。眼睛跟踪系统528可包括但不限于HMD 500内部的相机或其他光学传感器以捕获用户的眼睛116的图像数据(或信息),并且眼睛跟踪系统528可使用所捕获的数据/信息来确定运动矢量、瞳孔间距、双眼间距、每只眼睛116相对于HMD 500的三维(3D)位置,该三维位置包括每只眼睛116的扭转和旋转(即,翻滚、俯仰和偏航)的幅度以及注视方向。在一个示例中,在HMD 500内发射红外光并且从每只眼睛116反射红外光。反射光由眼睛跟踪系统528的相机接收或检测并被分析以从每只眼睛116反射的红外光的变化中提取眼睛旋转。眼睛跟踪系统528可使用用于跟踪用户102的眼睛116的许多方法。因此,眼睛跟踪系统528可跟踪每只眼睛的多达六个自由度(即,3D位置、翻滚、俯仰和偏航),并且从用户102的双眼116所跟踪的量的至少一个子集可被组合以估计注视点(即,用户正在观看的地方的3D定位或在虚拟场景中的位置),该注视点可映射到显示面板104上的位置,以用于预测用户102就显示面板104的单独子集(例如,行)或一组邻接子集(例如,一组邻接行)的像素而言将观看的地方。例如,眼睛跟踪系统528可集成来自过去的测量结果的信息、识别用户102的头部的位置的测量结果,以及描述由电子显示器516呈现的场景的3D信息。因此,针对用户102的眼睛116的位置和取向的信息被用于确定由HMD 500呈现的虚拟场景中用户102正在观看的注视点并且将该注视点映射到HMD 100的显示面板104上的位置。如先前所提及的,对用户102正在观看的显示面板104上的注视点或位置的最近估计/预测可用作用于预测用户102在给定帧108的即将到来的照亮时间段120期间将观看何处的代理。然而,可利用用于预测用户102未来将观看何处的其他技术,诸如利用运动矢量来预测眼睛运动的轨迹等。
HMD 500还可包括头部跟踪系统530。头部跟踪系统530可利用传感器524中的一个或多个来跟踪用户102的头部运动(包括头部旋转),如上所述。例如,头部跟踪系统530可跟踪HMD 500的多达六个自由度(即,3D位置、翻滚、俯仰和偏航)。这些计算可在一系列帧108中的每个帧108处进行,使得应用程序106可根据头部位置和取向来确定如何渲染下一帧108中的场景。在一些实施方案中,头部跟踪系统530和/或使用头部跟踪系统530的合成器114被配置为基于当前和/或过去的数据和/或基于实现滚动带显示驱动技术的显示系统中的各个子集的像素的已知/隐含的扫描输出延迟来预测HMD 500的未来姿态(位置和/或取向),如本文所述。这是因为要求应用程序在用户102实际上看到显示器516上的光(并且因此看到图像)之前渲染帧108。因此,可基于在较早时间点作出的对头部位置和/或取向的这一未来预测来渲染下一帧108,所述较早时间点可大致在渲染帧108之前的12至30毫秒(ms)的范围内,这取决于针对给定帧108确定的目标渲染时间200。由头部跟踪系统530提供的旋转数据可用于确定任何合适的测量单位下的HMD 500的旋转方向和HMD 500的旋转量两者。例如,可根据对应于左、右、上和下的正或负水平方向和正或负垂直方向来简化和输出旋转方向。旋转量可以是就角度、弧度等而言。可计算角速度以确定HMD 500的旋转速率。
尽管已经用特定于结构特征的语言描述了主题,但是应当理解,所附权利要求书中定义的主题不必限于所描述的具体特征。相反,具体特征被公开为实现权利要求的例示性形式。
Claims (20)
1.一种头戴式显示器(HMD)系统,包括:
HMD,所述HMD包括具有像素阵列的显示面板;
眼睛跟踪系统;
头部跟踪系统;
处理器;和
存储器,所述存储器存储计算机可执行指令,所述计算机可执行指令在由所述处理器执行时使所述HMD系统:
至少部分地基于由所述眼睛跟踪系统生成的眼睛跟踪数据来预测佩戴所述HMD的用户在照亮时间段期间将观看的所述显示面板上的位置,其中各个子集的所述像素在所述照亮时间段内依次被照亮以在所述显示面板上呈现图像;
确定在所述照亮时间段内与所述显示面板上的所述位置相对应的单独子集的所述像素将被照亮的时间;
至少部分地基于由所述头部跟踪系统生成的头部跟踪数据来预测所述HMD在所述时间时将处于的姿态;
将指示所述姿态的姿态数据发送到应用程序以用于渲染与所述图像相对应的帧;
从所述应用程序接收针对所述帧的像素数据;
将重新投影调整应用于针对所述帧的所述像素数据以获得与经重新投影的帧相关联的修改的像素数据;以及
至少部分地基于所述修改的像素数据来在所述显示面板上呈现所述图像,其中在所述图像呈现在所述显示面板上期间的所述照亮时间段内依次照亮所述各个子集的所述像素。
2.根据权利要求1所述的HMD系统,其中:
所述像素阵列的所述像素布置成行和列;
所述各个子集的所述像素与各个行的所述像素相对应;并且
所述各个行的所述像素被照亮的所述顺序为从上到下。
3.根据权利要求1所述的HMD系统,其中预测所述位置还基于所述HMD的视场(FOV)参数。
4.根据权利要求1所述的HMD系统,其中将所述重新投影调整应用于所述像素数据以获得修改的像素数据包括:
至少部分地基于由所述头部跟踪系统生成的第二头部跟踪数据来预测所述HMD在所述照亮时间段内的所述各个子集的所述像素将被照亮时的多个时间时的多个更新姿态;
至少部分地基于所述姿态与所述更新姿态中的各个更新姿态之间的比较来计算多个调整;以及
至少部分地基于所述多个调整来修改针对所述帧的所述像素数据以获得与所述经重新投影的帧相关联的所述修改的像素数据。
5.根据权利要求4所述的HMD系统,其中:
所述多个调整包括:
针对与对应于所述显示面板上的所述位置的所述单独子集的所述像素相邻的第一单独子集的所述像素的第一调整;和
针对与对应于所述显示面板上的所述位置的所述单独子集的所述像素不相邻的第二单独子集的所述像素的第二调整;并且
所述第一调整小于所述第二调整。
6.根据权利要求1所述的HMD系统,其中:
所述显示面板是包括所述第一显示面板和第二显示面板的一对显示面板中的第一显示面板;并且
所述图像是至少部分地基于所述像素数据而呈现在所述一对显示面板上的一对图像中的第一图像。
7.一种由头戴式显示器(HMD)系统实现的方法,所述HMD系统包括具有像素阵列的显示面板,所述方法包括:
至少部分地基于由所述HMD系统的眼睛跟踪系统生成的眼睛跟踪数据来预测佩戴所述HMD的用户在照亮时间段期间将观看的所述显示面板上的位置,其中各个子集的所述像素在所述照亮时间段内依次被照亮以在所述显示面板上呈现图像;
确定在所述照亮时间段内与所述显示面板上的所述位置相对应的单独子集的所述像素将被照亮的时间;
至少部分地基于由所述HMD系统的头部跟踪系统生成的头部跟踪数据来预测所述HMD在所述时间时将处于的姿态;
将指示所述姿态的姿态数据发送到应用程序以用于渲染与所述图像相对应的帧;
从所述应用程序接收针对所述帧的像素数据;
将重新投影调整应用于针对所述帧的所述像素数据以获得与经重新投影的帧相关联的修改的像素数据;以及
至少部分地基于所述修改的像素数据来在所述显示面板上呈现所述图像,其中在所述图像呈现在所述显示面板上期间的所述照亮时间段内依次照亮所述各个子集的所述像素。
8.根据权利要求7所述的方法,其中所述将所述重新投影调整应用于针对所述帧的所述像素数据以获得与所述经重新投影的帧相关联的所述修改的像素数据包括:
至少部分地基于由所述头部跟踪系统生成的第二头部跟踪数据来预测所述HMD在所述照亮时间段内的所述各个子集的所述像素将被照亮时的多个时间时的多个更新姿态;
至少部分地基于所述姿态与所述更新姿态中的各个更新姿态之间的比较来计算多个调整;以及
至少部分地基于所述多个调整来修改针对所述帧的所述像素数据以获得与所述经重新投影的帧相关联的所述修改的像素数据。
9.根据权利要求8所述的方法,其中:
所述多个调整包括:
针对与对应于所述显示面板上的所述位置的所述单独子集的所述像素相邻的第一单独子集的所述像素的第一调整;和
针对与对应于所述显示面板上的所述位置的所述单独子集的所述像素不相邻的第二单独子集的所述像素的第二调整;并且
所述第一调整小于所述第二调整。
10.根据权利要求7所述的方法,其中:
所述眼睛跟踪数据指示所述用户正在观看所述显示面板的所述位置;并且
对所述用户在所述照亮时间段期间将观看的所述显示面板上的所述位置的所述预测包括使用所述用户正在观看的所述显示面板的所述位置作为用于预测所述用户在所述照亮时间段期间将观看所述显示面板上的何处的代理。
11.根据权利要求7所述的方法,其中:
所述像素阵列的所述像素布置成行和列;
所述各个子集的所述像素与所述各个行的所述像素或各个组的邻接行的所述像素中的至少一者相对应;并且
所述各个子集的所述像素被照亮的所述顺序为从上到下。
12.根据权利要求7所述的方法,其中所述眼睛跟踪数据指示所述用户的眼睛取向,并且其中所述位置被预测为相对于所述用户的所述眼睛取向最接近的一个子集的像素。
13.根据权利要求7所述的方法,其中:
所述显示面板是包括所述第一显示面板和第二显示面板的一对显示面板中的第一显示面板;并且
所述图像是至少部分地基于所述像素数据而呈现在所述一对显示面板上的一对图像中的第一图像。
14.根据权利要求7所述的方法,其中所述HMD是虚拟现实(VR)头戴式耳机。
15.根据权利要求7所述的方法,其中预测所述位置还基于所述HMD的视场(FOV)参数。
16.一种头戴式显示器(HMD)系统,包括:
HMD,所述HMD包括具有像素阵列的显示面板;
眼睛跟踪系统;
头部跟踪系统;
处理器;和
存储器,所述存储器存储计算机可执行指令,所述计算机可执行指令在由所述处理器执行时使所述HMD系统:
至少部分地基于由所述眼睛跟踪系统生成的眼睛跟踪数据来预测佩戴所述HMD的用户在照亮时间段期间将观看的注视点,其中各个子集的所述像素在所述照亮时间段内依次被照亮以在所述显示面板上呈现图像;
确定与所述注视点相对应的单独子集的所述像素;
至少部分地基于由所述头部跟踪系统生成的头部跟踪数据来预测所述HMD在所述照亮时间段内的所述单独子集的所述像素将被照亮时的时间时将处于的姿态;
将指示所述姿态的姿态数据发送到应用程序以用于渲染与所述图像相对应的帧;
从所述应用程序接收针对所述帧的像素数据;
将重新投影调整应用于针对所述帧的所述像素数据以获得与经重新投影的帧相关联的修改的像素数据;以及
至少部分地基于所述修改的像素数据来在所述显示面板上呈现所述图像,其中在所述图像呈现在所述显示面板上期间的所述照亮时间段内依次照亮所述各个子集的所述像素。
17.根据权利要求16所述的HMD系统,其中将所述重新投影调整应用于针对所述帧的所述像素数据以获得与所述经重新投影的帧相关联的所述修改的像素数据包括:
至少部分地基于由所述头部跟踪系统生成的第二头部跟踪数据来预测所述HMD在所述照亮时间段内的所述各个子集的所述像素将被照亮时的多个时间时的多个更新姿态;
至少部分地基于所述姿态与所述更新姿态中的各个更新姿态之间的比较来计算多个调整;以及
至少部分地基于所述多个调整来修改针对所述帧的所述像素数据以获得与所述经重新投影的帧相关联的所述修改的像素数据。
18.根据权利要求16所述的HMD系统,其中:
所述像素阵列的所述像素布置成行和列;
所述各个子集的所述像素与所述各个行的所述像素或各个组的邻接行的所述像素中的至少一者相对应;
所述各个子集的所述像素被照亮的所述顺序为从上到下;并且
确定与所述注视点相对应的所述单独子集的所述像素包括估计所述用户将观看的单独行的所述像素或单独组的邻接行的所述像素中的至少一者。
19.根据权利要求16所述的HMD系统,其中所述HMD是虚拟现实(VR)头戴式耳机。
20.根据权利要求16所述的HMD系统,其中:
所述眼睛跟踪数据指示所述用户正在观看的注视点;并且
预测所述用户在所述照亮时间段期间将观看的所述注视点包括使用所述用户正在观看的所述注视点作为用于预测所述用户在所述照亮时间段期间将观看何处的代理。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962792305P | 2019-01-14 | 2019-01-14 | |
US62/792,305 | 2019-01-14 | ||
US16/367,008 | 2019-03-27 | ||
US16/367,008 US10802287B2 (en) | 2019-01-14 | 2019-03-27 | Dynamic render time targeting based on eye tracking |
PCT/US2020/013441 WO2020150191A1 (en) | 2019-01-14 | 2020-01-14 | Dynamic render time targeting based on eye tracking |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113272715A true CN113272715A (zh) | 2021-08-17 |
Family
ID=71517537
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080008252.2A Pending CN113272715A (zh) | 2019-01-14 | 2020-01-14 | 基于眼睛跟踪的动态渲染时间确定 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10802287B2 (zh) |
EP (1) | EP3884340A4 (zh) |
JP (1) | JP2022517991A (zh) |
KR (1) | KR20210113602A (zh) |
CN (1) | CN113272715A (zh) |
WO (1) | WO2020150191A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114040184A (zh) * | 2021-11-26 | 2022-02-11 | 京东方科技集团股份有限公司 | 图像显示方法、系统、存储介质及计算机程序产品 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10962780B2 (en) * | 2015-10-26 | 2021-03-30 | Microsoft Technology Licensing, Llc | Remote rendering for virtual images |
US10520739B1 (en) * | 2018-07-11 | 2019-12-31 | Valve Corporation | Dynamic panel masking |
US11962819B2 (en) * | 2018-07-17 | 2024-04-16 | Dolby Laboratories Licensing Corporation | Foviation and HDR |
EP3871069A1 (en) * | 2018-10-24 | 2021-09-01 | PCMS Holdings, Inc. | Systems and methods for region of interest estimation for virtual reality |
SE542556C2 (en) * | 2018-12-12 | 2020-06-02 | Tobii Ab | Method Computer Program and Driver Unit for Streaming Gaze Data Packets |
US20210192681A1 (en) * | 2019-12-18 | 2021-06-24 | Ati Technologies Ulc | Frame reprojection for virtual reality and augmented reality |
US11803221B2 (en) * | 2020-03-23 | 2023-10-31 | Microsoft Technology Licensing, Llc | AI power regulation |
US11977672B2 (en) * | 2022-06-03 | 2024-05-07 | Qualcomm Incorporated | Distributed pose prediction |
US11880503B1 (en) * | 2022-12-19 | 2024-01-23 | Rockwell Collins, Inc. | System and method for pose prediction in head worn display (HWD) headtrackers |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170213388A1 (en) * | 2016-01-25 | 2017-07-27 | Jeffrey Neil Margolis | Frame Projection For Augmented Reality Environments |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040104935A1 (en) * | 2001-01-26 | 2004-06-03 | Todd Williamson | Virtual reality immersion system |
US9690099B2 (en) * | 2010-12-17 | 2017-06-27 | Microsoft Technology Licensing, Llc | Optimized focal area for augmented reality displays |
US10585472B2 (en) * | 2011-08-12 | 2020-03-10 | Sony Interactive Entertainment Inc. | Wireless head mounted display with differential rendering and sound localization |
US9443355B2 (en) * | 2013-06-28 | 2016-09-13 | Microsoft Technology Licensing, Llc | Reprojection OLED display for augmented reality experiences |
EP3047641A4 (en) * | 2013-09-16 | 2017-03-08 | Intel Corporation | Camera and light source synchronization for object tracking |
US9727136B2 (en) * | 2014-05-19 | 2017-08-08 | Microsoft Technology Licensing, Llc | Gaze detection calibration |
US20160238852A1 (en) * | 2015-02-13 | 2016-08-18 | Castar, Inc. | Head mounted display performing post render processing |
US10274728B2 (en) * | 2015-05-18 | 2019-04-30 | Facebook Technologies, Llc | Stacked display panels for image enhancement |
US11010956B2 (en) * | 2015-12-09 | 2021-05-18 | Imagination Technologies Limited | Foveated rendering |
US10089725B2 (en) * | 2016-02-09 | 2018-10-02 | Google Llc | Electronic display stabilization at a graphics processing unit |
US9829710B1 (en) * | 2016-03-02 | 2017-11-28 | Valve Corporation | Display with stacked emission and control logic layers |
US10372205B2 (en) * | 2016-03-31 | 2019-08-06 | Sony Interactive Entertainment Inc. | Reducing rendering computation and power consumption by detecting saccades and blinks |
US11017712B2 (en) * | 2016-08-12 | 2021-05-25 | Intel Corporation | Optimized display image rendering |
US9928660B1 (en) * | 2016-09-12 | 2018-03-27 | Intel Corporation | Hybrid rendering for a wearable display attached to a tethered computer |
US10379611B2 (en) * | 2016-09-16 | 2019-08-13 | Intel Corporation | Virtual reality/augmented reality apparatus and method |
US20180081434A1 (en) * | 2016-09-22 | 2018-03-22 | Apple Inc. | Eye and Head Tracking |
US10565777B2 (en) * | 2016-09-30 | 2020-02-18 | Sony Interactive Entertainment Inc. | Field of view (FOV) throttling of virtual reality (VR) content in a head mounted display |
US10043318B2 (en) * | 2016-12-09 | 2018-08-07 | Qualcomm Incorporated | Display synchronized image warping |
US10212428B2 (en) * | 2017-01-11 | 2019-02-19 | Microsoft Technology Licensing, Llc | Reprojecting holographic video to enhance streaming bandwidth/quality |
US10643528B2 (en) * | 2018-01-23 | 2020-05-05 | Valve Corporation | Rolling burst illumination for a display |
US10890968B2 (en) * | 2018-05-07 | 2021-01-12 | Apple Inc. | Electronic device with foveated display and gaze prediction |
US10520739B1 (en) * | 2018-07-11 | 2019-12-31 | Valve Corporation | Dynamic panel masking |
US20200050353A1 (en) * | 2018-08-09 | 2020-02-13 | Fuji Xerox Co., Ltd. | Robust gesture recognizer for projector-camera interactive displays using deep neural networks with a depth camera |
-
2019
- 2019-03-27 US US16/367,008 patent/US10802287B2/en active Active
-
2020
- 2020-01-14 EP EP20741934.2A patent/EP3884340A4/en active Pending
- 2020-01-14 WO PCT/US2020/013441 patent/WO2020150191A1/en unknown
- 2020-01-14 KR KR1020217020032A patent/KR20210113602A/ko unknown
- 2020-01-14 JP JP2021540310A patent/JP2022517991A/ja active Pending
- 2020-01-14 CN CN202080008252.2A patent/CN113272715A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170213388A1 (en) * | 2016-01-25 | 2017-07-27 | Jeffrey Neil Margolis | Frame Projection For Augmented Reality Environments |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114040184A (zh) * | 2021-11-26 | 2022-02-11 | 京东方科技集团股份有限公司 | 图像显示方法、系统、存储介质及计算机程序产品 |
Also Published As
Publication number | Publication date |
---|---|
US20200225473A1 (en) | 2020-07-16 |
EP3884340A1 (en) | 2021-09-29 |
KR20210113602A (ko) | 2021-09-16 |
US10802287B2 (en) | 2020-10-13 |
WO2020150191A1 (en) | 2020-07-23 |
EP3884340A4 (en) | 2022-08-24 |
JP2022517991A (ja) | 2022-03-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11314322B2 (en) | Display system with dynamic light output adjustment for maintaining constant brightness | |
CN113272715A (zh) | 基于眼睛跟踪的动态渲染时间确定 | |
CN113170136B (zh) | 重投影帧的运动平滑 | |
US11151776B2 (en) | Prediction and throttling adjustments based on application rendering performance | |
US11303875B2 (en) | Split rendering between a head-mounted display (HMD) and a host computer | |
US11343486B2 (en) | Counterrotation of display panels and/or virtual cameras in a HMD | |
CN112384843A (zh) | 动态面板掩膜 | |
CN111066081B (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 |