1.本公开总体涉及渲染矢量图形的电子设备,并且具体地涉及为透视矫正矢量图形提供注视点渲染的系统、方法和设备。
背景技术:2.现有渲染技术可能使用非期望量的电子设备资源(例如,cpu和/或gpu计算、时间、电力等)。现有渲染技术可能无法准确或有效地描绘复杂矢量图形(例如,文本)。另外,现有渲染技术可能无法为从现有应用和/或不同环境导入或以其他方式提供的内容提供透视矫正图形。例如,当导入到渲染3d环境中并因此在渲染3d环境内观看时,可能无法以准确的透视图显示2d内容。
技术实现要素:3.本文公开的各种具体实施包括执行使用从源(例如,移动设备应用)接收的内容执行注视点文本渲染的渲染过程的设备、系统和方法。例如,通过移动设备的屏幕上的应用显示的内容可使用平坦虚拟表面显示在3d环境内的某一位置处。并非从源(例如,移动设备应用)接收位图,而是渲染过程使用定义来自源的内容的矢量绘制命令来渲染内容。此外,此类矢量绘制命令可用于提供来自源的内容的注视点渲染。在一些具体实施中,源是使用对绘制引擎的api程序的api调用提供内容的应用程序。渲染过程可被配置为在不需要例如通过替代地改变绘制引擎api程序来改变源(例如,移动设备应用)的情况下渲染来自源的此类内容。渲染过程可通过基于视线方向绘制区(例如,绘制仅一些区、绘制处于较高分辨率/较高帧速率的一些区等)来提供注视点渲染。在一些具体实施中,渲染过程提供聚焦区中的质量提高、与在现有电子设备(诸如智能电话、平板计算机或手表)上执行的应用程序的兼容性、透视矫正矢量图形和动画的感知,和/或减少用于提供透视矫正渲染的计算量和内存量。
4.通常,本说明书中描述的主题的一个创新方面可在包括以下动作的方法中体现:获得对应于由源生成以用于在第一显示环境中显示的内容的矢量图形绘制命令,其中该源向绘制引擎提供第一绘制命令,该绘制引擎被配置为通过使用第一绘制命令生成光栅图形来在第一显示环境中显示内容,其中这些矢量图形绘制命令是基于第一绘制命令从绘制引擎获得的。在一些具体实施中,识别具有不同于第一显示环境的第二显示环境的电子设备的用户的注视方向。然后,识别与电子设备的显示器相对应的显示空间的第一区和第二区。在一些具体实施中,基于注视方向确定用于在第一区和第二区中渲染内容的渲染模式,并且基于矢量图形绘制命令和用于在第一区和第二区中渲染内容的渲染模式来在显示器上渲染内容。
5.通常,本说明书中描述的主题的一个创新方面可在包括以下动作的方法中体现:获得对应于由源生成以用于在第一显示环境中显示的内容的矢量图形绘制命令。在一些具体实施中,识别电子设备的用户的注视方向,并且识别与电子设备的显示器相对应的显示
空间的第一区和第二区。然后,基于注视方向确定用于在第一区和第二区中渲染内容的渲染模式,其中基于具有第一渲染模式的第一区和具有第二渲染模式的第二区,仅在第一区中渲染内容。然后,基于矢量图形绘制命令和用于在第一区和第二区中渲染内容的渲染模式来在显示器上渲染内容。
附图说明
6.因此,本公开可被本领域的普通技术人员理解,更详细的描述可参考一些例示性具体实施的方面,其中一些具体实施在附图中示出。
7.图1示出了根据一些具体实施电子设备在提供扩展现实(xr)环境时提供的左眼和右眼立体图像。
8.图2a至图2f示出了根据一些具体实施使用注视点渲染显示的xr环境。
9.图3至图4示出了根据一些具体实施使用注视点渲染显示的虚拟内容的层视图。
10.图5是示出根据一些具体实施使用从源应用程序接收的内容以不同方式执行矢量图形渲染的示例性渲染方法的流程图。
11.图6是示出根据一些具体实施使用从源应用程序接收的内容通过基于注视选择性地针对仅一些区绘制内容进行注视点渲染的示例性方法的流程图。
12.图7示出了根据一些具体实施的示例性电子设备。
13.根据通常的做法,附图中示出的各种特征部可能未按比例绘制。因此,为了清楚起见,可以任意地扩展或减小各种特征部的尺寸。另外,一些附图可能未描绘给定的系统、方法或设备的所有部件。最后,在整个说明书和附图中,类似的附图标号可用于表示类似的特征部。
具体实施方式
14.描述了许多细节以便提供对附图中所示的示例具体实施的透彻理解。然而,附图仅示出了本公开的一些示例方面,因此不应被视为限制。本领域的普通技术人员将会知道,其他有效方面或变体不包括本文所述的所有具体细节。此外,没有详尽地描述众所周知的系统、方法、部件、设备和电路,以免模糊本文所述的示例性具体实施的更多相关方面。
15.图1示出了当电子设备的用户观看时提供3d虚拟内容的左眼和右眼立体图像。如图1所示,左眼图像110l和右眼图像110r各自包括具有不同显示质量的多个区。例如,左眼图像110l和右眼图像110r各自可包括具有不同分辨率的多个区。当已知电子设备的用户的注视时,左眼图像110l和右眼图像110r可使用注视点渲染。第一区或聚焦区112l、112r包括电子设备的用户的注视落在或固定在的聚焦区域,该聚焦区域以第一质量(例如,高分辨率或细节)渲染。第二区114l、114r在第一区112附近,并且以低于第一质量的第二质量(例如,中分辨率)渲染。第三区116l、116r分别是左眼显示110l和右眼显示110r中的渲染图像的其余部分,并且以低于第二质量的第三质量(例如,较低分辨率)渲染。例如,第三区116l、116r是背景区。第二区114l、114r可在聚焦区112l、112r和第三区116l、116r之间提供平滑过渡。在一些具体实施中,左眼图像110l和右眼图像110r具有三个以上的区。
16.在一些具体实施中,聚焦区域的大小基于电子设备的用户的注视。在一些具体实施中,聚焦区域的大小基于用户的注视所覆盖的弧度/角度。例如,注视所覆盖的弧度可为
20度、或介于5度和20度之间的弧度/角度。因此,聚焦区域可基于注视所覆盖的弧度和到所渲染内容的视距。在一些具体实施中,聚焦区域的大小基于用户的注视的移动量(例如,移动的增加使大小增加)。在一些具体实施中,聚焦区域包括显示设备的以高分辨率渲染的任意数量的像素(例如,800
×
800)。在一些具体实施中,具有不同渲染质量的多个区使用可变光栅化速率(vrr)来实现。例如,所渲染图像的vrr图可用于跟踪或更新vrr。
17.在一些具体实施中,聚焦区112l、112r大于聚焦区域,因为用户的注视包括恒定的非常小的移动。使聚焦区112大于聚焦区域减少了针对显示设备的多个帧重新绘制聚焦区112的量。
18.在一些具体实施中,具有不同的相应渲染质量的多个区使用任意值、分辨率或比例。另外,多个区的任意不同的渲染质量可动态地改变。例如,第一区112l、112r、第二区114l、114r和第三区116l、116r可分别以10x、4x和1x质量渲染。在一些具体实施中,第二区114l、114r和第三区116l、116r被渲染为图像或纹理。
19.本文公开的一些具体实施提供来自源(例如,由移动设备应用程序提供的用户界面)的内容在另一个渲染环境内(例如,在xr环境的视图内)的注视点渲染。例如,将由移动设备的屏幕上的应用显示的内容可在3d环境内的某一位置处的平坦虚拟表面上显示。图2a至图2b提供了来自源(例如,移动设备上的应用程序)的用户界面在另一个环境中进行渲染的示例。图2c至图2f示出了来自源的在另一个环境中显示的内容的描绘可包括内容的透视矫正注视点渲染的方式。
20.图2a示出了应用程序的用户界面。如图2a所示,应用程序的用户界面210包括各种内容。例如,用户界面210上的内容可包括标题部分222、文本224、图片226以及到其他内容或应用程序的图标或链接228。
21.图2b示出了物理环境205内的电子设备250。在该示例中,物理环境205是房屋内的房间或办公室。电子设备250被配置为显示xr环境的视图(例如,视图215),这些视图包括物理环境205的图像(或者是基于该物理环境的图像和/或其他传感器数据以其他方式生成的)。如图2b所示,用户界面210显示在xr环境的视图215中。在一些具体实施中,电子设备250是用于生成和显示xr环境的任何合适的设备,诸如智能电话、平板计算机或可穿戴设备。
22.在一些具体实施中,虚拟内容(例如,用户界面210)相对于物理环境205的视图显示,并且因此基于虚拟显示表面相对于物理环境的限定且潜在固定的位置和取向显示。因此,电子设备250相对于显示表面的相对位置可取决于电子设备250在物理环境205内的位置,并且因此基于该位置而改变。在一个位置中,电子设备250的视图可包括虚拟显示表面的特写和正面视图,而在另一个位置中,电子设备的视图可描绘虚拟显示表面离倾斜透视更远的视图。因此,虚拟内容在虚拟显示表面上的渲染(例如,执行注视点渲染的方式)可取决于虚拟显示表面相对于电子设备250的位置。电子设备250的位置可使用各种技术来确定,例如基于计算机视觉的定位、同时定位与地图构建(slam)、视觉惯性测程(vio)等,并且可基于传感器数据,例如图像数据、深度数据、运动数据、音频数据等。
23.图2c示出了用户界面210在3d环境中的注视点渲染。这种渲染可例如在虚拟显示表面相对于电子设备250以相对特写和正面的位置定位时发生。如图2c所示,聚焦区212以第一任意注视点比例(例如,高分辨率)渲染,围绕聚焦区212的第二区214以第二任意注视
点比例(例如,中分辨率)渲染,并且背景区216包括整个用户界面210并且以第三任意注视点比例(例如,低分辨率)渲染。例如,背景区216可以是表示整个用户界面210的2d图像。另选地,完全不渲染背景区216。
24.随着电子设备250的用户的注视围绕用户界面210移动,用户界面210的部分以适当比例重新渲染。因此,随着聚焦区212和第二区214跟随电子设备250的用户的注视围绕用户界面210移动,用户界面210的与移动的聚焦区212和移动的第二区214新相交的部分以适当比例重新渲染。类似地,用户界面210的不再与移动的聚焦区212和移动的第二区214相交的部分以背景区216的适当比例重新渲染。
25.在一些具体实施中,矢量图形在聚焦区212中以矫正透视渲染,因为聚焦区212与xr环境的相交可在xr环境的3d坐标中确定。因此,即使在用户界面210和电子设备250的用户的注视之间的极端角度下,聚焦区212中的矢量图形也在每个维度中以恰当的像素速率正确采样。换句话说,用户的注视被投射到3d xr环境中以确定与用户界面210的相交(例如,聚焦区212),该相交用于动态地确定为3d xr环境中(例如,聚焦区112中)的透视矫正矢量图形提供足够高的渲染分辨率的任意比例。在一些具体实施中,3d和其他特殊视觉效果可应用于用户界面210中的矢量图形的注视点渲染。
26.如图2d所示,注视点渲染用户界面210绕x轴和y轴旋转。这种渲染可例如在虚拟显示表面相对于电子设备250以相对特写并且以倾斜取向定位时发生。在图2e中,用户界面210水平旋转80度。这种渲染可例如在虚拟显示表面相对于电子设备250以相对特写并且以倾斜取向定位时发生。如图2e所示,聚焦区212(例如,注视或注视所覆盖的弧度)与用户界面210的整个宽度的一半以上相交。在图2f中,用户界面210被特写并且相对于电子设备250围绕竖直轴线旋转85度。如图2f所示,聚焦区212(例如,注视或注视所覆盖的弧度)与用户界面210的一半以上竖直(例如,从上到下)相交。
27.图3示出了在应用程序的用户界面中使用注视点渲染显示的示例性矢量图形的取向和前视图。如图3所示,矢量图形是涵盖用户界面并且包括第一聚焦区312和背景区316的内容310(例如,文本的pdf)。因此,两个渲染层用于内容310的注视点渲染。同样,内容310的观看者的注视方向以及因此聚焦区域(fa)小于聚焦区312。在一些具体实施中,聚焦区312可为内容物310的小部分。例如,当阅读时,大多数人在单行文本中一次阅读几个字词,并且因此,聚焦区312可包括该单行文本上的四个或五个字词或者包括该单行上方和/或下方的一行。
28.在一些具体实施中,内容310被划分成多组像素。在一些具体实施中,内容310被划分成称为图块的多个像素,这些图块各自具有相同形状。在一些具体实施中,内容310被划分成具有相同形状和大小的多个图块。
29.图4示出了使用注视点渲染显示的示例性矢量图形随时间推移的多个实例的层视图。如图4所示,内容310(例如,文本的pdf)被划分成以虚线绘制的多个图块(例如,42个图块),这些图块各自包括用于渲染内容310的多个像素。如图4所示,聚焦区312包括该图块中的9个图块,并且背景区316包括该图块中的33个图块。
30.图4示出了随着用户的注视在阅读形成内容310的pdf中的文本时移动到右侧,包括fa的聚焦区312将移动以跟随用户的注视。在一个具体实施中,就在聚焦区域或聚焦区312跨入图块20、27或34中时(或就在这之前),那些图块被添加到聚焦区312(例如,以聚焦
区312的比例重新渲染)并且图块17、24和31从聚焦区312被丢弃(例如,以背景区316的比例重新渲染)。在图4中,聚焦区312的移动方向为从左到右,然而,移动方向可为从右到左、从上到下或从内容的一个部分跳跃到另一个部分。
31.因此,在一些具体实施中,文本或其他矢量图形可被划分成层(例如,在图3至图4中为2层),并且仅在聚焦区312中是使用透视矫正矢量图形渲染的文本或其他矢量图形。聚焦区312之外的区(例如,矢量图形)不相关或者使用减少用于渲染的计算量或内存量的技术来渲染。
32.本文公开的各种具体实施包括执行使用从源(例如,移动设备应用)接收的内容执行注视点文本渲染的渲染过程的设备、系统和方法。例如,通过移动设备的屏幕上的应用显示的内容可使用平坦虚拟表面显示在3d环境内的某一位置处。并非从源(例如,移动设备应用)接收位图,而是渲染过程使用定义来自源的内容的矢量绘制命令来渲染内容。此外,此类矢量绘制命令可用于提供来自源的内容的注视点渲染。在一些具体实施中,源是使用对绘制引擎的api程序的api调用提供内容的应用程序。渲染过程可被配置为在不需要例如通过替代地改变绘制引擎api程序来改变源(例如,移动设备应用)的情况下渲染来自源的此类内容。
33.当从这些源(例如,移动设备应用)接收位图时,渲染过程由于绘制命令不可用于渲染过程而无法渲染透视矫正内容。在该示例中,从源接收的位图是固定分辨率,并且当例如使用固定分辨率位图进行放大或缩小(例如,放大)时,渲染过程(例如,使用3d环境中的虚拟表面)无法提供透视内容。
34.因此,渲染过程需要对应的矢量图形绘制命令来在3d环境中渲染透视矫正复杂矢量图形诸如从源(例如,移动设备应用)接收的文本。在一些具体实施中,渲染过程从源(例如,移动设备应用)接收矢量图形绘制命令,并且使用3d环境中的虚拟表面渲染所有矢量图形本身(例如,源不进行渲染)。在一些具体实施中,透视矫正矢量图形渲染过程修改由源调用的api程序以从源接收矢量图形绘制命令。因此,由于调用了相同api(例如,对库的调用),因此不需要改变源(例如,移动设备应用)。因此,在一些具体实施中,渲染过程改变源通过矢量图形渲染请求(通过api调用)发送的内容而不改变源本身。因此,渲染过程现在渲染所有矢量图形以渲染从源接收的内容,并且可动态地改变矢量图形的质量/分辨率。另外,渲染过程可在适当时间缩放矢量图形以用于注视点渲染的。在一些具体实施中,渲染过程本身可使用绘制引擎,诸如细分技术(例如,参见图4)、基于cpu的渲染、光栅图形等。
35.在一些具体实施中,本文描述的矢量图形渲染技术仅在聚焦区中提供具有透视矫正矢量图形渲染的注视点渲染。透视矫正矢量图形渲染使用聚焦区中的动态改变的取向、大小和/或所渲染质量来提供。因此,仅在需要的情况下提供透视矫正矢量图形渲染(例如,图4中的聚焦区、9个图块)。另外,透视矫正矢量图形渲染过程接收针对xr环境的所有矢量图形绘制命令。因此,可以任意比例提供聚焦区,因为所有矢量图形渲染都由渲染过程(例如,合成服务器)完成。此外,透视矫正矢量图形渲染过程与在现有电子设备(诸如智能电话、平板计算机、手表或桌面)上执行的应用程序兼容。在一些具体实施中,本文描述的矢量图形渲染技术使用层分级结构(例如,包括聚焦区的多个区)提供具有透视矫正矢量图形渲染的注视点渲染,这减少用于渲染的计算量和内存量。
36.矢量图形包括路径,这些路径由开始和结束点以及沿途的其他点、曲线和角度定
义。在一些具体实施中,矢量图形基于矢量图形绘制命令来定义,这些矢量图形绘制命令定义一个或多个路径(例如,由数学公式指定的线、曲线或形状)和/或指定矢量图形材料视觉特性(例如,颜色、纹理等)。矢量图形可用于定义各种事物的外观,包括但不限于文本串、pdf文件、字体、2d图形、虚拟对象、表情符号等。
37.在一些具体实施中,2d画布是2d平面的一部分,并且该画布包括矢量图形的所有绘制内容。在一些具体实施中,2d画布可在3d中扭曲(例如,反射、畸变、镜像)以3d环境中为所显示矢量图形提供3d效果。
38.在一个具体实施中,细分技术(例如,预处理)用于对透视矫正矢量图形的注视点渲染。细分技术可用于减少渲染图形所需的计算次数和/或减少用于表示2d矢量图形的曲线数量。细分技术可使得能够在3d环境中实时(例如,每一帧)地渲染矢量图形。在一些具体实施中,细分技术(例如,预处理)在一个或多个电子设备的第一处理器(例如,cpu)中执行,并且2d画布由第二处理器(例如,gpu)渲染。在一些具体实施中,细分技术将画布划分成多个像素区(例如,参见图4)。在一些具体实施中,细分技术将画布划分成多个形状统一的像素图块。在一个示例中,所有图块具有相同的大小。因此,每个图块是画布的一部分。
39.细分技术(例如,预处理)用以确定相关绘制命令的列表(例如,仅对每个图块有贡献的路径的绘制命令,然后仅穿过图块的路径的部分的绘制命令)。在一些具体实施中,细分技术将数据结构传输到处理器(例如,gpu)以在3d环境中渲染画布,该数据结构是一系列绘制命令。
40.在一些具体实施中,gpu着色器通过处理传输的数据结构来渲染矢量图形。在一些具体实施中,gpu着色器通过确定(i)哪个图块包含像素,(ii)哪些绘制命令(例如,路径)与该图块相关,并且然后确定当前像素的覆盖范围(例如,像素的百分比(具有特定颜色或材料特性))、颜色和组成(例如,将部分覆盖的像素或渲染像素的视觉效果混合)来渲染形成矢量图形的像素。然后,gpu着色器针对形成矢量图形的其余像素重复该过程。
41.在一些具体实施中,针对在3d环境中显示的每一帧渲染画布(例如,矢量图形)。然而,仅当画布的内容改变时才执行细分技术。换句话说,对于每个未发生变化的画布,细分技术仅处理一次。例如,对于固定pdf矢量图形,细分技术针对相同文档仅执行一次,但pdf矢量图形可在3d环境的每一帧中重新渲染。在一些具体实施中,仅画布中的相关像素用每一帧渲染。例如,仅更新画布中发生变化的像素。在一些具体实施中,通过将下一帧的画布与当前帧画布进行比较来识别画布中发生变化的像素。
42.图5是示出用于使用从源(例如,应用程序)接收的内容执行矢量图形渲染的渲染过程的示例性方法的流程图。在一些具体实施中,3d环境提供有包括注视点矢量图形和其他内容(例如,xr环境或物理环境)的视图。例如,源可以是包括对绘制引擎(例如,绘制库)的api调用的应用程序。在一些具体实施中,来自源的内容的显示可通过改变绘制库api程序来改变,这消除了对更改源应用程序本身的需要。例如,并非从源接收用于文本矢量图形(例如,“hello world”)的位图,而是渲染过程使用来自源的矢量图形绘制命令以能够提供文本矢量图形的注视点矢量图形渲染。注视点渲染过程可在基于注视选择的区(例如,处于较高分辨率/较高帧速率的聚焦区等)中绘制透视矫正矢量图形。在一些具体实施中,方法500由设备(例如,图7的电子设备700)执行。方法500可使用电子设备执行,或者由彼此通信的多个设备执行。在一些具体实施中,方法500由处理逻辑部件(包括硬件、固件、软件或其
组合)执行。在一些具体实施中,方法500由执行存储在非暂态计算机可读介质(例如,存储器)中的代码的处理器执行。在一些具体实施中,方法500由具有处理器的电子设备执行。
43.在框510处,方法500获得对应于由源生成以用于在第一显示环境中显示的内容的矢量图形绘制命令,其中该源向绘制引擎提供第一绘制命令,该绘制引擎被配置为通过使用第一绘制命令生成光栅图形(例如,位图)来在第一显示环境中显示内容,其中矢量图形绘制命令是基于第一绘制命令从绘制引擎获得的。例如,源是在智能手机上运行的应用程序,该应用程序生成包括文本的内容的视图以用于在第一显示环境中显示,该第一显示环境是智能手机上的显示器。源/应用程序向绘制引擎提供第一绘制命令(例如,通过api调用),该绘制引擎被配置为通过使用第一绘制命令生成文本的光栅图形(例如,位图)来在第一显示环境中显示内容。然而,更新的绘制引擎可另选地基于第一绘制命令来获得针对文本的矢量图形绘制命令。例如,对更新的绘制引擎(例如,api程序、合成服务器)的api调用不改变作出api调用的源/应用程序,但是可被配置为使用矢量图形绘制命令来将文本渲染为矢量图形而不是光栅图形。例如,更新的绘制引擎可基于待在第二显示环境中显示的内容(例如,文本)来从源获得绘制命令的显示列表或容器。
44.在框520处,方法500识别具有不同于第一显示环境的第二显示环境的电子设备的用户的注视方向。在一些具体实施中,使用电子设备的用户的主动或被动眼睛跟踪(例如,照明)来确定注视方向。注视方向可与由源/应用程序生成的内容进行比较。
45.在框530处,方法500识别与电子设备的显示器相对应的显示空间的第一区和第二区。在一些具体实施中,第一区和第二区基于电子设备的用户的注视方向。例如,第一区可与注视方向相交,并且第二区不与注视方向相交。在一些具体实施中,第一区是聚焦区,并且第二区是背景区。在一些具体实施中,第一区的大小基于注视点的角度和到内容的距离。在一个示例中,电子设备的显示器被划分成多个图块,并且第一区是基于注视方向的图块的第一子集,并且第二区是其余图块。
46.在框540处,方法500基于注视方向确定用于在第一区和第二区中渲染内容的渲染模式。在一个具体实施中,用于第一区的渲染模式是透视矫正矢量图形渲染模式,并且用于第二区的渲染模式是2d图像或纹理。另选地,用于第一区的渲染模式是8x视觉质量,并且用于第二区的渲染模式是1x视觉质量。在一个示例中,第一区中的内容以显示器帧速率渲染。在一个示例中,第二区中的内容渲染一次或者在改变时渲染。例如,平板计算机或hmd可将应用程序的当前内容的视图与第一区和第二区进行比较。
47.在框550处,方法500基于矢量图形绘制命令和用于在第一区和第二区中渲染内容的渲染模式来在显示器上渲染内容。在一些具体实施中,重复执行框510至框550。在一些具体实施中,本文所公开的技术可以在智能电话、平板计算机或可穿戴设备(诸如具有光学透视式显示器或不透明显示器的头戴式设备(hmd))上实现。
48.图6是示出使用从源接收的内容通过基于注视方向选择性地针对仅一些区渲染内容进行注视点渲染的示例性方法的流程图。在一些具体实施中,在电子设备的用户的聚焦区之外不绘制内容。在一些具体实施中,在聚焦区中以显示设备的帧速率重新绘制透视矫正矢量图形。在一些具体实施中,仅在聚焦区中重新绘制内容。在一个示例中,源是在电子设备上运行的应用程序。在一些具体实施中,方法600由设备(例如,图7的电子设备700)执行。方法600可使用电子设备执行,或者由彼此通信的多个设备执行。在一些具体实施中,方
法600由处理逻辑部件(包括硬件、固件、软件或其组合)执行。在一些具体实施中,方法600由执行存储在非暂态计算机可读介质(例如,存储器)中的代码的处理器执行。在一些具体实施中,方法600由具有处理器的电子设备执行。
49.在框610处,方法600获得对应于由源生成以用于在第一显示环境中显示的内容的矢量图形绘制命令。在一些具体实施中,源是客户端/移动设备应用程序。例如,源可以是在源电子设备(例如,智能手机或平板设备)上运行的应用程序,该应用程序生成包括文本和/或其他虚拟内容(例如,用户界面)的视图以供观看。
50.在框620处,方法600识别电子设备的用户的注视方向。在一些具体实施中,使用电子设备处的被动或主动眼睛跟踪功能来确定用户的注视方向。例如,电子设备可以是hmd,该hmd将基于由提供移动设备应用的可显示内容的当前应用程序生成的信息来显示移动设备应用的用户界面的视图。
51.在框630处,方法600识别与电子设备的显示器相对应的显示空间的第一区和第二区。在一些具体实施中,第一区是显示器的聚焦区,并且第二区是背景区。在一些具体实施中,第一区是多个区(例如,像素组)的第一子集,并且第二区是像素的第一子集之外(例如,邻近或围绕第一像素子集)的多个区的第二不同子集。例如,像素组可以是相同的形状和大小(每组像素是显示空间中的矩形图块)。
52.在框640处,方法600基于注视方向确定用于在第一区和第二区中渲染内容的渲染模式(例如,渲染或不渲染),其中基于具有第一渲染模式的第一区和具有第二渲染模式的第二区,仅在第一区中渲染内容。在一些具体实施中,不在第二区中用第二渲染模式渲染内容。
53.在框650处,方法600基于矢量图形绘制命令和用于在第一区和第二区中渲染内容的渲染模式来在显示器中渲染内容。在一些具体实施中,第一渲染模式仅渲染作为第一区的聚焦区中的内容。在一些具体实施中,第一渲染模式在第一区中以第一分辨率渲染内容,并且第二渲染模式在第二区中以第二降低分辨率渲染内容。在一些具体实施中,在第一区中进行的渲染以第一帧速率执行,并且在第二区中进行的渲染以小于第一帧速率的第二帧速率进行。例如,第二区中的内容通过第二渲染过程渲染一次或者在改变时渲染。
54.在一些具体实施中,重复执行框610至框650。在一些具体实施中,本文所公开的技术可在智能电话、平板电脑或可穿戴设备诸如具有光学透视式显示器或不透明显示器的hmd上实现。
55.物理环境是指人们在没有电子系统帮助的情况下能够与其交互和/或对其感测的物理世界。物理环境是指人们在没有电子设备帮助的情况下能够对其感测和/或与其交互的物理世界。物理环境可包括物理特征,诸如物理表面或物理对象。例如,物理环境对应于包括物理树木、物理建筑物和物理人的物理公园。人们能够诸如通过视觉、触觉、听觉、味觉和嗅觉来直接感测物理环境和/或与物理环境交互。相反,扩展现实(xr)环境是指人们经由电子设备感测和/或交互的完全或部分模拟的环境。例如,xr环境可包括增强现实(ar)内容、混合现实(mr)内容、虚拟现实(vr)内容等。在xr系统的情况下,跟踪人的物理运动的一个子集或其表示,并且作为响应,以符合至少一个物理定律的方式调节在xr系统中模拟的一个或多个虚拟对象的一个或多个特征。例如,xr系统可以检测头部移动,并且作为响应,以与此类视图和声音在物理环境中变化的方式类似的方式调节呈现给人的图形内容和声
场。又如,xr系统可以检测呈现xr环境的电子设备(例如,移动电话、平板电脑、膝上型电脑等)的移动,并且作为响应,以类似于此类视图和声音在物理环境中将如何改变的方式调节呈现给人的图形内容和声场。在一些情况下(例如,出于可达性原因),xr系统可响应于物理运动的表示(例如,声音命令)来调节xr环境中图形内容的特征。
56.有许多不同类型的电子系统使人能够感测和/或与各种xr环境交互。示例包括头戴式系统、基于投影的系统、平视显示器(hud)、集成有显示能力的车辆挡风玻璃、集成有显示能力的窗户、被形成为设计用于放置在人的眼睛上的透镜的显示器(例如,类似于隐形眼镜)、耳机/听筒、扬声器阵列、输入系统(例如,具有或不具有触觉反馈的可穿戴或手持式控制器)、智能电话、平板电脑、以及台式/膝上型计算机。头戴式系统可具有集成不透明显示器和一个或多个扬声器。另选地,头戴式系统可被配置为接受外部不透明显示器(例如,智能电话)。头戴式系统可结合用于捕获物理环境的图像或视频的一个或多个成像传感器、和/或用于捕获物理环境的音频的一个或多个麦克风。头戴式系统可具有透明或半透明显示器,而不是不透明显示器。透明或半透明显示器可以具有媒介,代表图像的光通过该媒介被引导到人的眼睛。显示器可以利用数字光投影、oled、led、uled、硅基液晶、激光扫描光源或这些技术的任意组合。媒介可以是光学波导、全息图媒介、光学组合器、光学反射器、或它们的任意组合。在一些具体实施中,透明或半透明显示器可被配置为选择性地变得不透明。基于投影的系统可以采用将图形图像投影到人的视网膜上的视网膜投影技术。投影系统也可以被配置为将虚拟对象投影到物理环境中,例如作为全息图或在物理表面上。
57.在一些具体实施中,呈现xr环境的电子设备是可以是手持式(例如,移动电话、平板电脑、膝上型电脑等)或穿戴式(例如,手表、头戴式设备(hmd)等)的单个设备。在一些具体实施中,电子设备的功能经由两个或更多个通信(例如,有线或无线)设备(例如另外包括任选的基站)来实现。其他示例包括膝上型计算机、台式计算机、服务器或在功率、cpu能力、gpu能力、存储能力、存储器能力等方面包括附加能力的其他此类设备。
58.图7是示例性设备700的框图。尽管示出了一些具体特征,但本领域的技术人员将从本公开中认识到,为简洁起见并且为了不模糊本文所公开的具体实施的更多相关方面,未示出各种其他特征。为此,作为非限制性示例,在一些具体实施中,电子设备700包括一个或多个处理单元702(例如,微处理器、asic、fpga、gpu、cpu、处理核心等)、一个或多个输入/输出(i/o)设备及传感器706、一个或多个通信接口708(例如,usb、firewire、thunderbolt、ieee 802.3x、ieee 802.11x、ieee 802.16x、gsm、cdma、tdma、gps、ir、bluetooth、zigbee、spi、i2c或类似类型的接口)、一个或多个编程(例如,i/o)接口710、一个或多个显示器712、一个或多个面向内部或面向外部的传感器系统714、存储器720以及用于互连这些部件和各种其他部件的一条或多条通信总线704。
59.在一些具体实施中,该一条或多条通信总线704包括互连系统部件和控制系统部件之间的通信的电路。在一些具体实施中,该一个或多个i/o设备及传感器706包括以下项中的至少一者:惯性测量单元(imu)、加速度计、磁力计、陀螺仪、温度计、一个或多个生理传感器(例如,血压监测仪、心率监测仪、血氧传感器、血糖传感器等)、一个或多个麦克风、一个或多个扬声器、触觉引擎或者一个或多个深度传感器(例如,结构光、飞行时间等)或类似物的设备。
60.在一些具体实施中,一个或多个显示器712被配置为向用户呈现内容。在一些具体
实施中,一个或多个显示器712对应于全息、数字光处理(dlp)、液晶显示器(lcd)、硅基液晶(lcos)、有机发光场效应晶体管(olet)、有机发光二极管(oled)、表面传导电子发射器显示器(sed)、场发射显示器(fed)、量子点发光二极管(qd-led)、微机电系统(mems)或类似物的显示器类型。在一些具体实施中,一个或多个显示器712对应于衍射、反射、偏振、全息等波导显示器。例如,电子设备700可包括单个显示器。又如,电子设备700包括用于用户的每只眼睛的显示器。
61.在一些具体实施中,一个或多个面向内部或面向外部的传感器系统714包括捕获图像数据的图像捕获设备或阵列或者捕获音频数据的音频捕获设备或阵列(例如,麦克风)。该一个或多个图像传感器系统714可包括一个或多个rgb相机(例如,具有互补金属氧化物半导体(cmos)图像传感器或电荷耦合器件(ccd)图像传感器)、单色相机、ir相机等。在各种具体实施中,该一个或多个图像传感器系统714还包括发射光的照明源,诸如闪光灯。在一些具体实施中,该一个或多个图像传感器系统714还包括相机上图像信号处理器(isp),该isp被配置为对图像数据执行多个处理操作。
62.存储器720包括高速随机存取存储器,诸如dram、sram、ddr ram或其他随机存取固态存储器设备。在一些具体实施中,存储器720包括非易失性存储器,诸如一个或多个磁盘存储设备、光盘存储设备、闪存存储器设备或其他非易失性固态存储设备。存储器720任选地包括与一个或多个处理单元702远程定位的一个或多个存储设备。存储器720包括非暂态计算机可读存储介质。
63.在一些具体实施中,存储器720或存储器720的非暂态计算机可读存储介质存储可选的操作系统730和一个或多个指令集740。操作系统730包括用于处理各种基础系统服务和用于执行硬件相关任务的过程。在一些具体实施中,指令集740包括由以电荷形式存储的二进制信息定义的可执行软件。在一些具体实施中,指令集740是能够由一个或多个处理单元702执行以实施本文所述技术中的一种或多种的软件。
64.在一些具体实施中,指令集740包括矢量图形生成器742,该矢量图形生成器能够由处理单元702执行以根据本文公开的技术中的一种或多种进行注视点透视矫正矢量图形渲染(例如,聚焦区)。
65.尽管指令集740被示出为驻留在单个设备上,但是应当理解,在其他具体实施中,元件的任何组合可位于单独的计算设备中。图7更多地用作存在于特定具体实施中的各种特征部的功能描述,与本文所述的具体实施的结构示意图不同。如本领域的普通技术人员将认识到的,单独显示的项目可以组合,并且一些项目可以分开。例如,指令集的实际数量和特定功能的划分以及如何在其中分配特征部将根据具体实施而变化,并且在一些具体实施中,部分地取决于为特定具体实施选择的硬件、软件或固件的特定组合。
66.应当理解,上文所描述的具体实施以示例的方式引用,并且本公开不限于上文已特别示出和描述的内容。相反地,范围包括上文所描述的各种特征的组合和子组合两者,以及本领域的技术人员在阅读前述描述时将想到的并且在现有技术中未公开的所述各种特征的变型和修改。
67.本领域的那些普通技术人员将意识到没有详尽地描述众所周知的系统、方法、部件、设备和电路,以免模糊本文所述的示例性具体实施的更多相关方面。此外,其他有效方面和/或变体不包括本文所述的所有具体细节。因此,描述了若干细节以便提供对附图中所
示的示例性方面的透彻理解。此外,附图仅示出了本公开的一些示例性实施方案,因此不应被视为限制。
68.虽然本说明书包含许多具体实施细节,但是这些具体实施细节不应被理解为是对任何发明或可能要求保护的内容的范围的限制,而应被理解为对特定于特定发明的特定实施方案的特征的描述。本说明书中在不同实施方案的上下文中描述的某些特征也可以在单个实施方案中组合地实现。相反地,在单个实施例的上下文中描述的各种特征也可单独地或者以任何合适的子组合的形式在多个实施例中实现。此外,虽然某些特征可能在上面被描述为以某些组合来起作用并且甚至最初也这样地来要求保护,但是要求保护的组合的一个或多个特征在某些情况下可从该组合中去除,并且要求保护的组合可涉及子组合或子组合的变型。
69.类似地,虽然操作在附图中以特定次序示出,但不应将此理解为要求以相继次序或所示的特定次序来执行此类操作,或者要求执行所有所示的操作以实现期望的结果。在某些情况中,多任务和并行处理可能是有利的。此外,上述实施方案中各个系统部件的划分不应被理解为在所有实施方式中都要求此类划分,并且应当理解,所述程序部件和系统可一般性地一起整合在单个软件产品中或者封装到多个软件产品中。
70.因此,已经描述了主题的特定实施方案。其他实施例也在以下权利要求书的范围内。在某些情况下,权利要求书中所述的动作能够以不同的次序执行,并且仍能实现期望的结果。此外,附图中所示的过程未必要求所示的特定次序或者先后次序来实现期望的结果。在某些具体实施中,多任务和并行处理可能是有利的。
71.本说明书中描述的主题和操作的实施方案可在数字电子电路中或在计算机软件、固件或硬件中(包括本说明书中公开的结构及其结构等同物)或在它们中的一者或多者的组合中实现。本说明书中所述主题的实施方案可被实现为一个或多个计算机程序,即在计算机存储介质上编码的计算机程序指令的一个或多个模块,以用于由数据处理装置执行或控制数据处理装置的操作。另选地或除此之外,该程序指令可在人工生成的传播信号上被编码,例如机器生成的电信号、光信号或电磁信号,该电信号、光信号或电磁信号被生成以对信息进行编码以便传输到合适的接收器装置以供数据处理装置执行。计算机存储介质可以是计算机可读存储设备、计算机可读存储基板、随机或串行访问存储器阵列或设备,或者它们中的一者或多者的组合,或者包括在计算机可读存储设备、计算机可读存储基板、随机或串行访问存储器阵列或设备中。此外,虽然计算机存储介质并非传播信号,但计算机存储介质可以是在人工生成的传播信号中编码的计算机程序指令的源或目的地。计算机存储介质也可以是一个或多个单独的物理部件或介质(例如,多个cd、磁盘或其他存储设备),或者包括在一个或多个单独的物理部件或介质中。
72.术语“数据处理装置”涵盖用于处理数据的所有种类的装置、设备和机器,例如包括可编程处理器、计算机、片上系统、或前述各项中的多项或组合。该装置可包括专用逻辑电路(例如,fpga(现场可编程门阵列)或asic(专用集成电路))。除了硬件之外,该装置还可包括为所考虑的计算机程序创建执行环境的代码,例如构成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行环境、虚拟机或它们中的一者或多者的组合的代码。该装置和执行环境可实现各种不同的计算模型基础结构,诸如web服务、分布式计算和网格计算基础结构。除非另外特别说明,否则应当理解,在整个说明书中,利用诸如“处理”、“计算”、“计
算出”、“确定”和“识别”等术语的论述是指计算设备的动作或过程,诸如一个或多个计算机或类似的电子计算设备,其操纵或转换表示为计算平台的存储器、寄存器或其他信息存储设备、传输设备或显示设备内的物理电子量或磁量的数据。
73.本文论述的一个或多个系统不限于任何特定的硬件架构或配置。计算设备可以包括部件的提供以一个或多个输入为条件的结果的任何合适的布置。合适的计算设备包括基于多用途微处理器的计算机系统,其访问存储的软件,该软件将计算系统从通用计算装置编程或配置为实现本发明主题的一种或多种具体实施的专用计算装置。可以使用任何合适的编程、脚本或其他类型的语言或语言的组合来在用于编程或配置计算设备的软件中实现本文包含的教导内容。
74.本文所公开的方法的具体实施可以在这样的计算设备的操作中执行。上述示例中呈现的框的顺序可以变化,例如,可以将框重新排序、组合和/或分成子块。某些框或过程可以并行执行。本说明书中描述的操作可以被实施为由数据处理装置对存储在一个或多个计算机可读存储设备上或从其它源接收的数据执行的操作。
75.本文中“适用于”或“被配置为”的使用意味着开放和包容性的语言,其不排除适用于或被配置为执行额外任务或步骤的设备。另外,“基于”的使用意味着开放和包容性,因为“基于”一个或多个所述条件或值的过程、步骤、计算或其他动作在实践中可以基于额外条件或超出所述的值。本文包括的标题、列表和编号仅是为了便于解释而并非旨在为限制性的。
76.还将理解的是,虽然术语“第一”、“第二”等可能在本文中用于描述各种元素,但是这些元素不应当被这些术语限定。这些术语只是用于将一个元件与另一元件区分开。例如,第一节点可以被称为第二节点,并且类似地,第二节点可以被称为第一节点,其改变描述的含义,只要所有出现的“第一节点”被一致地重命名并且所有出现的“第二节点”被一致地重命名。第一节点和第二节点都是节点,但它们不是同一个节点。
77.本文中所使用的术语仅仅是为了描述特定具体实施并非旨在对权利要求进行限制。如在本具体实施的描述和所附权利要求中所使用的那样,单数形式的“一个”和“该”旨在也涵盖复数形式,除非上下文清楚地另有指示。还将理解的是,本文中所使用的术语“和/或”是指并且涵盖相关联的所列出的项目中的一个或多个项目的任何和全部可能的组合。还将理解的是,术语“包括”在本说明书中使用时是指定存在所陈述的特征、整数、步骤、操作、元件和/或部件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、部件,和/或其分组。
78.如本文所使用的,术语“如果”可以被解释为表示“当所述先决条件为真时”或“在所述先决条件为真时”或“响应于确定”或“根据确定”或“响应于检测到”所述先决条件为真,具体取决于上下文。类似地,短语“如果确定[所述先决条件为真]”或“如果[所述先决条件为真]”或“当[所述先决条件为真]时”被解释为表示“在确定所述先决条件为真时”或“响应于确定”或“根据确定”所述先决条件为真或“当检测到所述先决条件为真时”或“响应于检测到”所述先决条件为真,具体取决于上下文。