CN109313470B - 利用重新投影的锐利文本绘制 - Google Patents

利用重新投影的锐利文本绘制 Download PDF

Info

Publication number
CN109313470B
CN109313470B CN201780039325.2A CN201780039325A CN109313470B CN 109313470 B CN109313470 B CN 109313470B CN 201780039325 A CN201780039325 A CN 201780039325A CN 109313470 B CN109313470 B CN 109313470B
Authority
CN
China
Prior art keywords
data
updated
user perspective
field
user
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.)
Active
Application number
CN201780039325.2A
Other languages
English (en)
Other versions
CN109313470A (zh
Inventor
R·S·K·西尔万
P·C·赫克金格
A·汤姆林
N·M·法兰德
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN109313470A publication Critical patent/CN109313470A/zh
Application granted granted Critical
Publication of CN109313470B publication Critical patent/CN109313470B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/73Deblurring; Sharpening
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/001Texturing; Colouring; Generation of texture or colour
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/017Head mounted
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/0179Display position adjusting means not related to the information to be displayed
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/1613Constructional details or arrangements for portable computers
    • G06F1/163Wearable computers, e.g. on a belt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/012Head tracking input arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/013Eye tracking input arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/22Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of characters or indicia using display control signals derived from coded signals representing the characters or indicia, e.g. with a character-code memory
    • G09G5/24Generation of individual character patterns
    • G09G5/28Generation of individual character patterns for enhancement of character form, e.g. smoothing
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/0179Display position adjusting means not related to the information to be displayed
    • G02B2027/0187Display 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
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/04Changes in size, position or resolution of an image
    • G09G2340/0407Resolution change, inclusive of the use of different resolutions for different screen areas
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/18Use of a frame buffer in a display terminal, inclusive of the display panel

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Computer Graphics (AREA)
  • Optics & Photonics (AREA)
  • Computing Systems (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Processing Or Creating Images (AREA)

Abstract

提供了一种计算设备,其包括输入设备、显示设备和处理器,处理器被配置为:在绘制流水线的绘制阶段,将视觉场景数据绘制到帧缓冲器,以及生成向量图形数据的边缘的带符号距离场,以及在显示所绘制的视觉场景之前的绘制流水线的重新投影阶段,经由输入设备接收更新用户视角的绘制后用户输入,基于更新的用户视角来重新投影帧缓冲器中的所绘制的视觉场景数据,基于更新的用户视角来重新投影带符号距离场的数据,评估带符号距离场以生成重新投影的向量图形数据,以及生成包括重新投影的所绘制的视觉场景数据和重新投影的图形数据的合成图像,以及在显示设备上显示合成图像。

Description

利用重新投影的锐利文本绘制
背景技术
实时绘制流水线被用于基于用户输入来实时地绘制计算机图形。在一些应用中,由于执行绘制需要时间,因此滞后可能出现在用户输入与计算机图形的绘制之间。为了校正该滞后,图像可以在绘制之后,紧接在被显示之前,基于对用户输入数据的最近读取而被重新投影。
发明内容
提供了一种计算设备,其包括输入设备、显示设备、以及处理器。处理器被配置为:在绘制流水线的绘制阶段,基于由应用程序输出的数据来确定从用户视角看到的场景,场景包括视觉场景数据和向量图形数据,用户视角基于来自输入设备的用户输入被确定;将视觉场景数据作为二维像素数据绘制到帧缓冲器;以及生成向量图形数据的边缘的带符号距离场。处理器进一步被配置为:在显示所绘制的视觉场景之前的绘制流水线的重新投影阶段,经由输入设备接收更新用户视角的绘制后用户输入;基于更新的用户视角来重新投影帧缓冲器中的所绘制的视觉场景数据;基于更新的用户视角来重新投影带符号距离场的数据;评估带符号距离场以生成重新投影的向量图形数据;生成包括重新投影的所绘制的视觉场景数据和重新投影的图形数据的合成图像;以及在显示设备上显示合成图像。
本发明内容被提供来以简化形式介绍概念的选集,这些概念在下文的具体实施方式中被进一步描述。本发明内容不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在被用于限制所要求保护的主题的范围。此外,所要求的保护主题不限于解决本公开的任何部分中指出的任何或所有缺点的实施方式。
附图说明
图1示出了根据本公开的一个实施例的头戴式显示器(HMD)设备形式的计算设备的侧面透视图。
图2示出了所绘制帧的绘制后重新投影的示意性视图,其用来校正图1的HMD设备的位置和定向的改变以及可能导致的模糊。
图3示出了由图1的HMD设备实施的绘制流水线的一个实施例的示意性视图。
图4是在图1的HMD设备上显示的、文本数据形式的向量图形数据的带符号距离场表示的示意性图示。
图5是在图1的HMD设备上显示的、几何形状形式的向量图形数据的带符号距离场表示的示意性图示。
图6示出了合成帧的绘制后重新投影的示意性视图,该合成帧具有两层以避免显示的合成图像中的向量图形数据中的模糊,一层具有视觉场景数据(像素数据)并且一层具有向量图形数据,诸如文本数据。
图7示出了由图1的HMD设备实施的使用带符号距离场进行凹式(foveated)绘制的示意性图示。
图8示出了使用图1的HMD设备进行锐利文本绘制的示例方法。
图9示出了根据本描述的实施例的示例计算系统。
具体实施方式
如下文详细讨论的,发明人已经认识到,背景技术中描述的图像重新投影可能导致模糊图像,并且这种模糊可能对用户对文本和其他向量图形的感知具有特别负面的影响,因为用户习惯于以锐聚焦来观察文本和其他向量图形。本文描述的系统和方法已经被设计为解决该挑战,并且如下文讨论的,提供了潜在地减少文本和其他向量图形的这种模糊的优点,同时仍然利用了由最后阶段重新投影提供的精确定位。
图1图示了头戴式显示器(HMD)设备10形式的计算设备。根据被公开的示例,HMD设备10可以由用户佩戴。在其他示例中,HMD设备可以采取其他合适的形式,其中在增强现实HMD设备配置中,在观察者的单眼或双眼前面支持至少部分透视的显示器。
在图1的示例中,HMD设备10包括框架12,框架12环绕用户的头部以将显示设备14定位为接近用户的眼睛。该框架支撑HMD设备10的附加组件,诸如,例如处理器16和输入设备18。处理器16包括逻辑的且相关联的计算机存储器,其被配置为向显示设备14提供图像信号,接收来自输入设备18的感测信号,以及实现本文描述的各种控制过程。
任何合适的显示技术和配置可以用于经由显示设备14来显示图像。例如,在非增强现实配置中,显示设备14可以是非透视的发光二极管(LED)显示器、液晶显示器(LCD)、或者任何其他合适类型的非透视显示器。在增强现实配置中,显示设备14可以被配置为:使得HMD设备10的佩戴者能够通过显示虚拟对象表示的一个或多个部分透明的像素,来观察物理环境中的物理的、真实世界对象。例如,显示设备14可以包括图像产生元件,诸如,例如透视的有机发光二极管(OLED)显示器。
作为另一示例,HMD设备10可以包括显示设备14的边缘上的光调制器。在该示例中,显示设备14可以用作光导,用于将光从光调制器递送到佩戴者的眼睛。在其他示例中,显示设备14可以利用硅上液晶(LCOS)显示器。
输入设备18可以包括各种传感器和相关系统,以向处理器16提供信息。这样的传感器可以包括,但不限于,惯性测量单元(IMU)18A、一个或多个面向外的图像传感器18B、以及一个或多个面向内的图像传感器18C。一个或多个面向内的图像传感器18B可以被配置为从佩戴者的眼睛获取注视跟踪数据形式的图像数据。
处理器16可以执行指令而基于从面向内的图像传感器18C接收的信息,以任何合适的方式来确定佩戴者的眼睛中的每只眼睛的注视方向。例如,一个或多个光源(诸如,红外光源)可以被配置为使得光的闪烁从佩戴者的每只眼睛的角膜反射。一个或多个图像传感器18C可以被配置为捕获佩戴者眼睛的图像。根据从图像传感器收集的图像数据所确定的闪烁和瞳孔的图像可以被用于确定每只眼睛的光轴。使用该信息,处理器16可以执行指令来确定佩戴者正注视的方向。
在其他实施方式中,不同类型的注视传感器可以在HMD设备10中被采用,以测量用户眼睛的一个或多个注视参数。由一个或多个注视传感器测量的注视参数的示例可以包括:眼睛注视方向或注视向量、头部定向、眼睛注视速度、眼睛注视加速度、眼睛注视方向的角度变化、和/或任何其他合适的跟踪信息。
一个或多个面向外的图像传感器18B可以被配置为捕获和/或测量HMD设备100所位于的物理环境的物理环境属性。在一个示例中,图像传感器116可以包括被配置为收集物理空间的可见光图像的可见光相机。此外,一个或多个面向外的图像传感器18B可以包括被配置为收集物理空间的深度图像的深度相机。更具体地,在一个示例中,深度相机是红外飞行时间深度相机。在另一示例中,深度相机是红外结构化光深度相机。
来自面向外的图像传感器18B的数据可以由处理器16用来生成和/或更新物理空间的三维(3D)模型。来自面向外的图像传感器18B的数据可以由处理器16用来识别物理空间的表面和/或测量物理空间的一个或多个表面参数。处理器16可以执行指令来生成/更新在显示设备14上显示的虚拟场景,以及以任何合适方式来识别物理空间的表面。在一个示例中,从图像传感器18B的深度相机所提供的深度数据得到的深度图可以被用于精确定位以及确定对显示设备14上显示的虚拟文本的遮挡(occlusion)。将明白,在HMD设备10的一些非增强现实配置中,输入设备18可以不包括面向外的图像传感器18B。
在HMD设备10的增强显示配置中,HMD设备10相对于物理环境的位置和/或定向可以被估算,从而增强现实图像可以以期望定向被精确地显示在期望的真实世界地点处。如上面指出的,处理器16可以执行指令来生成物理环境的3D模型,该3D模型包括表面重建信息,其可以用于识别物理空间中的表面。
在HMD设备10的增强现实配置和非增强显示配置两者中,HMD设备10的IMU 18A可以被配置为向处理器16提供HMD设备10的位置和/或定向数据。在一个实施方式中,IMU 18A可以被配置作为三轴或三自由度(3DoF)位置传感器系统。该示例位置传感器系统可以例如包括三个陀螺仪,以指示或测量HMD设备10关于三个正交轴(例如,滚转、俯仰和偏航)在3D空间内的定向变化。从IMU的传感器信号得到的定向可以被用于,经由显示设备14,显示具有真实且稳定的位置和定向的一个或多个全息图像。
在另一示例中,IMU 18A可以被配置作为六轴或六自由度(6DOF)位置传感器系统。这种配置可以包括三个加速度计和三个陀螺仪,以指示或测量HMD设备10沿着三个正交空间轴(例如,x、y和z)的地点变化、以及设备定向关于三个正交旋转轴(例如,偏航、俯仰和滚转)的变化。在一些实施方式中,来自面向外的图像传感器18B和IMU 18A的位置和定向数据可以被结合使用,以确定HMD设备10的位置和定向(或6DOF姿态)。
在一些示例中,6DOF位置传感器系统可以被用于以世界锁定的方式来显示全息表示。世界锁定的全息表示相对于通过HMD设备10可观察的一个或多个真实世界对象看起来是固定的,由此使得HMD设备10的佩戴者能够在真实世界物理环境中移动,同时将世界锁定的全息图感知为相对于物理环境中的一个或多个真实世界对象以固定地点和定向保持静止。
处理器16可以包括逻辑处理器,并且如下文关于图8的示例计算系统900更详细讨论的,HMD设备10可以包括易失性存储器和非易失性存储装置,其与显示设备14和输入设备18的各种传感器处于通信中。
上文的描述涉及计算设备的HMD设备实施方式。然而,将明白,非HMD设备实施方式(诸如,台式计算设备、平板计算设备等)可以被配置为执行本文描述的方法。
图2图示了如先前讨论的在所绘制图像的重新投影之后可能出现的模糊文本问题的示例。如所示出的,由用户佩戴的示例HMD设备10A已经在时间T1处开始绘制图像30A。图像30A基于示例HMD设备10A上正被执行的应用的应用数据而被绘制,在图示的示例中,其可以包括富士山的虚拟表示。因此,富士山的虚拟表示从用户视角被绘制,用户视角可以至少部分地由时间T1处的示例HMD设备10A的位置P1和用户的头部定向O1来定义。除了富士山的虚拟表示之外,名称“MT.FUJI”的文本数据也被绘制到图像中。相应地,图像30A(包括如从用户视角观察到的富士山的虚拟表示和词语“Mt.Fuji”两者)被绘制到帧缓冲器,并且因此被存储在示例HMD设备10的易失性存储器中。
然而,将明白,对图像30A进行绘制将花费离散的时间量。此外,在一些实施方式中,在被发送到示例HMD设备10A以被显示之前,图像30A可能由单独的计算设备(诸如台式计算机)绘制,这可能进一步增加在图像30A的绘制已经开始时与图像30A将被实际显示给用户时之间经过的时间量。因此,在时间T2处,当图像30A已经被最终绘制并且准备好在被显示在示例HMD设备10A的显示器上时,已经经过了离散的时间量(诸如,10-20毫秒),对于用户移动或继续移动其头部至不同的头部定向并且因此改变HMD设备10A的位置,这可能是足够的时间。相应地,在时间T2处,示例HMD设备10A可以具有位置P2并且用户可以具有头部定向O2,它们不同于图像30A被绘制时的时间T1的位置P1和头部定向O1。因此,图像30A将从针对头部定向O1的用户视角被绘制,而用户将期望看到从针对头部定向O2的用户视角绘制的图像。这种差异可能引起用户的定向障碍,并且可能降低用户体验。
为了解决上述问题,示例HMD设备10A被配置为将用于所绘制图像30A的图像数据重新投影到针对头部定向O2和示例HMD设备10A位置P2的用户视角。重新投影图像数据可以比完全绘制新图像更快速地被处理,并且在对于用户头部定向以任何有影响的程度进一步改变的足够时间已经经过之前,图像30A可以被重新投影到新定向O2并且被显示给用户。相应地,在时间T2处,重新投影的图像30B在示例HMD设备10A上被显示给用户。然而,由于重新投影的图像30B从针对图像30A的图像数据被生成的而不是正被绘制,因此如图2中图示的,重新投影过程可能使图像30B的文本和图形变得对用户可察觉地模糊。文本中的模糊性和缺少锐利度是由用户尤其可察觉的,因为他们习惯于看到锐利的文本,并且因此可能潜在地显著降低用户体验。
现在转向图3,为了解决上文讨论的问题,根据本描述的一个实施例的HMD设备10可以被配置为经由绘制流水线24,来绘制在HMD设备10上执行的应用程序22的视觉场景。在图示的实施例中,在绘制流水线24的绘制阶段26,HMD设备10的处理器16被配置为基于由应用程序22输出的数据28来确定从用户视角看到的场景30,场景30包括视觉场景数据32和向量图形数据34,用户视角基于来自输入设备18的用户输入36而被确定。在应用程序22内,取决于由应用程序正采用的图形类型,场景30可以被表示为二维或三维。通过绘制过程,从沿着用户视角定向的相机角度看到的场景的视图被栅格化为二维像素数据到帧缓冲器。然而,将明白,像素数据可以与三维数据相关联(诸如用于每个像素的深度数据),三维数据可以被用于像素数据到新视角的重新投影。由应用程序22输出的数据28可以包括:例如,虚拟世界数据、用于虚拟世界中的虚拟对象的位置数据、用于虚拟对象的网格、用于虚拟对象的颜色数据、以及可以被用于绘制场景30的任何其他合适的数据。
场景30包括视觉场景数据32,其可以例如包括用于从用户视角可以看到的虚拟世界中的虚拟对象、背景、环境效果等的图像数据。将明白,场景30的视觉场景数据32通常被表示为像素数据。因此,在绘制阶段26期间,将明白,输出的向量图形表示通过栅格化过程被转换成像素数据,用于显示为场景30的视觉场景数据32。场景30还包括未被栅格化成像素数据的向量图形数据34,并且其例如可以包括从用户视角可以看到的虚拟世界中的文本数据、图标数据、向量形状等。在图示的示例中,场景30可以包括视觉场景数据,其是用于图2中描述的富士山的虚拟表示的像素数据。场景30可以进一步包括未栅格化的向量图形数据(诸如文本数据),其在该特定示例中可以是被显示给用户的文本“Mt.Fuji”。
用户视角可以根据来自输入设备18的用户输入流而被确定。在时间T1处,用户视角基于在时间T1处从输入设备18接收的用户输入36而最近地被确定。
如所示出的,在绘制流水线24的绘制阶段26,HMD设备10的处理器16被配置为将视觉场景数据32作为像素数据绘制到帧缓冲器38,并且因此视觉场景数据32被存储在HMD设备10的易失性存储器中的帧缓冲器38中。取决于需求,该帧缓冲器也可以被缓存在非易失性存储器中。为了解决如图2中描述的HMD设备10A的模糊,HMD 10的处理器16被配置为在与视觉场景数据32的分离层中处理向量图形数据34。因此,与作为像素数据被绘制到帧缓冲器38的视觉场景数据32分离,处理器16被配置为生成向量图形数据34的边缘的带符号距离场40。通常,经绘制、栅格化并且存储在帧缓冲器38中的视觉场景数据32的(二维或三维中的)大小与表示向量图形数据34的带符号距离场40的大小相同。
现在转向图4,向量图形数据34的边缘的带符号距离场40包括用于全屏分辨率实施方式中的场景30中的每个像素的条目。然而,将明白,半屏、四分之一屏、或其他分辨率的带符号距离场也可以用来达成HMD设备10的适当存储器要求。在一个实施例中,带符号距离场40中的每个像素的值表示到向量图形数据34中的向量图形的最近边缘的距离。在另一替代实施例中,多于一个距离可以被存储;例如,多个值可以被存储在带符号距离场中的每个像素中,以表示到向量图形数据中的向量图形的附近多个边缘中的每个边缘的距离。该替代方法可以使用在带符号距离场的分辨率低于帧的情形下,以更精确地重建复杂细节的区域。图4图示了示例向量图形34A,其在该特定示例中是用于字母“A”的文本数据。对于带符号距离场40中的每个像素,其分析地表示涵盖整个向量图形34A的像素栅格,这些像素中的每个像素的值表示到示例向量图形34A的最近边缘的距离。距离可以以像素为单位来计算。例如,到示例像素P1的最近边缘是示例向量图形34A的边缘E1。因此,带符号距离场40中用于像素P1的值是距最近边缘E1的距离D1,其例如可以是2个像素的距离。另外,距离可以具有符号(即,负-用于内部,或正+用于外部,并且0用于在边缘上)以指示像素是在向量图形内部还是在向量图形外部。在该特定示例中,像素P1在示例向量图形34A(字母“A”)的内部,并且因此具有-2个像素的距离值。将明白,标示特定像素是在向量图形内部还是外部的其他方法也可以被利用。例如,正值可以指示像素在向量图形内部,而负值可以指示像素在向量图形外部。替代地,值可以被归一化到0至1标度,0至0.5的值指示像素在向量图形内部,且0.5至1的值指示像素在向量图形外部,并且准确0.5的值指示像素在向量图形的边缘上。
类似地,到示例像素P2的最近边缘也是示例向量图形34A的边缘E1。因此,带符号距离场40中用于像素P2的值是距最近边缘E1的距离D2,其例如也可以是2个像素的距离。然而,在该示例中,像素P2在示例向量图形34A的外部,并且因此具有+2(或仅“2”)个像素的距离值。
此外,在该示例中,到示例像素P3的最近边缘是示例向量图形34A的边缘E2。另外,将明白,尽管示例像素P3由示例向量图形34A所围绕,而实际上在示例向量图形34的内部,但是在将被绘制的示例向量图形34A的部分之外。因此,带符号距离场40中用于像素P3的值是具有正值的距离D3,其在该示例中可以是值+1。最后,在该示例中,到示例像素P4的最近边缘是示例向量图形34A的边缘E1。实际上,如所示出的,示例像素P4位于边缘E1上。因此,带符号距离场40中用于像素P4的值是0。将明白,上文讨论的方法可以应用到带符号距离场中的每个像素。另外,将明白,向量图形数据34可以包括多于一个向量图形。例如,向量图形数据34可以包括文本串,例如“Mt.Fuji”。因此,针对一个像素的最近边缘可以是向量图形“M”的边缘,而针对另一像素的最近边缘可以是向量图形“F”的边缘。
图5图示了示例场景30C中包括的另一示例向量图形34B。如所示出的,示例向量图形34B是实心方形图标,而不是文本数据。在该示例中,向量图形34B位于在示例场景30C中距用户视角125个单位的位置处,用户视角可以是用于表示用户位置和注视方向的场景30C的虚拟世界中的虚拟相机。相应地,在绘制流水线24的绘制阶段26,用于向量图形数据的示例带符号距离场40C被生成,该向量图形数据包括示例场景30C的示例向量图形34B。如所示出的,场景30C的每个像素具有示例带符号距离场40C中的对应值,该对应值表示到示例向量图形34B的最近边缘的距离。因此,位于示例向量图形34B的边缘上的像素具有为0的在示例带符号距离场40C中的值,并且取决于像素是在示例向量图形34B内部还是外部,位于距最近边缘1个像素距离处的像素具有值-1或+1。
如图5中图示的,带符号距离场40中的每个像素可以进一步包括颜色值或纹理值。如所示出的,示例像素P5具有在示例向量图形34B外部的位置,并且距最近边缘2个像素。因此,示例像素P5具有为2的在示例带符号距离场40C中的值。然而,示例带符号距离场40C中的每个条目进一步包括用于该像素的最近边缘的颜色值。因此,如所示出的,示例像素P5具有用于示例向量图形34B的最近边缘的#000000(黑色)的十六进制颜色值。将明白,除了十六进制值之外的值可以被用于存储最近边缘的颜色值。尽管仅示例像素P5被示出为包括用于最近边缘的颜色值,但是将明白,示例带符号距离场40C中的每个像素都可以包括颜色值。将明白,纹理值可以按与颜色值相同的方式来对待。
此外,在图5的图示示例中,带符号距离场40中的每个像素进一步包括用于该像素在场景30中的深度值。如所示出的,示例像素P6具有在示例向量图形34B的边缘上的位置,并且因此具有为0的在示例带符号距离场40C中的值。另外,在该特定示例中,由于示例向量图形34B位于距用户视角125个单位的位置处,因此像素P6可以被给予与示例向量图形34B相同的深度值。因此,示例像素P6进一步包括在示例带符号距离场40中的125单位的深度值。将明白,用于深度值的单位可以基于在HMD设备上正被执行的应用的虚拟世界的内部测量系统而被确定,诸如,例如英寸、米、英尺、像素等。尽管仅示例像素P6被示出为包括在示例带符号距离场40C中的深度值,但是将明白,示例带符号距离场40C中的每个像素都可以包括深度值。
HMD设备10的处理器16可以被配置为评估带符号距离场40,以生成在带符号距离场40中被分析地表示的向量图形数据。在图5中图示的示例中,示例带符号距离场40C可以被评估,以生成用于示例场景30C的示例向量图形34B的视觉图形。为了评估示例带符号距离场40C,处理器16可以被配置为将示例带符号距离场40C中的每个像素的值阈值化。例如,如果阈值的值是0.5,则处理器16可以被配置为:将示例带符号距离场40C中具有比0.5大的正值的每个像素评估为是在包括示例向量图形34B的任何向量图形外部的像素。
另一方面,示例带符号距离场40C中具有比-0.5小的负值的每个像素被评估为是在向量图形(诸如示例向量图形34B)内部的像素。最后,示例带符号距离场40C中具有在-0.5至0.5的值之间的值的每个像素可以被评估为是在向量图形的边缘上的像素。接着,根据上文的评估,被评估为在向量图形外部的所有像素可以不被绘制或被设置成透明,被评估为在向量图形内部的所有像素可以被绘制成合适的颜色,并且被评估为在向量图形的边缘上的所有像素可以类似地被绘制成合适的颜色,该颜色例如可以是与向量图形内部的像素相同的颜色。因此,以这种方式,带符号距离场40可以被快速评估以生成向量图形数据34。将明白,任何合适的阈值化值可以被用于评估带符号距离场40的数据,诸如0.1、0.2等。
此外,由于带符号距离场40C是包括离散数学值的向量图形数据的分析表示,因此将明白带符号距离场40C的数据可以被高效地采样和插值。例如,为了重新投影带符号距离场40的数据,处理器16可以被配置为执行对带符号距离场40的过滤采样,并且针对用于新用户视角的每个像素插入适当的值。作为具体示例,示例像素P7具有为1的在示例带符号距离场40C中的值,并且示例像素P8具有值-1。因此,在示例带符号距离场40C的过滤采样期间,处理器16可以在示例像素P7与示例像素P8之间进行插值,以确定用于这两个示例像素之间的任何点的值。例如,在示例像素P7和P8之间的中间点将具有值0,并且因此是向量图形的边缘上的点。从示例像素P7到示例像素P8的四分之一距离的点将具有值0.5。因此,将明白,带符号距离场40可以在任何任意位置处被采样,并且用于该位置处的像素的有效距离值可以基于带符号距离场40中的周围值来确定。
转回到图3,如上文讨论的,视觉场景数据32被绘制到帧缓冲器38,并且向量图形数据34被分析地表示在带符号距离场40中。如所示出的,在显示所绘制的视觉场景之前的绘制流水线24的重新投影阶段42,处理器16进一步被配置为经由输入设备18接收更新用户视角的绘制后用户输入44。绘制后用户输入44可以在时间T1与时间T2之间的时间被接收,时间T1是场景30的绘制已经开始的时间,时间T2是所绘制的场景将在显示设备14上显示的时间。例如,在HMD设备10的配置中,用户在场景30正被绘制时的T1和T2之间的时间段期间可能已经移动了其头部。因此,在该具体示例中,绘制后用户输入44可以是由HMD设备10的输入设备18(诸如IMU 18A)检测到的用户的头部运动。然而,将明白,其他类型的绘制后用户输入44可以被输入,诸如向游戏控制器或其他控制设备的输入、语音输入、注视方向输入等。在接收到绘制后用户输入44之后,处理器16更新应用程序22的虚拟世界内的用户视角。
如先前讨论的,更新的用户视角与初始用户视角(场景30从其被绘制)之间的差异可能引起用户的定向障碍并且一般降低用户体验。为了解决该问题,HMD设备10的处理器16被配置为基于更新的用户视角,来重新投影帧缓冲器38中的所绘制的视觉场景数据32。将明白,帧缓冲器38包括所绘制的视觉场景数据32,但是不包括所绘制的向量图形数据34。因此,所绘制的视觉场景数据32被重新投影到更新的用户视角,以生成重新投影的视觉场景数据46。
与所绘制的视觉场景数据32的重新投影并行地,处理器16被配置为基于更新的用户视角来重新投影带符号距离场40的数据。如先前讨论的,带符号距离场40的数据是向量图形数据34的分析表示,并且为了重新投影带符号距离场40的数据,处理器16可以被配置为执行对带符号距离场40的过滤采样,以确定针对重新投影的图像中的每个像素的值。在具体示例中,处理器16可以被配置为将来自更新的用户视角的射线投射到带符号距离场40中的位置,并且在这些位置中的每个位置处对带符号距离场40采样。用于到最近边缘的距离的值然后可以从用于这些位置中的每个位置的带符号距离场40来确定。如上文讨论的,即使被采样的位置位于由带符号距离场40表示的像素之间,校正距离值也可以基于针对带符号距离场40中的那些附近像素的所存储值而被插入。
接着,处理器16被配置为评估带符号距离场40的重新投影的数据,以生成重新投影的向量图形数据48。在一个示例中,带符号距离场40可以根据先前关于图5讨论的阈值化方法而被评估。因此,通过评估带符号距离场40的重新投影的数据,用于具有锐利边缘的重新投影的向量图形数据48的视觉数据可以被高效地生成。将明白,相比于完全栅格化来自更新的用户视角的向量图形数据将要消耗的计算资源,用于评估带符号距离场40的过程花费较少的计算资源,并且因此甚至可以在帧的一部分内完成。在带符号距离场40的数据包括用于最近边缘的颜色数据的示例中,处理器16可以进一步被配置为根据颜色数据来生成重新投影的向量图形数据48。例如,通过将向量图形的最近边缘绘画成由用于带符号距离场40中的该像素的颜色数据所表示的颜色。当插入用于带符号距离场40中的像素之间的位置的值时,颜色值或纹理值可以从附近像素被拷贝或插入。
接着,如图3中示出的,HMD设备10的处理器16被配置为生成合成图像50,合成图像50包括重新投影的所绘制的视觉场景数据46(被绘制为像素)、以及重新投影的向量图形数据48(也被绘制为合成图像50中的像素)。合成图像50可以通过将重新投影的向量图形数据覆盖在重新投影的所绘制的视觉场景数据46之上而被生成。在一个示例中,重新投影的向量图形数据包括深度值,深度值可以与向量图形数据的所绘制版本中的每个像素相关联。在该示例中,视觉场景数据32也可以被绘制为包括用于视觉场景中的每个像素的深度数据。因此,为了生成合成图像50,处理器16可以被配置为确定重新投影的向量图形数据48的哪些像素(诸如通过具有更大的深度)被相同地点处的重新投影的视觉场景数据的像素所遮挡,并且进一步被配置为不显示重新投影的向量图形数据48中的被遮挡的像素。接着,处理器16进一步被配置为在显示设备14上显示合成图像50。
转到图6,合成图像50的示例被示出。如所图示的,视觉场景数据32和向量图形数据34被生成在绘制流水线24中的两个不同的层中。视觉场景数据32被绘制并且存储在帧缓冲器38中,而向量图形数据34被分析地表示在带符号距离场40中。在图6的示例中,视觉场景数据和向量图形数据被重新投影到针对头部定向O2的更新的用户视角,并且由处理器16合成为示例合成图像50A,示例合成图像50A显示在HMD设备10的显示设备14上。通过根据上文讨论的方法在分离的绘制层中处理视觉数据和向量图形数据,向量图形数据(该特定示例中的“MT.FUJI”)可以被重新投影到更新的用户视角,而不会变模糊。
在图3的图示实施例中,在绘制流水线24的绘制阶段26,处理器16进一步被配置为生成被锁定到显示设备14的视口的图形用户界面覆盖图52。例如,图形用户界面覆盖图52可以是向用户呈现合适信息的抬头显示。在该示例中,抬头显示被锁定到显示设备14的视口,并且因此随着用户头部的定向而移动。如图3中示出的,图形用户界面覆盖图52被锁定到显示设备14的视口,并且因此不需要在重新投影阶段42期间被重新投影。相应地,图形用户界面覆盖图52可以被绘制到第二帧缓冲器54。在该实施例中,处理器16进一步被配置为生成包括重新投影的所绘制的视觉场景数据46、重新投影的向量图形数据48、以及图形用户界面覆盖图52的合成图像50。例如,图形用户界面覆盖图52可以被合成在用于重新投影的向量图形数据48和重新投影的视觉场景数据46两者的视觉数据之上。
简短地转回到图1,HMD设备10可以进一步包括与处理器16分离的专用处理设备20。在该实施例中,绘制流水线24的重新投影阶段42在与绘制流水线24的绘制阶段26分离的专用处理设备20上被执行。例如,专用处理设备20可以包括被配置为高效地重新投影视觉数据和评估带符号距离场的硬件,诸如图形处理单元。然而,将明白,专用处理设备20可以采用其他形式,诸如现场可编程门阵列、专用集成电路、片上系统、或另一类型的适当集成电路。
现在转到图7,利用带符号距离场的凹式绘制的示例被图示。在该示例中,HMD设备10的面向内的图像传感器18C被配置为跟踪用户的注视方向。处理器16被配置为接收用于用户注视方向的数据,并且在绘制流水线24的绘制阶段26生成带符号距离场40以包括:相比用于用户注视方向56周边的向量图形数据34的带符号距离场数据的分辨率的、用于用户注视方向56附近的向量图形数据34的带符号距离场数据的较高分辨率。如图7中示出的,相比用户注视方向56的周边的带符号距离场数据,以更高的分辨率来生成用户注视方向56附近的带符号距离场数据。例如,用于周边向量图形的带符号距离场数据可以具有与用于附近图形的带符号距离场数据相同数目的值,但是覆盖场景30的更大区域。如图7中示出的,较低分辨率的带符号距离场数据中的每个存储值覆盖场景30的更大范围。为了生成较低分辨率的带符号距离场数据,处理器16可以被配置为利用比更高分辨率的带符号距离场数据大的间隔,来确定和存储用于场景中的位置的值。例如,较低分辨率的带符号距离场数据可以针对场景30的用户注视方向区域周边的每4个像素被确定,而较高分辨率的带符号距离场数据针对场景30A的用户注视方向区域附近的每个像素被确定。作为另一示例,较低分辨率的带符号距离场数据可以是四分之一屏幕的带符号距离场,而较高分辨率的带符号距离场数据可以是全屏幕的带符号距离场。然而,将明白,基于资源消耗目标可以选择用于较高和较低分辨率的任何合适分辨率。另外,将明白,较高和较低分辨率的带符号场数据两者可以根据相同的方法被重新投影和评估。
图8示出了根据本描述的实施例的示例计算机实施的方法800。在步骤802处,方法800可以包括:在绘制流水线的绘制阶段,基于由应用程序输出的数据来确定从用户视角看到的场景,该场景包括视觉场景数据和向量图形数据,用户视角基于来自输入设备的用户输入而被确定。例如,应用程序可以在计算设备(诸如HMD设备)上被执行,并且可以包括具有虚拟对象和背景的虚拟世界。用户视角可以由应用程序的世界内的虚拟相机来表示,虚拟相机根据来自计算设备的输入设备的用户输入是可移动的。在HMD设备的实施例中,输入设备包括被配置为检测头戴式显示设备的用户的头部运动的传感器(诸如跟踪用户的头部位置和定向的各种传感器),并且相应地在应用程序的虚拟世界中调整用户视角。因此,从用户视角看到的应用程序的虚拟世界的场景或视图被确定,其包括可以从该用户视角看到的任何虚拟对象和向量图形。相应地,例如可以包括虚拟对象和背景的视觉场景数据被确定。类似地,例如可以包括文本数据或图标数据的向量图形数据也被确定。
从步骤802前进到步骤804,方法800可以包括:将视觉场景数据作为二维像素数据绘制到帧缓冲器。视觉场景数据可以通过任何合适的绘制方法被绘制。然而,将明白,视觉场景数据在与向量图形数据层的分离层中被绘制。
在步骤806(并行于或依次于步骤804)处,方法800可以包括:生成向量图形数据的边缘的带符号距离场。带符号距离场是一种数据结构,其保持用于场景的每个像素或合适分辨率的像素的值。在一个示例中,带符号距离场中的每个像素的值表示到向量图形数据中的向量图形的最近边缘的距离,或者多个值被存储在带符号距离场中的每个像素中以表示到多个边缘中的每个边缘的距离,该多个边缘在向量图形数据中的向量图形的附近。向量图形数据中的每个向量图形可以包括多个边缘。因此,每个像素到向量图形数据中的向量图形的最近边缘的距离被确定。用于每个像素的距离值然后被存储在带符号距离场中。此外,在该示例中,带符号距离场中的每个像素进一步包括颜色值或纹理值。颜色值或纹理值可以是十六进制值、或可以定义颜色谱或纹理的另一合适类型的值。此外,在该示例中,带符号距离场中的每个像素进一步包括用于该像素在场景中的深度值。深度值可以是从用户视角到像素所位于的向量图形的虚拟世界中的地点的距离。在向量图形外部的像素可以被给予默认值,以指示这些像素不具有深度。
在一个示例中,步骤806包括子步骤808。在子步骤808处,方法800可以包括生成带符号距离场,以包括:相比用于用户注视方向周边的向量图形数据的带符号距离场数据的分辨率的、用于用户注视方向附近的向量图形数据的带符号距离场数据的较高分辨率。在HMD设备的实施例中,头戴式显示器包括面向内的图像传感器,其被配置为跟踪用户的注视方向。在一个示例中,在围绕用户注视方向的作为显示设备的视口的30%的区域内的向量图形可以被考虑为在用户注视方向附近。在另一方面,该区域外部的向量图形可以被考虑为是用户注视方向的周边。然而,将明白,可以利用其他比率,诸如20%或40%,作为几个非限制性示例。在一个示例中,高分辨率的带符号距离场可以是全屏幕的带符号距离场,并且低分辨率的距离场可以是四分之一屏幕的带符号距离场。然而,将明白,任何适合的分辨率可以用于满足资源消耗需求。不同分辨率的带符号距离场可以根据相同的方法被评估和重新投影。
前进到步骤810,方法800可以包括:生成被锁定到显示设备的视口的图形用户界面覆盖图。图形用户界面覆盖图被锁定到显示设备的视口而不是世界锁定的,并且因此随着HMD设备的定向或用户视角而移动。因此,图形用户界面覆盖图不依赖于改变用户视角,并且不需要重新投影。
继续到步骤812,在显示所绘制的视觉场景之前的绘制流水线的重新投影阶段,经由输入设备接收更新用户视角的绘制后用户输入。绘制后用户输入可以在时间点T1与时间点T2之间的任何时间经由输入设备而被接收。如图8中示出的,时间点T1是视觉场景的绘制已经开始的时间,并且时间点T2紧接在所绘制的场景将显示在显示设备上之前。在T1与T2之间经过的时间可以是例如10-30ms。因此,在该时间段内,用户可以输入附加的绘制后用户输入,诸如用户将其头部移动到新位置和定向。因此,在时间T2处的用户的头部位置和定向可以不同于场景被绘制时的时间T1处,并且如果视觉场景不被重新投影到更新的用户视角,则该差异可能引起用户的定向障碍。
从步骤812前进到步骤814,方法800可以包括:基于更新的视角,来重新投影帧缓冲器中的所绘制的视觉场景数据。重新投影所绘制的视觉场景数据不需要场景被重新绘制,并且比绘制消耗更少的处理时间。因此,视觉场景数据可以被重新投影到更新的视角,并且在附加用户输入可以进入到输入设备之前被显示给用户。
从步骤814继续到步骤816,方法800可以包括:基于更新的视角,来重新投影带符号距离场的数据。在一个具体示例中,基于更新的视角来重新投影带符号距离场的数据包括:执行对带符号距离场的过滤采样。例如,如果用于更新的视角的特定像素具有在由带符号距离场表示的两个像素之间的位置,则用于该特定像素的值可以根据带符号距离场的两个像素的值而被插入。因此,如果两个带符号距离场像素具有值1和2,并且用于更新的视角的特定像素具有在两个带符号距离场像素之间的精确中间的位置,则用于该特定像素的值可以作为1.5被插入。以这种方式,针对用于更新的视角的每个像素的值可以被插入,以生成带符号距离场的重新投影的数据。
从步骤816前进到步骤818,方法800可以包括:评估带符号距离场的重新投影的数据,以生成重新投影的向量图形数据。这可以至少部分地通过将带符号距离场的重新投影的数据阈值化来完成。在一个具体示例中,负值指示像素在向量图形内部,而正值指示像素在向量图形外部,并且数字值指示像素距向量图形的最近边缘有多远。因此,如果阈值化值是0.5,则具有比-0.5小的负值的重新投影的数据的所有像素被确定为在向量图形内部并且相应地被着色。具有比0.5大的正值的重新投影的数据的所有像素被确定为在向量图形外部,并且相应地使之透明。此外,具有在-0.5与0.5之间的值的重新投影的数据的所有像素被确定为是向量图形的边缘,并且相应地被着色。以这种方式,带符号距离场的重新投影的数据可以高效地被评估,以生成可以被显示给用户的重新投影的向量图形数据。
从步骤818继续到步骤820,方法800可以包括:生成合成图像,合成图像包括重新投影的所绘制的视觉场景数据以及重新投影的向量图形数据。在一个示例中,在绘制阶段期间,图形用户界面覆盖图被生成。在该示例中,在步骤820处,方法800可以包括:生成包括重新投影的所绘制的视觉场景数据、重新投影的向量图形数据、以及图形用户界面覆盖图的合成图像。生成覆盖每个层的合成图像,包括视觉数据层、向量图形层、以及图形用户界面覆盖图在彼此之上。在一个示例中,带符号距离场包括用于由带符号距离场表示的每个像素的深度值。因此,在该示例中,具有在重新投影的所绘制的视觉场景数据的对应像素之后的深度值的、带符号距离场的任何重新投影的数据,可以被确定为被遮挡并且因此不绘制在合成图像中。图形用户界面覆盖图可以被合成为最顶层。
从步骤820前进到步骤822,方法800可以包括:在显示设备上显示合成图像。显示设备可以是增强现实配置中的至少部分透视的显示器、或非增强现实HMD设备配置中的非透视显示器。然而,将明白,其他显示设备也可以被用于显示合成图像,诸如台式计算配置中的台式显示设备。
在一个示例中,该计算机实施的方法在HMD设备上被执行。在该示例中,绘制流水线的重新投影阶段在与绘制流水线的绘制阶段分离的专用处理设备上被执行。例如,专用处理设备可以包括被配置为高效地重新投影视觉数据和评估带符号距离场的硬件,诸如图形处理单元。然而,将明白,专用处理设备可以采用其他形式,诸如现场可编程门阵列、专用集成电路、片上系统、或另一类型的适当集成电路。
在一些实施例中,本文描述的方法和过程可以被联系到一个或多个计算设备的计算系统。具体地,这样的方法和过程可以被实施为计算机应用程序或服务、应用编程接口(API)、库、和/或其他计算机程序产品。
图9示意地示出了可以实现本文描述的方法和过程中的一个或多个的计算系统900的非限制性实施例。计算系统900以简化形式被示出。计算系统900可以采用一个或多个个人计算机、服务器计算机、平板计算机、家庭娱乐计算机、网络计算设备、游戏设备、移动计算设备、移动通信设备(例如,智能电话)、和/或其他计算设备、以及可穿戴计算设备(诸如智能腕表和头戴式增强现实设备)的形式。
计算系统900包括逻辑处理器902、易失性存储器903、以及非易失性存储设备904。计算系统900可以可选地包括显示子系统906、输入子系统908、通信子系统1000、和/或图9中未示出的其他组件。
逻辑处理器902包括被配置为执行指令的一个或多个物理设备。例如,逻辑处理器可以被配置为执行指令,这些指令是一个或多个应用、程序、例程、库、对象、组件、数据结构、或其他逻辑构造的一部分。这样的指令可以被实施来执行任务、实现数据类型、转变一个或多个组件的状态、达成技术效果、或者以其他方式达到期望结果。
逻辑处理器可以包括被配置为执行软件指令的一个或多个物理处理器(硬件)。附加地或替代地,逻辑处理器可以包括被配置为执行硬件实现的逻辑或固件指令的一个或多个硬件逻辑电路或固件设备。逻辑处理器902的处理器可以是单核或多核的,并且其上执行的指令可以被配置用于顺序、并行、和/或分布式处理。逻辑处理器的个体组件可以可选地被分布在两个或更多分离设备之中,这些设备可以被远程定位和/或被配置用于协同处理。逻辑处理器的方面可以由远程可访问的、被配置在云计算配置中的联网计算设备来虚拟化和执行。在这种情况下,将理解这些虚拟化方面在各种不同机器的不同物理逻辑处理器上运行。
非易失性存储设备904包括一个或多个物理设备,其被配置为保持由逻辑处理器可执行来实施本文描述的方法和过程的指令。当这样的方法和过程被实施时,非易失性存储设备94的状态可以被转变为—例如保持不同的数据。
非易失性存储设备904可以包括可移除的和/或内置的物理设备。非易失性存储设备94可以包括光存储器(例如,CD、DVD、HD-DVD、蓝光Disc等)、半导体存储器(例如,ROM、EPROM、EEPROM、闪存等)、和/或磁存储器(例如,硬盘驱动器、软盘驱动器、磁带驱动器、MRAM等)、或者其他大容量存储设备技术。非易失性存储设备904可以包括非易失性的、动态的、静态的、读取/写入、只读、顺序访问的、位置可寻址的、文件可寻址的、和/或内容可寻址的设备。将明白,非易失性存储设备904被配置为即使在切断到非易失性存储设备904的电力时也保持指令。
易失性存储器903可以包括物理设备,物理设备包括随机访问存储器。易失性存储器903通常由逻辑处理器902用来在软件指令的处理期间暂时地存储信息。将明白,当切断到易失性存储器903的电力时,易失性存储器903通常不继续存储指令。
逻辑处理器902、易失性存储器903、以及非易失性存储设备904的各方面可以一起被集成到一个或多个硬件逻辑组件中。这样的硬件逻辑组件可以包括:例如,现场可编程门阵列(FPGA)、程序专用集成电路和应用专用集成电路(PASIC/ASIC)、程序专用标准产品和应用专用标准产品(PSSP/ASSP)、片上系统(SOC)、以及复杂可编程逻辑器件(CPLD)。
术语“模块”、“程序”和“引擎”可以被用于描述计算系统900的方面,该方面通常由处理器实施在软件中而使用易失性存储器的部分来执行特定功能,该功能涉及到专门配置处理器来执行该功能的变换性处理。因此,使用非易失性存储器903的部分,模块、程序或引擎可以经由逻辑处理器902执行由非易失性存储设备904保持的指令而被实例化。将理解,不同的模块、程序、和/或引擎可以从相同的应用、服务、代码块、对象、库、例程、API、函数等来实例化。相似地,相同的模块、程序、和/或引擎可以由不同的应用、服务、代码块、对象、例程、API、函数等来实例化。术语“模块”、“程序”、以及“引擎”可以涵盖可执行文件、数据文件、库、驱动程序、脚本、数据库记录等中的个体或群组。
当被包括时,显示子系统906可以被用于呈现由非易失性存储设备904保持的数据的视觉表示。视觉表示可以采用图形用户界面(GUI)的形式。如本文所描述的方法和过程改变由非易失性存储设备保持的数据,并且因此变换非易失性存储设备的状态,显示子系统906的状态可以相似地被变换以在视觉上表示底层数据中的变化。显示子系统906可以包括利用几乎任何类型的技术的一个或多个显示设备。这样的显示设备可以与逻辑处理器902、易失性存储器903、和/或非易失性存储设备904组合在共享外壳中,或者这样的显示设备可以是外围显示设备。
当被包括时,输入子系统908可以包括一个或多个用户输入设备或者与其对接,诸如键盘、鼠标、触摸屏、麦克风、相机、或游戏控制器。
当被包括时,通信子系统1000可以被配置为将本文描述的各种计算设备彼此、以及与其他设备通信地耦合。通信子系统1000可以包括与一个或多个不同通信协议兼容的有线和/或无线通信设备。作为非限制性示例,通信子系统可以被配置用于经由无线电话网络、或者有线或无线的局域或广域网络的通信。在一些实施例中,通信子系统可以允许计算系统900经由网络(诸如互联网)向其他设备发送消息和/或从其他设备接收消息。
以下段落为本主题申请的权利要求提供附加的支持。一个方面提供了一种计算设备,该计算设备包括输入设备、显示设备、以及处理器,处理器被配置为:在绘制流水线的绘制阶段,基于由应用程序输出的数据来确定从用户视角看到的场景,场景包括视觉场景数据和向量图形数据,用户视角基于来自输入设备的用户输入被确定;将视觉场景数据作为二维像素数据绘制到帧缓冲器;以及生成向量图形数据的边缘的带符号距离场;在显示所绘制的视觉场景之前的绘制流水线的重新投影阶段,经由输入设备接收更新用户视角的绘制后用户输入;基于更新的用户视角,重新投影帧缓冲器中的所绘制的视觉场景数据;基于更新的用户视角,重新投影带符号距离场的数据;评估带符号距离场的重新投影的数据,以生成重新投影的向量图形数据;生成合成图像,合成图像包括重新投影的所绘制的视觉场景数据和重新投影的图形数据;以及在显示设备上显示合成图像。在该方面中,附加地或替代地,带符号距离场中的每个像素的值可以表示到向量图形数据中的向量图形的最近边缘的距离,或者其中多个值可以被存储在带符号距离场中的每个像素中以表示到多个边缘中的每个边缘的距离,该多个边缘在向量图形数据中的向量图形附近。在该方面中,附加地或替代地,带符号距离场中的每个像素可以进一步包括颜色值或纹理值。在该方面中,附加地或替代地,带符号距离场中的每个像素可以进一步包括用于该像素在场景中的深度值。在该方面中,附加地或替代地,向量图形数据可以是文本数据。在该方面中,附加地或替代地,处理器可以进一步被配置为:生成被锁定到显示设备的视口的图形用户界面覆盖图,以及生成包括重新投影的所绘制的视觉场景数据、重新投影的向量图形数据、和图形用户界面覆盖图的合成图像。在该方面中,附加地或替代地,绘制流水线的重新投影阶段可以在与绘制流水线的绘制阶段分离的专用处理设备上被执行。在该方面中,附加地或替代地,计算设备可以是头戴式显示设备,并且输入设备可以包括传感器,传感器被配置为检测头戴式显示设备的用户的头部运动。在该方面中,附加地或替代地,头戴式显示器可以包括被配置为跟踪用户注视方向的面向内的图像传感器,并且处理器可以进一步被配置为生成带符号距离场以包括:相比用于用户注视方向周边的向量图形数据的带符号距离场数据的分辨率的、用于用户注视方向附近的向量图形数据的带符号距离场数据的较高分辨率。
另一方面提供了一种计算机实施的方法,该方法包括:在绘制流水线的绘制阶段,基于由应用程序输出的数据来确定从用户视角看到的场景,场景包括视觉场景数据和向量图形数据,用户视角基于来自输入设备的用户输入被确定;将视觉场景数据作为二维数据绘制到帧缓冲器;以及生成向量图形数据的边缘的带符号距离场;在显示所绘制的视觉场景之前的绘制流水线的重新投影阶段,经由输入设备接收更新用户视角的绘制后用户输入;基于更新的用户视角,重新投影帧缓冲器中的所绘制的视觉场景数据;基于更新的用户视角,重新投影带符号距离场的数据;评估带符号距离场的重新投影的数据,以生成重新投影的向量图形数据;生成合成图像,合成图像包括重新投影的所绘制的视觉场景数据和重新投影的向量图形数据;以及在显示设备上显示合成图像。在该方面中,附加地或替代地,带符号距离场中的每个像素的值可以表示到向量图形数据中的向量图形的最近边缘的距离,或者其中多个值可以被存储在带符号距离场中的每个像素中以表示到多个边缘中的每个边缘的距离,该多个边缘在向量图形数据中的向量图形附近。在该方面中,附加地或替代地,带符号距离场中的每个像素可以进一步包括颜色值或纹理值。在该方面中,附加地或替代地,带符号距离场中的每个像素可以进一步包括用于该像素在场景中的深度值。在该方面中,附加地或替代地,向量图形数据可以是文本数据。在该方面中,附加地或替代地,该方法可以进一步包括:生成被锁定到显示设备的视口的图形用户界面覆盖图,以及生成包括重新投影的所绘制的视觉场景数据、重新投影的向量图形数据、和图形用户界面覆盖图的合成图像。在该方面中,附加地或替代地,绘制流水线的重新投影阶段可以在与绘制流水线的绘制阶段分离的专用处理设备上被执行。在该方面中,附加地或替代地,该方法可以被实施在头戴式显示设备上,并且输入设备可以包括传感器,传感器被配置为检测头戴式显示设备的用户的头部运动。在该方面中,附加地或替代地,头戴式显示器可以包括被配置为跟踪用户注视方向的面向内的图像传感器,并且该方法可以进一步包括生成带符号距离场以包括:相比用于用户注视方向周边的向量图形数据的带符号距离场数据的分辨率的、用于用户注视方向附近的向量图形数据的带符号距离场数据的较高分辨率。
另一方面提供了一种计算机实施的方法,该方法包括:在绘制流水线中,在第一时刻基于来自输入设备的输入数据来确定用户视角;绘制用于显示的合成图像,合成图像包括具有表示场景的二维像素数据的第一层和具有向量图形数据的第二层,第二层基于用户视角被编码在带符号距离场中;在显示所绘制的合成图像之前,基于来自用户输入设备的更新的用户输入数据来确定更新的用户视角;基于更新的视角,重新投影以带符号距离场格式编码的所绘制的像素数据和文本数据;评估带符号距离场的重新投影的数据,以生成重新投影的向量图形数据;生成更新的合成图像,更新的合成图像包括重新投影的所绘制的像素数据和重新投影的图形数据;以及在显示设备上显示更新的合成图像。在该方面中,附加地或替代地,显示设备可以是头戴式显示设备,其可以包括至少部分透视的显示器,更新的合成图像可以显示在至少部分透视的显示器上,并且输入设备可以包括感测头戴式显示设备的位置和定向的一个或多个传感器。
将理解,本文描述的配置和/或方法在性质上是示例性的,并且这些具体实施例或示例将不在限制性意义上被考虑,因为许多变化是可能的。本文描述的具体例程或方法可以表示任何数目的处理策略中的一个或多个。这样,图示和/或描述的各种动作可以按图示和/或描述的次序、按其他次序、并行地被执行,或者被省略。相似地,上文描述的过程的顺序可以被改变。
本公开的主题包括本文所公开的各种过程、系统和配置、以及其他特征、功能、动作、和/或性质、以及它们的任何和所有等同物的所有新颖的和非显而易见的组合和子组合。

Claims (20)

1.一种计算设备,包括:
输入设备;
显示设备;以及
处理器,所述处理器被配置为:
在绘制流水线的绘制阶段:
基于由应用程序输出的数据来确定来自初始用户视角的三维场景,所述三维场景包括视觉场景数据和具有在所述三维场景中的地点的向量图形数据,所述初始用户视角基于来自所述输入设备的用户输入被确定;
将所述三维场景中的来自所述初始用户视角的所述视觉场景数据的初始视野作为二维像素数据绘制到帧缓冲器;以及
生成所述三维场景中的来自所述初始用户视角的所述向量图形数据的初始视野作为边缘的带符号距离场;
在显示所绘制的所述视觉场景数据的所述初始视野和所生成的所述向量图形数据的所述初始视野之前的所述绘制流水线的重新投影阶段:
经由所述输入设备接收绘制后用户输入,所述绘制后用户输入将所述用户视角从所述初始用户视角更新到更新的用户视角,更新的所述用户视角与所述初始用户视角不同在于:围绕一个或多个正交旋转轴相对于所述三维场景中的所述地点的定向变化,所述绘制后用户输入指示由一个或多个传感器检测到的所述定向变化;
在所述视觉场景数据的所述初始视野已经被绘制之后,并且在所述向量图形数据的所述初始视野已经从所述初始用户视角针对所述三维场景被生成之后,通过分开地对所述二维像素数据执行第一重新投影过程以及对边缘的所述带符号距离场执行第二重新投影过程,来生成来自更新的所述用户视角的所述视觉场景数据的更新视野和所述向量图形数据的更新视野,而不绘制来自更新的所述用户视角的所述三维场景,每个重新投影过程基于指示由所述一个或多个传感器检测到的所述定向变化的所述绘制后用户输入;
从更新的所述用户视角的所述三维场景生成合成图像,所述合成图像包括所述视觉场景数据的所述更新视野和所述向量图形数据的所述更新视野;以及
在所述显示设备上显示所述合成图像;其中
所述第一重新投影过程包括:将所述帧缓冲器中的所述二维像素数据从所述初始用户视角重新投影到更新的所述用户视角;并且其中
所述第二重新投影过程包括:基于更新的所述用户视角,对针对所述初始用户视角生成的边缘的所述带符号距离场进行采样和评估。
2.根据权利要求1所述的计算设备,其中所述带符号距离场中的每个像素的值表示到所述向量图形数据中的向量图形的最近边缘的距离,或者其中多个值被存储在所述带符号距离场中的每个像素中以表示到多个边缘中的每个边缘的距离,所述多个边缘在所述向量图形数据中的所述向量图形附近。
3.根据权利要求2所述的计算设备,其中所述带符号距离场中的每个像素进一步包括颜色值或纹理值。
4.根据权利要求2所述的计算设备,其中所述带符号距离场中的每个像素进一步包括用于该像素在所述场景中的深度值。
5.根据权利要求1所述的计算设备,其中所述向量图形数据是文本数据。
6.根据权利要求1所述的计算设备,其中所述处理器进一步被配置为:
生成被锁定到所述显示设备的视口的图形用户界面覆盖图;以及
生成包括所述视觉场景数据的所述更新视野、所述向量图形数据的所述更新视野、和所述图形用户界面覆盖图的所述合成图像。
7.根据权利要求1所述的计算设备,其中所述绘制流水线的所述重新投影阶段在与所述绘制流水线的所述绘制阶段分离的专用处理设备上被执行。
8.根据权利要求1所述的计算设备,其中所述计算设备是头戴式显示设备,并且所述输入设备包括所述一个或多个传感器,所述一个或多个传感器被配置为检测所述头戴式显示设备的用户的头部运动。
9.根据权利要求8所述的计算设备,其中所述头戴式显示设备包括被配置为跟踪用户注视方向的面向内的图像传感器,并且所述处理器进一步被配置为:
生成所述带符号距离场以包括:相比用于所述用户注视方向周边的向量图形数据的带符号距离场数据的分辨率的、用于所述用户注视方向附近的向量图形数据的带符号距离场数据的较高分辨率。
10.一种计算机实施的方法,包括:
在绘制流水线的绘制阶段:
基于由应用程序输出的数据来确定来自初始用户视角的三维场景,所述三维场景包括视觉场景数据和具有在所述三维场景中的地点的向量图形数据,所述初始用户视角基于来自输入设备的用户输入被确定;
将所述三维场景中的来自所述初始用户视角的所述视觉场景数据的初始视野作为二维像素数据绘制到帧缓冲器;以及
生成所述三维场景中的来自所述初始用户视角的所述向量图形数据的初始视野作为边缘的带符号距离场;
在显示所绘制的所述视觉场景数据的所述初始视野和所生成的所述向量图形数据的所述初始视野之前的所述绘制流水线的重新投影阶段:
经由所述输入设备接收绘制后用户输入,所述绘制后用户输入将所述用户视角从所述初始用户视角更新到更新的用户视角,更新的所述用户视角与所述初始用户视角不同在于:围绕一个或多个正交旋转轴相对于所述三维场景中的所述地点的定向变化,所述绘制后用户输入指示由一个或多个传感器检测到的所述定向变化;
在所述视觉场景数据的所述初始视野已经被绘制之后,并且在所述向量图形数据的所述初始视野已经从所述初始用户视角针对所述三维场景被生成之后,通过分开地对所述二维像素数据执行第一重新投影过程,以及对边缘的所述带符号距离场执行第二重新投影过程,来生成来自更新的所述用户视角的所述视觉场景数据的更新视野和所述向量图形数据的更新视野,而不绘制来自更新的所述用户视角的所述三维场景,每个重新投影过程基于指示由所述一个或多个传感器检测到的所述定向变化的所述绘制后用户输入;
从更新的所述用户视角的所述三维场景生成合成图像,所述合成图像包括所述视觉场景数据的所述更新视野和所述向量图形数据的所述更新视野;
在显示设备上显示所述合成图像;其中
所述第一重新投影过程包括:将所述帧缓冲器中的所述二维像素数据从所述初始用户视角重新投影到更新的所述用户视角;并且其中
所述第二重新投影过程包括:基于更新的所述用户视角,对针对所述初始用户视角生成的边缘的所述带符号距离场进行采样和评估。
11.根据权利要求10所述的方法,其中所述带符号距离场中的每个像素的值表示到所述向量图形数据中的向量图形的最近边缘的距离,或者其中多个值被存储在所述带符号距离场中的每个像素中以表示到多个边缘中的每个边缘的距离,所述多个边缘在所述向量图形数据中的所述向量图形附近。
12.根据权利要求11所述的方法,其中所述带符号距离场中的每个像素进一步包括颜色值或纹理值。
13.根据权利要求11所述的方法,其中所述带符号距离场中的每个像素进一步包括用于该像素在所述场景中的深度值。
14.根据权利要求10所述的方法,其中所述向量图形数据是文本数据。
15.根据权利要求10所述的方法,进一步包括:
生成被锁定到所述显示设备的视口的图形用户界面覆盖图;以及
生成包括所述视觉场景数据的所述更新视野、所述向量图形数据的所述更新视野、和所述图形用户界面覆盖图的所述合成图像。
16.根据权利要求10所述的方法,其中所述绘制流水线的所述重新投影阶段在与所述绘制流水线的所述绘制阶段分离的专用处理设备上被执行。
17.根据权利要求10所述的方法,其中所述方法在头戴式显示设备上实施,并且所述输入设备包括所述一个或多个传感器,所述一个或多个传感器被配置为检测所述头戴式显示设备的用户的头部运动。
18.根据权利要求17所述的方法,其中所述头戴式显示设备包括被配置为跟踪用户注视方向的面向内的图像传感器,并且所述方法进一步包括:
生成所述带符号距离场以包括:相比用于所述用户注视方向周边的向量图形数据的带符号距离场数据的分辨率的、用于所述用户注视方向附近的向量图形数据的带符号距离场数据的较高分辨率。
19.一种计算机实施的方法,包括:
在绘制流水线中
在第一时刻,基于来自用户输入设备的用户输入数据来确定初始用户视角;
绘制用于显示的合成图像,所述合成图像包括具有表示三维场景的二维像素数据的第一层和具有在所述三维场景内的一个或多个地点处的向量图形数据的第二层,所述第二层基于所述初始用户视角被编码在带符号距离场中;
在显示所绘制的所述合成图像之前,基于更新的用户输入数据来确定更新的用户视角,更新的所述用户视角将所述用户视角从所述初始用户视角更新到更新的所述用户视角,更新的所述用户视角与所述初始用户视角不同在于:围绕一个或多个正交旋转轴相对于所述三维场景中的所述地点的定向变化,更新的所述用户输入数据指示由所述用户输入设备的一个或多个传感器检测到的所述定向变化;
在所述合成图像已经被绘制之后,通过分开地对所述第一层中的所述二维像素数据执行第一重新投影过程以及对所述第二层中的所述带符号距离场执行第二重新投影过程,来生成针对更新的所述用户视角的所述三维场景的更新视野和所述向量图形数据的更新视野,而不绘制来自更新的所述用户视角的所述三维场景,每个重新投影过程基于指示由所述一个或多个传感器检测到的所述定向变化的所述绘制后用户输入;
生成更新的合成图像,更新的所述合成图像包括所述三维场景的所述更新视野和所述向量图形数据的所述更新视野;
在显示设备上显示更新的所述合成图像;其中
所述第一重新投影过程包括:将帧缓冲器中的所述二维像素数据从所述初始用户视角重新投影到更新的所述用户视角;并且其中
所述第二重新投影过程包括:基于更新的所述用户视角,对针对所述初始用户视角生成的边缘的所述带符号距离场进行采样和评估。
20.根据权利要求19所述的方法,其中所述显示设备是头戴式显示设备,所述头戴式显示设备包括至少部分透视的显示器,更新的所述合成图像被显示在所述至少部分透视的显示器上,并且所述用户输入设备包括所述一个或多个传感器,所述一个或多个传感器感测所述头戴式显示设备的位置和定向。
CN201780039325.2A 2016-06-28 2017-06-12 利用重新投影的锐利文本绘制 Active CN109313470B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/195,918 2016-06-28
US15/195,918 US11024014B2 (en) 2016-06-28 2016-06-28 Sharp text rendering with reprojection
PCT/US2017/036938 WO2018005050A1 (en) 2016-06-28 2017-06-12 Sharp text rendering with reprojection

Publications (2)

Publication Number Publication Date
CN109313470A CN109313470A (zh) 2019-02-05
CN109313470B true CN109313470B (zh) 2022-06-24

Family

ID=59295301

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780039325.2A Active CN109313470B (zh) 2016-06-28 2017-06-12 利用重新投影的锐利文本绘制

Country Status (4)

Country Link
US (1) US11024014B2 (zh)
EP (1) EP3475789A1 (zh)
CN (1) CN109313470B (zh)
WO (1) WO2018005050A1 (zh)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016046642A (ja) * 2014-08-21 2016-04-04 キヤノン株式会社 情報処理システム、情報処理方法及びプログラム
US10042421B2 (en) 2016-08-24 2018-08-07 Disney Enterprises, Inc. System and method of latency-aware rendering of a focal area of an animation
US10255714B2 (en) 2016-08-24 2019-04-09 Disney Enterprises, Inc. System and method of gaze predictive rendering of a focal area of an animation
US10395408B1 (en) * 2016-10-14 2019-08-27 Gopro, Inc. Systems and methods for rendering vector shapes
JP6858007B2 (ja) * 2016-11-28 2021-04-14 キヤノン株式会社 画像処理システム、画像処理方法
US10242654B2 (en) 2017-01-25 2019-03-26 Microsoft Technology Licensing, Llc No miss cache structure for real-time image transformations
US9978118B1 (en) 2017-01-25 2018-05-22 Microsoft Technology Licensing, Llc No miss cache structure for real-time image transformations with data compression
US10514753B2 (en) * 2017-03-27 2019-12-24 Microsoft Technology Licensing, Llc Selectively applying reprojection processing to multi-layer scenes for optimizing late stage reprojection power
US10410349B2 (en) 2017-03-27 2019-09-10 Microsoft Technology Licensing, Llc Selective application of reprojection processing on layer sub-regions for optimizing late stage reprojection power
US10255891B2 (en) 2017-04-12 2019-04-09 Microsoft Technology Licensing, Llc No miss cache structure for real-time image transformations with multiple LSR processing engines
KR102358543B1 (ko) * 2017-04-27 2022-02-03 지멘스 악티엔게젤샤프트 증강 현실 및 가상 현실을 사용한 증강 현실 경험들의 저작
JP6978289B2 (ja) * 2017-11-20 2021-12-08 株式会社ソニー・インタラクティブエンタテインメント 画像生成装置、ヘッドマウントディスプレイ、画像生成システム、画像生成方法、およびプログラム
KR20190118040A (ko) * 2018-04-09 2019-10-17 삼성전자주식회사 웨어러블 디스플레이 장치 및 그의 입체 영상 표시 방법
US11262839B2 (en) * 2018-05-17 2022-03-01 Sony Interactive Entertainment Inc. Eye tracking with prediction and late update to GPU for fast foveated rendering in an HMD environment
US11270673B2 (en) * 2018-05-28 2022-03-08 Sony Interactive Entertainment Inc. Image generation apparatus, image generation method, and program
US11062499B2 (en) * 2018-10-31 2021-07-13 Facebook Technologies, Llc Distance-field texture interpolation optimizations
WO2020090316A1 (ja) * 2018-11-02 2020-05-07 ソニー株式会社 情報処理装置、情報処理方法、及びプログラム
US11070778B2 (en) * 2019-02-14 2021-07-20 Facebook Technologies, Llc Multi-projector display architecture
US11030822B2 (en) 2019-05-15 2021-06-08 Microsoft Technology Licensing, Llc Content indicators in a 3D environment authoring application
US11039061B2 (en) * 2019-05-15 2021-06-15 Microsoft Technology Licensing, Llc Content assistance in a three-dimensional environment
US11164395B2 (en) 2019-05-15 2021-11-02 Microsoft Technology Licensing, Llc Structure switching in a three-dimensional environment
US11287947B2 (en) 2019-05-15 2022-03-29 Microsoft Technology Licensing, Llc Contextual input in a three-dimensional environment
US11087560B2 (en) 2019-05-15 2021-08-10 Microsoft Technology Licensing, Llc Normalization of objects for a 3D environment within an authoring application
US11579688B2 (en) * 2019-06-28 2023-02-14 Canon Kabushiki Kaisha Imaging display device and wearable device
EP4025963A4 (en) * 2019-09-03 2023-08-30 Light Field Lab, Inc. LIGHT FIELD DISPLAY FOR MOBILE DEVICES
WO2021061479A1 (en) * 2019-09-23 2021-04-01 Apple Inc. Rendering computer-generated reality text
US11568555B2 (en) 2020-06-22 2023-01-31 Microsoft Technology Licensing, Llc Dense depth computations aided by sparse feature matching
US11651544B2 (en) * 2021-04-30 2023-05-16 Varjo Technologies Oy Systems and methods employing multiple graphics processing units for producing images
US11887228B2 (en) * 2021-05-20 2024-01-30 Apple Inc. Perspective correct vector graphics with foveated rendering
DE102021117453B3 (de) * 2021-07-06 2022-10-20 Holoride Gmbh Verfahren zum Betreiben einer Datenbrille in einem Kraftfahrzeug während einer Fahrt, entsprechend betreibbare Datenbrille, Prozessorschaltung sowie Kraftfahrzeug
US11557066B1 (en) * 2021-12-13 2023-01-17 Mitsubishi Electric Research Laboratories, Inc. Systems and methods for image transformation based on API calls
US11908114B2 (en) * 2021-12-13 2024-02-20 Mitsubishi Electric Research Laboratories, Inc. Systems and methods for image transformation
US20230186430A1 (en) * 2021-12-13 2023-06-15 Mitsubishi Electric Research Laboratories, Inc. Systems and Methods for Image Transformation using Distance Field Procedures
US11544882B1 (en) * 2021-12-13 2023-01-03 Mitsubishi Electric Research Laboratories, Inc. Systems and methods for image transformation based on transformation instructions
SE545378C2 (en) * 2021-12-30 2023-07-25 Tobii Ab Method and system for determining a current gaze direction
CN115270032B (zh) * 2022-08-10 2023-04-25 上海图客科技有限公司 一种基于WebGL的动态高清文字显示方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040189666A1 (en) * 2003-03-25 2004-09-30 Frisken Sarah F. Method for generating a composite glyph and rendering a region of the composite glyph in object-order
US20130335442A1 (en) * 2012-06-18 2013-12-19 Rod G. Fleck Local rendering of text in image
CN104599320A (zh) * 2014-12-31 2015-05-06 北京邮电大学 一种三维模型实时绘制与比对方法
CN104683788A (zh) * 2015-03-16 2015-06-03 四川虹微技术有限公司 基于图像重投影的空洞填充方法
US20150310665A1 (en) * 2014-04-29 2015-10-29 Ashraf Ayman Michail Stabilization plane determination based on gaze location

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6342890B1 (en) 1999-03-19 2002-01-29 Microsoft Corporation Methods, apparatus, and data structures for accessing sub-pixel data having left side bearing information
US7483042B1 (en) * 2000-01-13 2009-01-27 Ati International, Srl Video graphics module capable of blending multiple image layers
DE102010008295A1 (de) * 2010-02-17 2011-08-18 Dieffenbacher System Automation GmbH, 75031 Vorrichtung und Verfahren zum Bedrucken von Oberflächen von Werkstoffplatten, insbesondere Holzplatten, mit einer mehrfarbigen Abbildung
US8553032B1 (en) 2011-11-23 2013-10-08 Animoto, Inc. Glyph rendering
US8988434B1 (en) 2012-04-12 2015-03-24 Google Inc. Text rendering for browsers and mobile based applications
US9020272B1 (en) 2012-10-12 2015-04-28 Google Inc. Sampling vector signed distance field using arc approximation
US20150031066A1 (en) * 2013-07-26 2015-01-29 Union Biometrica, Inc. Systems, methods, and apparatus for sample dispersion
US9569885B2 (en) 2014-01-02 2017-02-14 Nvidia Corporation Technique for pre-computing ambient obscurance
US9244539B2 (en) 2014-01-07 2016-01-26 Microsoft Technology Licensing, Llc Target positioning with gaze tracking
US9984505B2 (en) * 2014-09-30 2018-05-29 Sony Interactive Entertainment Inc. Display of text information on a head-mounted display

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040189666A1 (en) * 2003-03-25 2004-09-30 Frisken Sarah F. Method for generating a composite glyph and rendering a region of the composite glyph in object-order
US20130335442A1 (en) * 2012-06-18 2013-12-19 Rod G. Fleck Local rendering of text in image
US20150310665A1 (en) * 2014-04-29 2015-10-29 Ashraf Ayman Michail Stabilization plane determination based on gaze location
CN104599320A (zh) * 2014-12-31 2015-05-06 北京邮电大学 一种三维模型实时绘制与比对方法
CN104683788A (zh) * 2015-03-16 2015-06-03 四川虹微技术有限公司 基于图像重投影的空洞填充方法

Also Published As

Publication number Publication date
US11024014B2 (en) 2021-06-01
EP3475789A1 (en) 2019-05-01
CN109313470A (zh) 2019-02-05
WO2018005050A1 (en) 2018-01-04
US20170372457A1 (en) 2017-12-28

Similar Documents

Publication Publication Date Title
CN109313470B (zh) 利用重新投影的锐利文本绘制
US11270506B2 (en) Foveated geometry tessellation
US10083540B2 (en) Virtual light in augmented reality
US10025102B2 (en) Mapping input to hologram or two-dimensional display
US10409443B2 (en) Contextual cursor display based on hand tracking
US10134174B2 (en) Texture mapping with render-baked animation
KR102257255B1 (ko) 혼합 현실 스포트라이트
US9495801B2 (en) Pose tracking an augmented reality device
US20140071163A1 (en) Augmented reality information detail
WO2017222838A1 (en) Depth-aware reprojection
CN112154405B (zh) 三维推送通知
US10719912B2 (en) Scaling and feature retention in graphical elements defined based on functions
US9269324B2 (en) Orientation aware application demonstration interface
US20180330546A1 (en) Wind rendering for virtual reality computing device
US10872473B2 (en) Edge welding of geometries having differing resolutions
EP2887639A1 (en) Augmented reality information detail
US11100902B2 (en) Image display using rotated frame of reference
Yee et al. Car advertisement for android application in augmented reality

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
GR01 Patent grant
GR01 Patent grant