CN108351864B - 成凹几何密铺 - Google Patents
成凹几何密铺 Download PDFInfo
- Publication number
- CN108351864B CN108351864B CN201680062055.2A CN201680062055A CN108351864B CN 108351864 B CN108351864 B CN 108351864B CN 201680062055 A CN201680062055 A CN 201680062055A CN 108351864 B CN108351864 B CN 108351864B
- Authority
- CN
- China
- Prior art keywords
- vertices
- screen space
- primitives
- polygons
- density distribution
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/40—Filling a planar surface by adding surface attributes, e.g. colour or texture
-
- 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
-
- 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
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/20—Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/36—Level of detail
Abstract
在图形处理中,接收表示在虚拟空间中的场景的一个或多个顶点的数据。执行顶点到显示设备的屏幕空间上的投影。对屏幕空间的选定部分调整顶点的密度,使得较低密度的顶点存在于屏幕空间的选定部分中。对顶点执行图元装配以从顶点到屏幕空间上的投影在屏幕空间中产生一个或多个图元。然后,通过执行像素处理以将像素值分配到作为对应图元的部分的一个或多个像素来产生完成的帧。在一些实现方式中,完成的帧可被存储在存储器中或显示在显示设备上。
Description
优先权要求
本申请要求2015年10月29日提交的美国专利申请号14/927,157 的优先权权益,该专利申请的全部内容通过引用被全部并入本文。
技术领域
本公开的各方面涉及计算机图形。特定来说,本公开涉及按屏幕位置来改变分辨率。
背景技术
在计算机图形中,密铺(tessellation)用于管理在场景中呈现对象的多边形的数据集(有时被称为顶点集)并将它们分成用于渲染的适当结构。一般,三维对象数据被密铺到三角形内,特别是为了实时渲染。实时图形的密铺的重要优点是,它允许基于控制参数例如摄像机距离来将细节动态地添加到3D网格及其轮廓边和从3D网格及其轮廓边减去。
图形处理一般涉及两个处理器——中央处理单元(CPU)和图形处理单元(GPU)——的协调。GPU是设计成加速打算用于输出到显示器的在帧缓冲器中的图像的创建的专用电子电路。GPU被使用在嵌入式系统、移动电话、个人计算机、平板计算机、便携式游戏设备、工作站和游戏控制台中。GPU一般设计成在操纵计算机图形方面是有效的。GPU常常具有高度并行的处理架构,其使GPU对于并行完成大数据块处理的算法来说比通用CPU更有效。
CPU可发送通常被称为绘图命令的GPU指令,其指示GPU实现特定的图形处理任务,例如渲染相对于图像中的前一帧改变的特定纹理。这些绘图命令可由具有图形应用程序设计接口(API)的CPU 协调,以便发出对应于特定应用的虚拟环境的状态的图形渲染命令。
为了渲染特定程序的纹理,GPU可在“图形流水线”中执行一系列处理任务以将在虚拟环境中的画面转换成可被渲染到显示器上的图像。一般图形流水线可包括执行在虚拟空间中的虚拟对象上的某些渲染或着色(shading)操作、在场景中的虚拟对象的变换和光栅化以产生适合于输出显示的像素数据、以及在显示器上输出渲染的图像之前在像素(或片元)上的额外的渲染任务。
图像的虚拟对象常常在被称为图元的形状方面在虚拟空间中被描绘,图元一起产生在虚拟场景中的对象的形状。例如,待渲染的在三维虚拟世界中的对象可精简到一系列不同的三角形图元,其具有按照它们在三维空间中的坐标而定义的顶点,由此,这些多边形构成对象的表面。每个多边形可具有可由图形处理系统使用来区分开给定多边形与其它多边形的相关联索引。同样,每个顶点可具有可用于区分开给定顶点与其它顶点的相关联索引。图形流水线可对这些图元执行某些操作以产生虚拟场景的画面,并将这个数据变换成适合于由显示器的像素再现的二维格式。如在本文使用的术语图形图元信息(或简单地“图元信息”)用于指表示图形图元的数据。这样的数据包括但不限于顶点信息(例如表示顶点位置或顶点索引的数据)和多边形信息例如多边形索引和使特定顶点与特定多边形相关联的其它信息。
通常在现有的表面细分软件例如开放源软件(诸如OpenSubdiv) 或几何密铺中,构成表面并由密铺单元消耗的几何图元有时被称为“补片”。在所述上下文中,术语“多边形”或简单地“三角形”通常用于密铺操作的输出和后续处理的输入。
作为图形流水线的部分,GPU可通过实现通常被称为“着色器”的程序来执行渲染任务。一般图形流水线可包括顶点着色器以及像素着色器(也被称为“片元着色器”),顶点着色器可在每顶点基础上操纵图元的某些特性,而像素着色器在图形流水线中的顶点着色器的下游操纵并可在将像素数据传输到显示器之前在每像素基础上操纵某些值。片元着色器可操纵与将纹理应用于图元有关的值。流水线还可包括在流水线中的各种阶段处的其它着色器,例如使用顶点着色器的输出来产生新的一组图元的几何着色器以及可由GPU实现来执行某些其它一般计算任务的计算着色器(CS)。
开发了具有宽视场(FOV)的图形显示器设备。这样的设备包括头戴式显示器(HMD)设备。在HMD设备中,小显示器设备戴在用户的头上。显示器设备具有在一只眼睛(单目HMD)或每只眼睛(双目HMD)前面的显示器光学器件。HMD设备一般包括传感器,其可感测设备的定向并在用户的头移动时改变由显示器光学器件显示的场景。照惯例,渲染宽FOV显示器的场景的大部分阶段通过平面渲染来执行,其中屏幕的所有部分具有每单位面积相同数量的像素。
然而,常常结合HMD设备来执行的对虚拟现实(VR)程序的渲染需要比常规平坦屏幕渲染更高的帧速率以防止用户经历运动病。 VR的HMD具有光学系统以为了沉浸式体验在宽FOV中显示渲染的场景。虽然在主凝视点周围的屏幕区域需要高分辨率,在主凝视点之外的区域只由外围视觉观察到,且因此可维持较低的分辨率或可包含较少的细节。执行了设法将这个思想应用于像素级的研究(见通过引用被并入本文的Mark Evan Cerny的共同未决的美国专利申请号 14/246,066)。然而,通过利用密铺和新颖的屏幕空间密铺因子计算算法,可能将这个思想扩展到几何级。在计算机图形中,密铺用于管理在场景中呈现对象的多边形的数据集(有时被称为顶点集)并将它们分成用于渲染的适当结构。一般,三维对象数据被密铺为三角形,特别是为了实时渲染。
实时图形的密铺的重要优点是,它允许基于控制参数(例如摄像机距离)来将细节动态地添加到3D网格及其轮廓边和从3D网格及其轮廓边减去。
本公开就是在这种上下文内出现的。
附图说明
通过结合附图考虑下面的详细描述可容易理解本公开的教导,其中:
图1A是示出根据现有技术执行的正常密铺的示例的简化图。
图1B是示出根据本公开的各方面的成凹密铺的示例的简化图。
图2是描绘根据本公开的方面的图形处理方法的流程图。
图3A是示出根据本公开的各方面的确定屏幕空间的成凹区域的示例的屏幕空间的示意图。
图3B是示出根据本公开的各方面的确定屏幕空间的成凹区域的替代性示例的屏幕空间的示意图。
图3C-3E是描绘根据本公开的各方面的在屏幕空间上的顶点密度中的过渡的示例的曲线图。
图4是根据本公开的各方面的图形处理系统的方框图。
图5是根据本公开的各方面的图形处理流水线的方框图。
具体实施方式
虽然为了说明的目的,下面的详细描述包含很多特定的细节,但是本领域中任何普通技术人员将认识到,对下面的细节的很多变化和变更在本发明的范围内。因此,下面所述的本发明的示例性实施方案被阐述而没有对所主张的发明的一般性的任何损失且不对所主张的发明强加限制。
介绍
图1A示出虚拟现实(VR)环境的渲染的当前状态。在常规FOV 显示器中,使用到视平面的平面投影来渲染三维几何结构。然而,将几何结构渲染到显示器、特别是高FOV视平面上可能是非常低效的,并导致明显的时延和性能问题。这些问题可使所显示的帧速率下降到期望水平之下,除了在经历帧速率下降同时经历VR环境的用户中潜在地引起运动病以外还为用户产生抖动的非沉浸式体验。
此外,在屏幕的边缘附近的显示器的区域或用户未观看的区域比在中心附近或用户的注意力当前指向的区域保持较没有意义的信息。当照惯例渲染场景时,这些区域具有相同数量的顶点,且在屏幕上渲染相等尺寸的区域所花费的时间是相同的。
图1B示出根据本公开的各方面的VR环境的示例,其中使用成凹密铺来渲染场景信息。通过利用实时图形渲染的成凹密铺,可基于各种参数例如摄像机距离、用户注意力、用户眼运动或景深来将细节添加到3D网格及其轮廓边和从3D网格及其轮廓边减去。实施方案表明,通过利用成凹密铺,3D网格或线框的渲染时间可减小大约4 倍或更多,因为在密铺中渲染图像和在密铺之后的图形流水线的某些部分时需要更少的顶点计算。
在一些实现方式中,后续的图形处理可利用使顶点到弯曲视见区上的投影近似的光栅化阶段。在这样的实现方式中,可为被称为成凹区域的屏幕空间的选定部分确定所投影的顶点的密度,使得较高密度的顶点存在于成凹区域中,而所投影的顶点的密度在屏幕空间的剩余区域中较低。这可通过减小被确定为在成凹区域之外的屏幕的部分的顶点的密度来实现。在替代性实施方案中,顶点的密度可在屏幕空间的选定部分中增加,使得较高密度的顶点存在于感兴趣的一个或多个部分中,以及在屏幕空间的一个或多个剩余部分中的顶点的密度不增加。因此,本公开的各方面利用上面所述的类型的屏幕空间变换以通过为将被渲染的屏幕空间的区域有效地减小顶点计算的数量来减小 GPU的计算量。
根据本公开的各方面,顶点计算的减少可由图2所示的图形处理方法200实现。为了理解图形处理方法的上下文,示出计算机图形处理的某些常规元件。特别地,计算机图形程序可产生在三维虚拟空间中的一个或多个对象的三维对象顶点数据201。对象顶点数据201 可表示与在构成一个或多个对象的几何形状的表面上的点对应的在虚拟空间中的点的坐标。对象可由一个或多个几何形状构成。对象顶点数据201可定义一组对象顶点,其对应于在构成对象的一个或多个形状的表面上的点。作为示例而不是作为限制,每个几何形状可由形状标识符(例如圆锥体、球体、立方体、金字塔等)、针对对象的相关位置的虚拟空间中的坐标例如形状的质心的坐标以及用于确定在形状的表面上的点的坐标的相关几何参数表示。作为示例,对于球体的情况,相关位置可以是球体的中心的位置,且相关几何参数可以是球体的半径。
如在202处指示的,对象顶点数据201可能经受以常规方式将对象顶点投影到屏幕空间上用于3D图形处理的过程。在一些实现方式中,投影可近似于顶点到弯曲视见区上的投影。多边形可接着从所投影的顶点产生,如在204处指示的。从所投影的顶点产生多边形可以用常规方式完成。特别地,可以定义在多边形的选定对之间的边,且选定边可作为多边形被关联在一起。因而产生的多边形数据203包括识别构成多边形的顶点和边的信息。多边形数据203由方法200使用,方法200根据本公开的各方面密铺由多边形数据表示的多边形。
方法200包括确定用于屏幕空间的一个或多个成凹区域的成凹数据205,如在206处指示的,以及确定顶点密度信息207,如在208 处指示的。多边形数据203、成凹数据205和顶点密度信息207用于根据本公开的各方面密铺多边形,如在210处指示的,以产生密铺顶点数据209。因而产生的密铺顶点数据然后在后续的图形处理中被使用,如在212处指示的。
作为示例而不是限制,在210处密铺多边形时,成凹数据205和顶点密度信息207可定义密铺参数,其相对于在屏幕空间中的位置而改变并由硬件或软件密铺单元使用来产生多边形的基于三角形的密铺。这样的密铺参数的示例包括所谓的TessFactor,其控制由Direct3D 11可编程图形流水线——其为来自微软公司的Windows 7的部分——产生的网格的精细程度。
概括地说,成凹数据205和顶点密度信息207用于修改常规密铺过程以解释下面的事实:不是屏幕空间的所有区域对观看在显示器上的屏幕空间的图像的人都同等地重要。成凹区域表示由应用确定为对观看者重要且因此被分配可用图形计算资源的较大份额的屏幕空间的部分。成凹区域数据205可包括识别在屏幕空间中的成凹区域的质心的位置、相对于屏幕空间的成凹区域的尺寸和成凹区域的形状的信息。成凹区域可在206处由应用确定为对观看者感兴趣的,因为(a) 它是观看者可能看的区域,(b)它是观看者实际上正在看的区域,或(c)它是希望吸引用户看的区域。
关于(a),成凹区域可被确定为可能以上下文敏感的方式被看。一些实现方式中,应用可确定屏幕空间的某些部分或在对应的三维虚拟空间中的某些对象是“感兴趣的”,且这样的对象可以比在虚拟空间中的其它对象使用更大数量的顶点一致地被绘制。可以用静态或动态的方式将成凹区域从上下文定义为感兴趣的。作为静态定义的非限制性示例,成凹区域可以是屏幕空间的固定部分,例如在屏幕的中心附近的区域,如果确定这个区域是观看者最可能看的屏幕空间的部分。例如,如果应用是显示车辆仪表板和挡风玻璃的图像的驾驶模拟器,则观看者可能看图像的这些部分。在这个示例中,成凹区域可以在感兴趣的区域是屏幕空间的固定部分的意义上静态地被定义。作为动态定义的非限制性示例,在视频游戏中,用户的化身、同伴玩家的化身、敌方人工智能(AI)人物、感兴趣的某些对象(例如在体育游戏中的球)可能是用户感兴趣的。这样的感兴趣的对象可相对于屏幕空间移动,且因此成凹区域可被定义为随着感兴趣的对象一起移动。
关于(b),可能跟踪观看者视线以确定观看者正在看显示器的哪个部分。可通过跟踪用户的头姿势和用户的眼睛的瞳孔的定向的某种组合来实现跟踪观看者的视线。这样的视线跟踪的一些示例例如在美国专利申请公布号2015/0085250、2015/0085251和2015/0085097 中被描述,所有申请的全部内容通过引用被并入本文。可以例如在IEEE TRANSACTIONS ON PATTERN ANALYSIS AND MACHINE INTELLIGENCE(第31卷,第4期,2009年4月,607-626页)中的Erik Murphy的“Head Pose Estimation in Computer Vision:ASurvey”中找到头姿势估计的另外的细节,该文的内容通过引用被并入本文。在Pattern Recognition中的Athanasios Nikolaidis的“Facial feature extraction and posedetermination”(第33卷,(2000年7月7日),第1783-1791页)中描述了可结合本发明的实施方案使用的头姿势估计的其他示例,该文的全部内容通过引用被并入本文。在FG '00 Proceedings of the Fourth IEEE International Conference on Automatic Face and Gesture Recognition(2000年,499-505页)中的Yoshio Matsumoto和Alexander Zelinsky的“An Algorithm for Real-time Stereo Vision Implementation of Head Pose andGaze Direction Measurement”中描述了可结合本发明的实施方案使用的头姿势估计的另外的示例,该文的全部内容通过引用被并入本文。在Image and Vision Computing(第20卷,第7期,2002年2月20日,第499-511页) 中的Qiang Ji和Ruong Hu的“3D Face PoseEstimation from a Monocular Camera”中描述了可结合本发明的实施方案使用的头姿势估计的另外的示例,该文的全部内容通过引用被并入本文。
关于(c),正是常见的电影设备改变场景的聚焦深度以聚焦在感兴趣的一部分上,例如正在讲话的特定演员。这被完成以将观看者的注意力吸引到在焦点上的图像的部分。根据本公开的各方面,可通过将成凹区域移动到屏幕的期望部分使用计算机图形来实现类似的效应,使得该部分具有较大密度的顶点并作为结果更详细地被渲染。
除了定位质心以外,在206处确定成凹区域数据也可涉及确定成凹区域相对于屏幕空间的尺寸和形状。可提前确定成凹区域的形状,例如圆形、椭圆形、任意形状。成凹区域的尺寸可取决于观看者离屏幕的距离和屏幕的尺寸。通常,屏幕越大以及观看者到屏幕越近,成凹区域相对于屏幕尺寸就越小。相反,屏幕越小以及观看者离屏幕越远,成凹区域相对于屏幕尺寸就越大。
对于固定显示器,例如电视机、平板计算机显示器、智能手机显示器和计算机监视器,屏幕尺寸是固定的且可从关于显示器的元数据来确定。当显示器连接到处理系统例如计算机或游戏控制台时,可交换这样的元数据。对于投影型显示器,可从关于从投影仪到墙壁或图像被投影到的其它表面的距离的额外信息确定屏幕的尺寸。
图3A示出根据上面所述的方面通过屏幕位置来确定成凹区域的示例。在图3A所示的示例中,屏幕空间分成在像素上相等尺寸的子区段。示例屏幕空间的一个或多个中央子区段被期望维持或增加密铺顶点的密度,而更远离中心的子区段具有密度越来越低的密铺顶点。成凹数据205可指定哪个屏幕空间子区段是感兴趣的成凹区域的部分280以及哪个不是。在一些实现方式中,可以有由成凹数据205指定的两个或更多个感兴趣的成凹区域。可根据成凹数据来调节顶点密度信息207,使得顶点的密度在包含感兴趣的一部分280的屏幕的一个或多个子区段中最高,以及在更远离成凹部分的子区段中越来越低,如图3B所示。作为示例而不是作为限制,给定输入多边形(例如补片)的密铺因子可基于它的重要性(例如,如从在屏幕空间中的输入多边形的位置和成凹数据205确定的)来被调节。可在硬件和软件中实现的密铺单元接着在210处产生具有如由密铺因子确定的期望顶点密度的输出多边形(例如三角形)。
结合确定成凹区域,可确定在成凹区域中和在成凹区域之外的顶点的密度,如在208处指示的。作为示例而不是作为限制,顶点密度信息207可包括成凹区域的最大密度,且在成凹区域之外的区域的最小密度可被确定。术语“最大密度”和“最小密度”在本文作为方便的术语被使用。最大通常指具有比剩余屏幕空间区域的对应密度分布更高的平均顶点密度的成凹区域的密度分布。同样,最小密度通常指具有比成凹屏幕空间区域的对应密度分布更低的平均顶点密度的剩余区域的密度分布。
作为屏幕空间中的位置的函数的顶点密度值(例如最大和最小密度值)可以提前被固定并存储在存储器中,在这种情况下在图形处理期间确定值是从存储器检索值的不重要的事件。顶点密度值可取决于多个因素,包括(a)像素密度屏幕空间,(b)最大可用图形处理负荷能力,(c)观看者到屏幕的接近度,(d)以像素为单位的屏幕的尺寸,以及(e)被呈现的图形的性质。
关于(a),在屏幕空间中的像素密度越高,最大和最小密度值就可能越高。关于(b),较大的可用图形处理负荷能力意味着来自顶点密度的调节的计算节省可能是较不关键的,导致更高的最大和最小密度值。减小的可用图形处理负荷能力意味着来自顶点密度的调节的计算节省更关键,导致最小密度和可能还有最大密度的较低值。
关于(c),当观看者移动得更靠近屏幕时,对成凹区域中的细节的需要增加(导致最大密度的更大值)且对在成凹区域之外的细节的需要减小(允许最小密度的较小值)。关于(d),当屏幕尺寸减小时,成凹区域相对于屏幕变得较大。在屏幕上可用的较少的像素通常意味着不能使最小值变得太小。
在某些实现方式中,可基于可用的计算资源和场景的复杂性使用闭环来定义在感兴趣的一个或多个成凹部分280和剩余部分之间的密度的过渡(或“衰减”)。在某些实现方式中,可提前静态地定义成凹转向元件(确定屏幕的哪个或哪些部分是感兴趣的部分)、渲染的场景的起始和末尾网格密度以及衰减函数。在替代性实施方案中,可基于在程序区中的软件代理来动态地定义这些元件,软件代理分析帧数据以确定感兴趣的点或区域。在替代性实施方案中,这些元件可由游戏开发者预定义。
图3C、图3D和图3E示出在屏幕空间的成凹部分和剩余部分之间的顶点密度中的“衰减”的示例。图3C示出相对于离成凹屏幕空间区域的距离的在最大和最小密度之间的阶梯函数过渡的示例。在这种情况下,顶点密度具有在成凹区域内的最大值和在其它地方的最小值。
图3D示出相对于离成凹屏幕空间区域的距离的在最大和最小密度之间的线性函数过渡的示例。在过渡区中,密度线性地取决于离最大或最小密度的区域的距离,取决于坐标系如何被定义。
图3E示出相对于离成凹屏幕空间区域的距离的在最大和最小密度之间的S形(“S”形)函数过渡的示例。通常,任何平滑的正“隆起形”函数的积分将是S形的。S形函数的示例包括但不限于逻辑函数、广义逻辑函数,S形函数包括普通反正切、双曲正切、古德曼函数和误差函数)、互补误差函数(1-erf(x))和代数函数如
x0=S形的中点的x值,
L=曲线的最大值,以及
k=曲线的陡度。
在额外的替代性实施方案中,这些元件可以动态地由外部信号定义。外部信号的示例包括但不限于视线跟踪、激光指针跟踪、手指跟踪、头跟踪、与控制器或外围设备一起跟踪、跟踪在VR环境中的另一玩家人物或检测并解释在人物之间的对话。在外部信号包括视线跟踪的实施方案中,外部信号可包括但不限于头和瞳孔跟踪的组合。在这样的实施方案中,可以用摄像机跟踪用户的瞳孔。在外部信号包括头跟踪的实施方案中,用户的头的跟踪可包括但不限于用惯性传感器跟踪用户的头和/或在HMD设备上的光源的跟踪。
根据本公开的各方面,某些实现方式可利用现有的表面细分软件例如开放源软件(诸如Open Subdiv)来从少量顶点计算平滑的限制表面。在这样的实施方案中,在210处的多边形密铺可密铺感兴趣的一个或多个成凹部分280以跟随平滑的限制表面。可使用较大的误差容限来密铺剩余部分。
在212处执行后续图形操作可包括像将密铺顶点数据存储在存储器中或将密铺顶点数据传输到另一处理系统一样简单的事情。此外,这样的后续处理可包括图形处理流水线的公知阶段。作为示例而不是作为限制,对密铺顶点执行图元装配以在屏幕空间中产生一个或多个图元。可对一个或多个图元执行扫描转换以确定哪个像素或哪些像素是对应图元的部分。可接着通过执行像素处理以将像素值分配到一个或多个像素来产生完成的帧。在一些实现方式中,完成的帧可被存储在存储器中或显示在显示设备上。下面关于图4和图5讨论图形流水线的额外细节。
系统和装置
本公开的各方面包括配置成实现图形处理的图形处理系统,其中有效分辨率通过相对于被确定为感兴趣的部分的屏幕空间的部分调节屏幕空间的选定部分的顶点的密度按屏幕位置而改变。作为示例而不是作为限制,图4示出根据本公开的各方面的可用于实现图形处理的计算机系统400的方框图。根据本公开的各方面,系统400可以是嵌入式系统、移动电话、个人计算机、平板计算机、便携式游戏设备、工作站、游戏控制台等。
系统400通常包括中央处理器单元(CPU)402、图形处理器单元(GPU)404以及CPU和GPU都可访问的存储器408。系统400 还可包括公知的支持功能410,其可例如经由数据总线409与系统的其它部件通信。这样的支持功能可包括但不限于输入/输出(I/O)元件411、电源(P/S)412、时钟(CLK)413和高速缓存414。除了高速缓存414以外,GPU 404还可包括它自己的GPU高速缓存414G,以及GPU可配置成使得在GPU 404上运行的程序可将GPU高速缓存414G从头读到尾或从头写到尾。
系统400可包括显示设备416以将渲染的图形417呈现给用户。在替代性实现方式中,显示设备416是结合系统400工作的单独部件。显示设备416可以在平板显示器、头戴式显示器(HMD)、阴极射线管(CRT)屏幕、投影仪或可显示可见文本、数字、图形符号或图像的其它设备的形式中。在特别有用的实现方式中,显示器416是具有带有90度或更大(例如114度或更大)的视角的屏幕的大视场(FOV) 设备。显示设备416显示根据本文所述的各种技术处理的渲染的图形图像417(例如完成的帧460)。
系统400可以任选地包括大容量存储设备415,例如磁盘驱动器、 CD-ROM驱动器、闪存、磁带驱动器或类似物以存储程序和/或数据。系统400还可以任选地包括用户界面单元418以便于在系统400和用户之间的交互作用。用户界面418可包括键盘、鼠标、操纵杆、光笔、游戏控制器或可结合图形用户界面(GUI)使用的其它设备。系统400 还可包括网络接口420以使设备能够通过网络422与其它设备通信。网络422可以是例如局域网(LAN)、广域网例如互联网、个人区域网络例如蓝牙网络或其它类型的网络。这些部件可在硬件、软件或固件或这些中的两个或多个的某种组合中实现。
CPU 402和GPU 404可以各自包括一个或多个处理器核心,例如单个核心、两个核心、四个核心、八个核心或更多核心。存储器 408可以在提供可寻址存储器例如RAM、DRAM等的集成电路的形式中。存储器408可包括专用图形存储器428,其可存储图形资源并为图形渲染流水线临时存储数据的图形缓冲器405。图形缓冲器405 可包括例如用于存储顶点参数值的顶点缓冲器VB、用于保持顶点索引的索引缓冲器IB、用于存储图形内容的深度值的深度缓冲器(例如Z缓冲器)DB、模板缓冲器SB、用于存储完成的帧以发送到显示器的帧缓冲器FB以及其它缓冲器。在图4所示的示例中,图形存储器428被示为主存储器的部分。在替代性实现方式中,图形存储器 428可以是可能集成到GPU 404内的单独的硬件部件。存储器408(可能图形存储器428)也可临时存储多边形数据203、成凹数据205、顶点密度数据207和密铺顶点数据209。
作为示例而不是作为限制,CPU 402和GPU 404可经由一个或多个总线409访问存储器408。在一些情况下,系统400包括两个或更多个不同的总线可能是有用的。存储器408可包含可由CPU 402 和GPU 404访问的数据。GPU 404可包括配置成并行地执行图形处理任务的多个计算单元。每个计算单元可包括它自己的专用本地存储器存储区,例如本地数据共享。替代地,计算单元可以每个访问存储器408或专用图形存储器428。
CPU可配置成执行CPU代码403C,其可包括利用图形、编译器和图形API的应用。图形API可配置成向由GPU实现的程序发出绘图命令。CPU代码403C也可实现物理模拟和其它功能。GPU 404可配置成如上面所讨论操作。特定来说,GPU可执行GPU代码403G,可包括配置成实现上面所述的图2的方法200的指令。此外,GPU 代码403G也可实现公知的着色器,例如计算着色器CS、顶点着色器 VS和像素着色器PS。为了便于数据在计算着色器CS和顶点着色器 VS之间通过,系统可包括一个或多个缓冲器405,其可包括帧缓冲器FB。GPU代码403G也可以任选地实现其它类型的着色器(未示出),例如像素着色器或几何着色器。每个计算单元可包括它自己的专用本地存储器存储区,例如本地数据共享。GPU 404可包括一个或多个纹理单元406,其配置成执行用于将纹理应用于图元的某些操作作为图形流水线的部分。
根据本公开的某些方面,CPU代码403C和GPU代码403g以及系统400的其它元件配置成实现图形流水线,其中GPU 404可接收多边形数据203。多边形数据203可从通过由CPU402对CPU代码 403C的执行而实现的计算例如在三维虚拟空间中的对象的物理模拟产生。GPU 404执行多边形顶点到显示设备416的屏幕空间上的投影和因而产生的投影多边形的密铺。GPU 404根据成凹数据205和顶点密度数据207来调节顶点的密度用于多边形的密铺,使得顶点的密度在屏幕空间的选定成凹部分中较高而在剩余部分中较低。
GPU 404可接着对顶点执行图元装配以从顶点到屏幕空间上的投影在屏幕空间中产生一个或多个图元。可接着对一个或多个图元执行扫描转换以确定屏幕空间的哪个像素是对应图元的部分。GPU 404 可接着通过执行像素处理以将像素值分配到作为对应图元的部分的一个或多个像素来产生完成的帧460。完成的帧可被存储在存储器 408或图形存储器428中(例如在帧缓冲器FB中)或显示在显示设备416上。
可在软件中例如由被实现为计算着色器CS的前端执行多边形顶点到屏幕空间上的投影和图形流水线的其它相关部分。替代地,顶点到屏幕空间上的投影和图形流水线的其它相关部分可由配置成实现这些功能的特别设计的硬件部件HW实现。
本公开的各方面还包括成凹数据205和/或顶点密度数据207动态地被调节的实现方式。例如,可结合视线跟踪来定义成凹区域。在这样的实现方式中,系统400包括用于跟踪用户的视线、即用户的眼睛指向哪里并使这个信息与用户正看的对应屏幕位置有关的硬件。这样的硬件的一个示例可包括在相对于显示设备416的屏幕的已知位置上并指向用户的一般方向的数字摄像机。数字摄像机可以是用户界面418的部分或单独的部件。CPU代码403C可包括图形分析软件,其分析来自摄像机的图像以确定(a)用户是否在图像中;(b)用户是否面向摄像机;(c)用户是否面向屏幕;(d)用户的眼睛是否是可见的;(e)用户的眼睛的瞳孔相对于用户的头的定向;以及(f) 用户的头相对于摄像机的定向。从摄像机相对于屏幕的已知位置和定向、用户眼睛的瞳孔相对于用户的头的定向和用户的头相对于摄像机的定向中,图像分析软件可确定用户是否正看屏幕,且如果是,则确定用户正看的屏幕的部分的屏幕空间坐标。CPU代码403C可接着将这些屏幕坐标传递到GPU代码403G,其可确定包含成凹部分(即感兴趣的部分)的一个或多个子区段。GPU代码403G可接着相应地修改顶点的调节,使得分辨率在包含成凹部分的一个或多个子区段中最高以及在更远离成凹部分的子区段中逐渐更低,如图3B所示。
作为示例而不是作为限制,特别设计的硬件HW、纹理单元406、某些类型的着色器和下面所述的图形流水线的其它部分可由专用硬件例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)或片上系统(SoC或SOC)实现。
如在本文使用的且如通常被本领域中技术人员通常理解的,专用集成电路(ASIC)是对特定用途定制的而不是打算用于通用用途的集成电路。
如在本文使用的且如通常被本领域中技术人员通常理解的,现场可编程门阵列(FPGA)是设计成在制造之后由消费者或设计者配置的、因此是“现场可编程的”集成电路。通常使用类似于用于ASIC 的语言的硬件描述语言(HDL)来规定FPGA配置。
如在本文使用的且如通常被本领域中技术人员通常理解的,芯片上系统或片上系统(SoC或SOC)是将计算机或其它电子系统的所有部件集成到单个芯片内的集成电路(IC)。它可包含数字、模拟、混合信号和常常射频功能,都在单个芯片衬底上。一般应用在嵌入式系统的领域中。
一般SoC包括下面的硬件部件:
一个或多个处理器核心(例如微控制器、微处理器或数字信号处理器(DSP)核心。
存储器块,例如只读存储器(ROM)、随机存取存储器(RAM)、电可擦除可编程只读存储器(EEPROM)和闪存。
定时源,例如振荡器或锁相环。
外围设备,例如计数器-定时器、实时定时器或加电重置发生器。
外部接口,例如工业标准例如通用串行总线(USB)、火线、以太网、通用异步接收机/发射机(USART)、串行外围接口(SPI)总线。
模拟接口,包括模数转换器(ADC)和数模转换器(DAC)。
电压调节器和功率管理电路。
这些部件由专有或工业标准总线连接。直接存储器存取(DMA) 控制器直接在外部接口和存储器之间路由数据,绕过处理器核心并从而增加SoC的数据吞吐量。
一般SoC包括上面所述的硬件部件和控制处理器核心、外围设备和接口的可执行指令(例如软件或固件)两者。
在一些实现方式中,图形流水线的部分的一些或所有功能可以替代地由软件可编程通用计算机处理器例如由GPU 404执行的计算着色器CS所执行的适当配置的软件指令实现。这样的指令可体现在计算机可读介质例如存储器408、图形存储器428或存储设备415中。
图形流水线
根据本公开的各方面,系统400可配置成结合图形渲染流水线的部分来实现图2的方法200。图5示出根据本公开的各方面的图形渲染流水线430的示例。
渲染流水线430可配置成将图像渲染为描绘具有在虚拟空间(有时在本文被称为“世界空间”)中的二维或优选地三维几何结构的场景的图像。流水线的早期阶段可包括在场景被光栅化并转换到屏幕空间作为适合于在显示设备416上输出的一组分立图片元件之前在虚拟空间中执行的操作。在整个流水线中,被包含在图形存储器428中的各种资源可在流水线阶段处被利用,且到阶段的输入和输出在图形的最终值被确定之前可临时存储在被包含在图形存储器中的缓冲器中。
渲染流水线多边形可在输入数据例如多边形数据203上操作,多边形数据203表示由在虚拟空间中建立并具有相对于场景中的坐标而定义的几何结构的一组顶点定义的一个或多个虚拟对象。流水线的早期阶段可包括被广泛地分类为在图5中的顶点处理阶段434的东西,且这可包括各种计算以处理在虚拟空间中的对象的顶点。顶点处理阶段可包括顶点着色计算436,其可操纵在场景中的顶点的各种参数值,例如位置值(例如X-Y坐标和Z深度值)、颜色值、照明值、纹理坐标等。优选地,顶点着色计算436由GPU 404的一个或多个可编程顶点着色器VS执行。顶点处理阶段包括额外的顶点处理计算,例如将多边形顶点投影到屏幕空间上的几何着色器计算437和从所投影的多边形顶点产生新顶点和新几何结构的密铺着色器计算438。密铺计算细分场景几何结构和几何着色计算以产生在最初在由CPU代码403C实现的应用中建立的那些场景几何结构之外的新场景几何结构。正是在这个阶段成凹密铺可出现,以及在3D网格或线框中的顶点的密度可由密铺着色器计算438调节,如根据成凹数据205和顶点密度数据207定义的。一旦顶点处理阶段434完成,场景就由密铺顶点数据209所表示的一组密铺顶点定义。此外,每个密铺顶点具有一组顶点参数值439。顶点参数值439可包括纹理坐标、切线、照明值、颜色、位置等。
流水线430可接着继续进行到与将场景几何结构转换到屏幕空间和一组分立的图片元件、即像素相关联的光栅化处理阶段440。虚拟空间几何结构(其可以是三维的)通过操作变换成屏幕空间几何结构(其一般是二维的),所述操作可在本质上计算对象和顶点从虚拟空间到场景的观察窗口(或“视见区”)的投影。顶点的子集被分组以定义在屏幕空间中的图元的集合。根据本公开的各方面,光栅化阶段440使顶点到弯曲视见区上的投影近似。
根据本公开的各方面,图形流水线430包括光栅化阶段的前端 441。前端可被实现为光栅化阶段的部分或为在顶点处理434和光栅化阶段440之间的中间阶段。在图5中描绘的示例中,前端441被示为光栅化阶段440的部分。然而,本公开的各方面不限于这样的实现方式。在某些实现方式中,前端441完全或部分地作为在GPU 404 上运行的计算着色器CS来实现。然而,本公开的各方面不限于这样的实现方式。
可通过同时参考图4和图5来理解前端441的操作和本公开的有关方面。
在图5中描绘的光栅化处理阶段440包括图元装配操作442,其可建立由在场景中的每组顶点定义的图元。每个顶点可由索引定义,且可相对于这些顶点索引来定义每个图元,顶点索引可被存储在图形存储器428中的索引缓冲器IB中。图元优选地包括各自由三个顶点定义的三角形,但也可包括点图元、线图元和其它多边形形状。在图元装配阶段442期间,某些图元可以任选地被挑选。例如,索引指示某个缠绕顺序的那些图元可被认为是面向后的,并可从场景被挑选。
作为示例而不是作为限制,在图元是在由三维虚拟空间中的顶点定义的三角形的形式中的场合,图元装配确定每个三角形在显示器 416的屏幕上位于哪里。修剪和屏幕空间变换操作一般由图元装配单元442执行。任选的扫描转换操作444对在每个像素处的图元采样并在样本由图元覆盖时从图元产生片元(有时被称为像素)用于进一步处理。扫描转换操作包括获取图元的操作,图元被转换为屏幕空间坐标并确定哪些像素是那个图元的部分。在一些实现方式中,多个样本在图元内在扫描转换操作444期间被获取,扫描转换操作444可用于抗混叠目的。在某些实现方式中,不同的像素可以不同地被采样。例如,一些边缘像素可包含比中心像素更低的采样密度以为某些类型的显示设备416例如头戴式显示器(HMD)优化渲染的某些方面。在扫描转换444期间从图元产生的片元(或“像素”)可具有参数值,其可从创建它们的图元的顶点的顶点参数值439内插到像素的位置。光栅化阶段440可包括参数内插操作阶段446以计算这些内插的片元参数值449,其可用作用于在流水线的稍后阶段进一步处理的输入。
根据本公开的各方面,在图元装配442和扫描转换444之间,解释屏幕的不同子区段具有不同的像素分辨率的事实的某些操作可能发生。在特定的实现方式中,一旦图元的顶点的屏幕位置是已知的,粗略光栅化443就可完成以找到图元重叠的所有预定义屏幕子区段 (有时在本文被称为粗略光栅化瓦片或超级瓦片)。对于图元重叠的每个子区段,图元的顶点位置被调整以解释子区段的像素分辨率。扫描转换444和后续处理阶段通过只对一个或多个相关子区段的特定数量的活动像素执行像素处理来产生最终的像素值。
在某些实现方式中,GPU 404可配置成在软件中实现子区段之间的图元的粗略划分和硬件中实现顶点的投影、图元装配和扫描转换。在一些这样的实现方式中,GPU 404配置成在软件中使子区段索引与图元顶点相关联,每个子区段索引从在硬件中实现的调色板选择屏幕空间投影和视见区。在其它这样的实现方式中,GPU 404配置成在软件中使子区段索引与图元顶点索引相关联,每个子区段索引从在硬件中实现的调色板选择屏幕空间投影和视见区。
图形流水线430还包括通常在图5中的450指示的像素处理操作,以进一步操纵内插的参数值449并执行确定片元如何贡献于显示器 416的最终像素值的另外的操作。根据本公开的各方面,可以用常规方式执行这些任务。像素处理任务包括像素着色计算452,其进一步操纵片元的内插参数值449。像素着色计算452可由可编程像素着色器或在GPU 404中的特制硬件执行。可在光栅化处理阶段440期间基于图元的采样来发起像素着色器调用448。像素着色计算452可将值输出到在图形存储器428中的一个或多个缓冲器405,其有时被称为渲染目标RT或如果是多个,则是多个渲染目标(MRT)。MRT 允许像素着色器任选地输出到多于一个渲染目标,每个具有相同的屏幕尺寸但可能具有不同的像素格式。
像素处理操作450一般包括纹理映射操作454,其可在某个程度上由一个或多个着色器(例如像素着色器PS、计算着色器CS、顶点着色器VS或其它类型的着色器)并在某个程度上由纹理单元406执行。像素着色器计算452包括从屏幕空间坐标XY计算纹理坐标UV,以及将纹理坐标发送到纹理操作454,以及接收纹理数据TX。纹理坐标UV可以用任意方式从屏幕空间坐标XY被计算,但一般从内插输入值或有时从前面的纹理操作的结果被计算。梯度Gr常常直接从纹理坐标的象限由纹理单元406(纹理操作硬件单元)计算,但可以任选地由像素着色器计算452明确地计算并传递到纹理操作454而不是依赖于纹理单元406来执行默认计算。
纹理操作456通常包括下面的阶段,其可由像素着色器PS和纹理单元406的某种组合执行。首先,每像素位置XY一个或多个纹理坐标UV被产生并用于为每个纹理映射操作提供坐标集合。梯度值 Gr从纹理坐标UV被计算并用于确定纹理的细节层次(LOD)以应用于图元。
像素处理450通常在渲染输出操作456中达到最高点,渲染输出操作456可包括通常被称为光栅操作(ROP)的东西。光栅化操作(ROP) 简单地运行每像素多次,在多个渲染目标(MRT)当中对于每个渲染目标一次。在输出操作456期间,最终像素值459可在帧缓冲器中被确定,帧缓冲器可任选地包括合并片元、应用模板、深度测试和某些每样本处理任务。最终像素值459包括对所有活动的渲染目标(MRT) 的所收集的输出。GPU 404使用最终像素值459来构成完成的帧460,其可以任选地实时显示在显示设备416的像素上。
在一些实现方式中,图形流水线可实现修改的光栅化处理440和 /或修改的像素处理450,其中屏幕分辨率和用于像素处理的计算负荷根据屏幕空间位置而改变。在例如共同未决的美国专利申请号 14/246,066和14/246,062中描述了这样的修改的图形处理的示例,这两个专利申请都在2014年4月5日提交,这两个专利申请的全部内容都通过引用被并入本文。通过修改图形流水线以将计算资源聚集在屏幕空间的成凹区域上,可减小在整个图形流水线中的总计算负荷。作为示例,在一些实现方式中,CPU代码403c、GPU代码403G和纹理单元406可进一步配置成结合屏幕位置相关可变分辨率来实现对纹理映射操作的修改。特定来说,像素着色器PS和纹理单元406可配置成产生每像素位置XY一个或多个纹理坐标UV以为一个或多个纹理映射操作提供坐标集合、从纹理坐标UV计算梯度值Gr并使用梯度值来确定纹理的细节层次(LOD)以应用于图元。这些梯度值可被调整以解释可变分辨率以及从在样本位置上的正交性的偏差。
额外的方面
本公开的各方面还包括非暂时性计算机可读介质,其具有体现在其中的计算机可执行指令,计算机可执行指令在被执行时实现例如如上面关于图2、图4和图5所述的根据上面提到的方面的图形处理。
虽然上文是对本发明的优选实施方案的完整描述,但是可能使用各种替代方案、修改和等效形式。因此,本发明的范围连同它们的等效形式的全范围不应参考上面的描述来确定,而应替代地参考所附权利要求书来确定。本文所述的任何特征——不管是否是优选的——都可与本文所述的任何其它特征——不管是否是优选的——组合。在随附的权利要求书中,不定冠词“A”或“An”指跟在冠词后面的一个或多个项目的数量,除了另外明确规定。所附权利要求书不应被解释为包括手段加功能限制,除非这样的限制使用短语“用于…的手段”在给定权利要求中被明确地陈述。
Claims (32)
1.一种用于使用具有处理单元的图形处理系统进行图形处理的方法,其包括:
使用所述处理单元,确定表示显示设备的屏幕空间的一个或多个成凹区域的数据;
使用所述处理单元,确定表示所述屏幕空间的所述一个或多个成凹区域的顶点的第一密度分布以及所述屏幕空间的一个或多个剩余区域的顶点的第二密度分布的顶点密度数据,其中所述第一密度高于所述第二密度;
执行被投影到所述显示设备的所述屏幕空间上的虚拟空间中的场景中的一个或多个对象的第一组多边形的密铺以划分所述第一组多边形以产生由表示一组密铺顶点的密铺顶点数据表示的所述一个或多个对象的第二组多边形,其中所述一组密铺顶点由在所述屏幕空间的所述一个或多个成凹区域中的顶点的所述第一密度分布和由在所述屏幕空间的所述一个或多个剩余区域中的顶点的所述第二密度分布表征;
使用所述处理单元,对所述第二组多边形执行后续图形操作,
其中,所述顶点的所述第一密度分布跟随平滑的限制表面,并且所述顶点的所述第二密度分布具有比所述平滑的限制表面更大的误差容限。
2.根据权利要求1所述的方法,其中所述对所述第二组多边形执行后续图形操作包括将所述密铺顶点数据存储在存储器中。
3.根据权利要求1所述的方法,其中所述对所述第二组多边形执行后续图形操作包括将所述密铺顶点数据传输到另一处理系统。
4.根据权利要求1所述的方法,其中所述对所述第二组多边形执行后续图形操作包括对所述一组密铺顶点执行图元装配以在屏幕空间中产生一个或多个图元。
5.根据权利要求1所述的方法,其中所述对所述第二组多边形执行后续图形操作包括:
对所述一组密铺顶点执行图元装配以在屏幕空间中产生一个或多个图元;以及
对所述一个或多个图元执行扫描转换以确定多个像素中的哪个像素或哪些像素是所述一个或多个图元的对应图元的部分。
6.根据权利要求1所述的方法,其中所述对所述第二组多边形执行后续图形操作包括:
对所述一组密铺顶点执行图元装配以在屏幕空间中产生一个或多个图元;以及
对所述一个或多个图元执行扫描转换以确定多个像素中的哪个像素或哪些像素是所述一个或多个图元的对应图元的部分;以及
通过执行像素处理以将像素值分配到作为所述对应图元的部分的一个或多个像素来产生完成的帧。
7.根据权利要求1所述的方法,其中所述对所述第二组多边形执行后续图形操作包括:
对所述一组密铺顶点执行图元装配以在屏幕空间中产生一个或多个图元;以及
对所述一个或多个图元执行扫描转换以确定多个像素中的哪个像素或哪些像素是所述一个或多个图元的对应图元的部分;
通过执行像素处理以将像素值分配到作为所述对应图元的部分的一个或多个像素来产生完成的帧;以及
将所述完成的帧存储在存储器中或将所述完成的帧显示在所述显示设备上。
8.根据权利要求1所述的方法,其中顶点的所述第一密度分布和顶点的所述第二密度分布被静态地定义。
9.根据权利要求1所述的方法,其中顶点的所述第一密度分布和顶点的所述第二密度分布被动态地定义。
10.根据权利要求1所述的方法,其中所述一个或多个成凹区域由外部信号定义。
11.根据权利要求10所述的方法,其中所述外部信号表示在所述显示设备上用户的视线指向的位置。
12.根据权利要求1所述的方法,其中所述一个或多个成凹区域包括接近所述屏幕空间的中心的所述屏幕空间的一个或多个部分。
13.根据权利要求1所述的方法,其中顶点的所述第二密度是所述屏幕空间的所述一个或多个剩余区域离所述屏幕空间的所述一个或多个成凹区域的相对距离的函数。
14.根据权利要求1所述的方法,其中所述显示设备的所述屏幕空间是弯曲表面。
15.根据权利要求1所述的方法,其中所述显示设备由90度或更大的视场表征。
16.根据权利要求1所述的方法,其中所述显示设备是头戴式显示设备。
17.根据权利要求1所述的方法,其中使用所调节的一组投影顶点执行后续图形操作包括产生对应于配置成在所述显示设备上呈现的完成的帧的数据。
18.一种用于进行图形处理的系统,其包括:
处理单元;
存储器;
指令,其存储在所述存储器中并可由所述处理单元执行,其中所述指令配置成当由所述处理单元 执行时使所述系统实现用于进行图形处理的方法,所述方法包括,
使用所述处理单元,确定表示显示设备的屏幕空间的一个或多个成凹区域的数据;
使用所述处理单元,确定表示所述屏幕空间的所述一个或多个成凹区域的顶点的第一密度分布以及所述屏幕空间的一个或多个剩余区域的顶点的第二密度分布的顶点密度数据,其中所述第一密度高于所述第二密度;
执行被投影到所述显示设备的所述屏幕空间上的虚拟空间中的场景中的一个或多个对象的第一组多边形的密铺以划分所述第一组多边形以产生由表示一组密铺顶点的密铺顶点数据表示的所述一个或多个对象的第二组多边形,其中所述一组密铺顶点由在所述屏幕空间的所述一个或多个成凹区域中的顶点的所述第一密度分布和由在所述屏幕空间的所述一个或多个剩余区域中的顶点的所述第二密度分布表征;
使用所述处理单元,对所述第二组多边形执行后续图形操作,
其中,所述顶点的所述第一密度分布跟随平滑的限制表面,并且所述顶点的所述第二密度分布具有比所述平滑的限制表面更大的误差容限。
19.根据权利要求18所述的系统,其中所述对所述第二组多边形执行后续图形操作包括将所述密铺顶点数据存储在存储器中。
20.根据权利要求18所述的系统,其中所述对所述第二组多边形执行后续图形操作包括将所述密铺顶点数据传输到另一处理系统。
21.根据权利要求18所述的系统,其中所述对所述第二组多边形执行后续图形操作包括对所述一组密铺顶点执行图元装配以在屏幕空间中产生一个或多个图元。
22.根据权利要求18所述的系统,其中所述对所述第二组多边形执行后续图形操作包括:
对所述一组密铺顶点执行图元装配以在屏幕空间中产生一个或多个图元;以及
对所述一个或多个图元执行扫描转换以确定多个像素中的哪个像素或哪些像素是所述一个或多个图元的对应图元的部分。
23.根据权利要求18所述的系统,其中所述对所述第二组多边形执行后续图形操作包括:
对所述一组密铺顶点执行图元装配以在屏幕空间中产生一个或多个图元;以及
对所述一个或多个图元执行扫描转换以确定多个像素中的哪个像素或哪些像素是所述一个或多个图元的对应图元的部分;以及
通过执行像素处理以将像素值分配到作为所述对应图元的部分的一个或多个像素来产生完成的帧。
24.根据权利要求18所述的系统,其中所述对所述第二组多边形执行后续图形操作包括:
对所述一组密铺顶点执行图元装配以在屏幕空间中产生一个或多个图元;以及
对所述一个或多个图元执行扫描转换以确定多个像素中的哪个像素或哪些像素是所述一个或多个图元的对应图元的部分;
通过执行像素处理以将像素值分配到作为所述对应图元的部分的一个或多个像素来产生完成的帧;以及
将所述完成的帧存储在所述存储器中或将所述完成的帧显示在所述显示设备上。
25.根据权利要求18所述的系统,其中顶点的所述第一密度分布和顶点的所述第二密度分布被静态地定义。
26.根据权利要求18所述的系统,其中顶点的所述第一密度分布和顶点的所述第二密度分布被动态地定义。
27.根据权利要求18所述的系统,其中所述一个或多个成凹区域包括接近所述屏幕空间的中心的所述屏幕空间的一个或多个部分。
28.根据权利要求18所述的系统,其中顶点的所述第二密度是所述屏幕空间的所述一个或多个剩余区域离所述屏幕空间的所述一个或多个成凹区域的相对距离的函数。
29.根据权利要求18所述的系统,其中所述显示设备的所述屏幕空间是弯曲表面。
30.根据权利要求18所述的系统,其中所述显示设备由90度或更大的视场表征。
31.根据权利要求18所述的系统,其中使用所调节的一组投影顶点执行后续图形操作包括产生对应于配置成在所述显示设备上呈现的完成的帧的数据。
32.一种非暂时性计算机可读介质,其上体现有计算机可执行指令,所述计算机可执行指令在被执行时实现用于使用具有处理单元的图形处理系统进行图形处理的方法,所述方法包括:
使用所述处理单元,确定表示显示设备的屏幕空间的一个或多个成凹区域的数据;
使用所述处理单元,确定表示所述屏幕空间的所述一个或多个成凹区域的顶点的第一密度分布以及所述屏幕空间的一个或多个剩余区域的顶点的第二密度分布的顶点密度数据,其中所述第一密度高于所述第二密度;
执行被投影到所述显示设备的所述屏幕空间上的虚拟空间中的场景中的一个或多个对象的第一组多边形的密铺以划分所述第一组多边形以产生由表示一组密铺顶点的密铺顶点数据表示的所述一个或多个对象的第二组多边形,其中所述一组密铺顶点由在所述屏幕空间的所述一个或多个成凹区域中的顶点的所述第一密度分布和由在所述屏幕空间的所述一个或多个剩余区域中的顶点的所述第二密度分布表征;
使用所述处理单元,对所述第二组多边形执行后续图形操作,
其中,所述顶点的所述第一密度分布跟随平滑的限制表面,并且所述顶点的所述第二密度分布具有比所述平滑的限制表面更大的误差容限。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/927,157 US10726619B2 (en) | 2015-10-29 | 2015-10-29 | Foveated geometry tessellation |
US14/927,157 | 2015-10-29 | ||
PCT/US2016/058718 WO2017074961A1 (en) | 2015-10-29 | 2016-10-25 | Foveated geometry tessellation |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108351864A CN108351864A (zh) | 2018-07-31 |
CN108351864B true CN108351864B (zh) | 2022-12-23 |
Family
ID=58631050
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680062055.2A Active CN108351864B (zh) | 2015-10-29 | 2016-10-25 | 成凹几何密铺 |
Country Status (5)
Country | Link |
---|---|
US (2) | US10726619B2 (zh) |
EP (1) | EP3368999B1 (zh) |
JP (2) | JP7004645B2 (zh) |
CN (1) | CN108351864B (zh) |
WO (1) | WO2017074961A1 (zh) |
Families Citing this family (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11403099B2 (en) | 2015-07-27 | 2022-08-02 | Sony Interactive Entertainment LLC | Backward compatibility by restriction of hardware resources |
US9857871B2 (en) | 2015-09-04 | 2018-01-02 | Sony Interactive Entertainment Inc. | Apparatus and method for dynamic graphics rendering based on saccade detection |
US10726619B2 (en) | 2015-10-29 | 2020-07-28 | Sony Interactive Entertainment Inc. | Foveated geometry tessellation |
US10134188B2 (en) * | 2015-12-21 | 2018-11-20 | Intel Corporation | Body-centric mobile point-of-view augmented and virtual reality |
KR102558737B1 (ko) * | 2016-01-04 | 2023-07-24 | 삼성전자주식회사 | 3d 렌더링 방법 및 장치 |
US10643296B2 (en) | 2016-01-12 | 2020-05-05 | Qualcomm Incorporated | Systems and methods for rendering multiple levels of detail |
US10643381B2 (en) * | 2016-01-12 | 2020-05-05 | Qualcomm Incorporated | Systems and methods for rendering multiple levels of detail |
US10303488B2 (en) | 2016-03-30 | 2019-05-28 | Sony Interactive Entertainment Inc. | Real-time adjustment of application-specific operating parameters for backwards compatibility |
US10915333B2 (en) | 2016-03-30 | 2021-02-09 | Sony Interactive Entertainment Inc. | Deriving application-specific operating parameters for backwards compatiblity |
US10275239B2 (en) | 2016-03-30 | 2019-04-30 | Sony Interactive Entertainment Inc. | Deriving application-specific operating parameters for backwards compatiblity |
US10169846B2 (en) * | 2016-03-31 | 2019-01-01 | Sony Interactive Entertainment Inc. | Selective peripheral vision filtering in a foveated rendering system |
US10192528B2 (en) | 2016-03-31 | 2019-01-29 | Sony Interactive Entertainment Inc. | Real-time user adaptive foveated rendering |
US10372205B2 (en) | 2016-03-31 | 2019-08-06 | Sony Interactive Entertainment Inc. | Reducing rendering computation and power consumption by detecting saccades and blinks |
US10401952B2 (en) | 2016-03-31 | 2019-09-03 | Sony Interactive Entertainment Inc. | Reducing rendering computation and power consumption by detecting saccades and blinks |
US10410313B2 (en) * | 2016-08-05 | 2019-09-10 | Qualcomm Incorporated | Dynamic foveation adjustment |
US10482648B2 (en) * | 2016-12-13 | 2019-11-19 | Qualcomm Incorporated | Scene-based foveated rendering of graphics content |
US11222397B2 (en) * | 2016-12-23 | 2022-01-11 | Qualcomm Incorporated | Foveated rendering in tiled architectures |
KR102623391B1 (ko) * | 2017-01-10 | 2024-01-11 | 삼성전자주식회사 | 영상 출력 방법 및 이를 지원하는 전자 장치 |
WO2018183405A1 (en) | 2017-03-27 | 2018-10-04 | Avegant Corp. | Steerable foveal display |
US10424107B2 (en) | 2017-04-01 | 2019-09-24 | Intel Corporation | Hierarchical depth buffer back annotaton |
US20180300951A1 (en) * | 2017-04-17 | 2018-10-18 | Intel Corporation | Adaptive tessellation for foveated rendering |
US11010953B2 (en) | 2017-04-21 | 2021-05-18 | Intel Corporation | Dedicated fixed point blending for energy efficiency |
US10885607B2 (en) | 2017-06-01 | 2021-01-05 | Qualcomm Incorporated | Storage for foveated rendering |
WO2018226676A1 (en) * | 2017-06-05 | 2018-12-13 | Google Llc | Smoothly varying foveated rendering |
JP6802393B2 (ja) * | 2017-06-09 | 2020-12-16 | 株式会社ソニー・インタラクティブエンタテインメント | 中心窩レンダリングシステムにおける、遅延ライティングの最適化、パーティクルの中心窩適応、及びシミュレーションモデル |
US10755383B2 (en) | 2017-09-29 | 2020-08-25 | Apple Inc. | Multi-space rendering with configurable transformation parameters |
US10178619B1 (en) | 2017-09-29 | 2019-01-08 | Intel Corporation | Advanced graphics power state management |
US10699374B2 (en) * | 2017-12-05 | 2020-06-30 | Microsoft Technology Licensing, Llc | Lens contribution-based virtual reality display rendering |
CN110324601A (zh) * | 2018-03-27 | 2019-10-11 | 京东方科技集团股份有限公司 | 渲染方法、计算机产品及显示装置 |
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 |
US10942564B2 (en) | 2018-05-17 | 2021-03-09 | Sony Interactive Entertainment Inc. | Dynamic graphics rendering based on predicted saccade landing point |
US10764581B2 (en) | 2018-05-24 | 2020-09-01 | Lockhead Martin Corporation | Multi-resolution regionalized data transmission |
CN108830924B (zh) * | 2018-06-20 | 2022-06-10 | 福建省亿鑫海信息科技有限公司 | 一种场景模型显示方法及终端 |
EP3891546A4 (en) | 2018-12-07 | 2022-08-24 | Avegant Corp. | STEERING POSITIONING ELEMENT |
CN113412442A (zh) | 2019-01-07 | 2021-09-17 | 阿维甘特公司 | 控制系统和渲染管道 |
KR102649783B1 (ko) | 2019-03-29 | 2024-03-20 | 아브간트 코포레이션 | 도파관을 사용한 조향 가능한 하이브리드 디스플레이 |
KR20230144093A (ko) * | 2019-07-28 | 2023-10-13 | 구글 엘엘씨 | 포비에이티드 메시들로 몰입형 비디오 콘텐츠를 렌더링하기 위한 방법들, 시스템들, 및 매체들 |
CN114930226A (zh) | 2020-01-06 | 2022-08-19 | 阿维甘特公司 | 具有颜色特定调制的头戴式系统 |
US11363247B2 (en) * | 2020-02-14 | 2022-06-14 | Valve Corporation | Motion smoothing in a distributed system |
CN114187397B (zh) * | 2021-12-06 | 2023-03-21 | 完美世界(北京)软件科技发展有限公司 | 虚拟毛发渲染方法、装置、介质、电子设备及程序产品 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1830007A (zh) * | 2003-07-30 | 2006-09-06 | 皇家飞利浦电子股份有限公司 | 用于在纹理映射中适应性重新取样的系统 |
CN101006471A (zh) * | 2004-06-16 | 2007-07-25 | 皇家飞利浦电子股份有限公司 | 反相纹理映射三维图形系统 |
CN104077801A (zh) * | 2013-03-29 | 2014-10-01 | 株式会社万代南梦宫游戏 | 图像生成系统及图像生成方法 |
Family Cites Families (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6137492A (en) * | 1997-04-03 | 2000-10-24 | Microsoft Corporation | Method and system for adaptive refinement of progressive meshes |
US7139794B2 (en) * | 2000-12-27 | 2006-11-21 | 3-D-V-U Israel (2000) Ltd. | System and methods for network image delivery with dynamic viewing frustum optimized for limited bandwidth communication channels |
US7023580B2 (en) * | 2001-04-20 | 2006-04-04 | Agilent Technologies, Inc. | System and method for digital image tone mapping using an adaptive sigmoidal function based on perceptual preference guidelines |
US6809731B2 (en) * | 2002-01-08 | 2004-10-26 | Evans & Sutherland Computer Corporation | System and method for rendering high-resolution critical items |
JP2003288609A (ja) | 2002-01-28 | 2003-10-10 | Konami Co Ltd | 3次元画像処理プログラム、3次元画像処理装置、3次元画像処理方法及びビデオゲーム装置 |
US6940505B1 (en) * | 2002-05-20 | 2005-09-06 | Matrox Electronic Systems Ltd. | Dynamic tessellation of a base mesh |
US7495638B2 (en) * | 2003-05-13 | 2009-02-24 | Research Triangle Institute | Visual display with increased field of view |
US7382369B2 (en) * | 2003-10-10 | 2008-06-03 | Microsoft Corporation | Systems and methods for robust sampling for real-time relighting of objects in natural lighting environments |
JP4462132B2 (ja) * | 2005-07-04 | 2010-05-12 | ソニー株式会社 | 画像特殊効果装置,グラフィックスプロセッサ,プログラム |
CA2638453C (en) * | 2006-03-14 | 2010-11-09 | Transgaming Technologies Inc. | General purpose software parallel task engine |
US20070247458A1 (en) * | 2006-04-11 | 2007-10-25 | Samsung Electronics Co., Ltd. | Adaptive computation of subdivision surfaces |
US8446509B2 (en) * | 2006-08-09 | 2013-05-21 | Tenebraex Corporation | Methods of creating a virtual window |
US20090189896A1 (en) * | 2008-01-25 | 2009-07-30 | Via Technologies, Inc. | Graphics Processor having Unified Shader Unit |
GB2460411B (en) * | 2008-05-27 | 2012-08-08 | Simpleware Ltd | Image processing method |
US20100253683A1 (en) * | 2009-04-01 | 2010-10-07 | Munkberg Carl J | Non-uniform tessellation technique |
US8379718B2 (en) | 2009-09-02 | 2013-02-19 | Sony Computer Entertainment Inc. | Parallel digital picture encoding |
US20120287163A1 (en) * | 2011-05-10 | 2012-11-15 | Apple Inc. | Scaling of Visual Content Based Upon User Proximity |
US9019280B2 (en) * | 2011-07-22 | 2015-04-28 | Qualcomm Incorporated | Area-based rasterization techniques for a graphics processing system |
US9323325B2 (en) * | 2011-08-30 | 2016-04-26 | Microsoft Technology Licensing, Llc | Enhancing an object of interest in a see-through, mixed reality display device |
US20130094753A1 (en) * | 2011-10-18 | 2013-04-18 | Shane D. Voss | Filtering image data |
US9347792B2 (en) * | 2011-10-31 | 2016-05-24 | Honeywell International Inc. | Systems and methods for displaying images with multi-resolution integration |
JP5882805B2 (ja) | 2012-03-26 | 2016-03-09 | キヤノン株式会社 | 情報処理装置、その処理方法及びプログラム |
US9922442B2 (en) | 2012-07-18 | 2018-03-20 | Arm Limited | Graphics processing unit and method for performing tessellation operations |
US9305397B2 (en) * | 2012-10-24 | 2016-04-05 | Qualcomm Incorporated | Vertex order in a tessellation unit |
EP2745892B1 (en) * | 2012-12-21 | 2018-12-12 | Dassault Systèmes | Partition of a 3D scene into a plurality of zones processed by a computing resource |
US9727991B2 (en) * | 2013-03-01 | 2017-08-08 | Microsoft Technology Licensing, Llc | Foveated image rendering |
US20140347363A1 (en) | 2013-05-22 | 2014-11-27 | Nikos Kaburlasos | Localized Graphics Processing Based on User Interest |
US9495722B2 (en) | 2013-05-24 | 2016-11-15 | Sony Interactive Entertainment Inc. | Developer controlled layout |
US10255650B2 (en) | 2013-05-24 | 2019-04-09 | Sony Interactive Entertainment Inc. | Graphics processing using dynamic resources |
KR102104057B1 (ko) * | 2013-07-09 | 2020-04-23 | 삼성전자 주식회사 | 점별로 테셀레이션 팩터를 할당하는 방법과 상기 방법을 수행할 수 있는 장치들 |
US9468373B2 (en) | 2013-09-24 | 2016-10-18 | Sony Interactive Entertainment Inc. | Gaze tracking variations using dynamic lighting position |
WO2015048030A1 (en) | 2013-09-24 | 2015-04-02 | Sony Computer Entertainment Inc. | Gaze tracking variations using visible lights or dots |
US9781360B2 (en) | 2013-09-24 | 2017-10-03 | Sony Interactive Entertainment Inc. | Gaze tracking variations using selective illumination |
US9652882B2 (en) | 2014-04-05 | 2017-05-16 | Sony Interactive Entertainment America Llc | Gradient adjustment for texture mapping for multiple render targets with resolution that varies by screen location |
US9836816B2 (en) | 2014-04-05 | 2017-12-05 | Sony Interactive Entertainment America Llc | Varying effective resolution by screen location in graphics processing by approximating projection of vertices onto curved viewport |
WO2015154004A1 (en) | 2014-04-05 | 2015-10-08 | Sony Computer Entertainment America Llc | Method for efficient re-rendering objects to vary viewports and under varying rendering and rasterization parameters |
EP3216023A4 (en) * | 2014-11-07 | 2018-07-18 | Eye Labs, LLC | Visual stabilization system for head-mounted displays |
US20160274365A1 (en) * | 2015-03-17 | 2016-09-22 | Thalmic Labs Inc. | Systems, devices, and methods for wearable heads-up displays with heterogeneous display quality |
US10726619B2 (en) | 2015-10-29 | 2020-07-28 | Sony Interactive Entertainment Inc. | Foveated geometry tessellation |
-
2015
- 2015-10-29 US US14/927,157 patent/US10726619B2/en active Active
-
2016
- 2016-10-25 EP EP16860636.6A patent/EP3368999B1/en active Active
- 2016-10-25 WO PCT/US2016/058718 patent/WO2017074961A1/en active Application Filing
- 2016-10-25 CN CN201680062055.2A patent/CN108351864B/zh active Active
- 2016-10-25 JP JP2018518443A patent/JP7004645B2/ja active Active
-
2020
- 2020-06-22 US US16/908,350 patent/US11270506B2/en active Active
- 2020-12-28 JP JP2020219404A patent/JP7098710B2/ja active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1830007A (zh) * | 2003-07-30 | 2006-09-06 | 皇家飞利浦电子股份有限公司 | 用于在纹理映射中适应性重新取样的系统 |
CN101006471A (zh) * | 2004-06-16 | 2007-07-25 | 皇家飞利浦电子股份有限公司 | 反相纹理映射三维图形系统 |
CN104077801A (zh) * | 2013-03-29 | 2014-10-01 | 株式会社万代南梦宫游戏 | 图像生成系统及图像生成方法 |
Also Published As
Publication number | Publication date |
---|---|
JP2021061041A (ja) | 2021-04-15 |
WO2017074961A1 (en) | 2017-05-04 |
CN108351864A (zh) | 2018-07-31 |
JP2018537755A (ja) | 2018-12-20 |
EP3368999A1 (en) | 2018-09-05 |
EP3368999A4 (en) | 2019-04-24 |
US11270506B2 (en) | 2022-03-08 |
US10726619B2 (en) | 2020-07-28 |
US20170124760A1 (en) | 2017-05-04 |
EP3368999B1 (en) | 2024-02-07 |
JP7004645B2 (ja) | 2022-01-21 |
US20200320787A1 (en) | 2020-10-08 |
JP7098710B2 (ja) | 2022-07-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108351864B (zh) | 成凹几何密铺 | |
US10438319B2 (en) | Varying effective resolution by screen location in graphics processing by approximating projection of vertices onto curved viewport | |
US11748840B2 (en) | Method for efficient re-rendering objects to vary viewports and under varying rendering and rasterization parameters | |
US10614549B2 (en) | Varying effective resolution by screen location by changing active color sample count within multiple render targets | |
US10049486B2 (en) | Sparse rasterization | |
US11302054B2 (en) | Varying effective resolution by screen location by changing active color sample count within multiple render targets | |
JP2003115055A (ja) | 画像生成装置 | |
KR20220130706A (ko) | 하이브리드 비닝 |
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 |