CN111133475A - 具有可配置变换参数的多空间渲染 - Google Patents
具有可配置变换参数的多空间渲染 Download PDFInfo
- Publication number
- CN111133475A CN111133475A CN201880061981.7A CN201880061981A CN111133475A CN 111133475 A CN111133475 A CN 111133475A CN 201880061981 A CN201880061981 A CN 201880061981A CN 111133475 A CN111133475 A CN 111133475A
- Authority
- CN
- China
- Prior art keywords
- space
- different
- coordinates
- transformation parameters
- primitives
- 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.)
- Granted
Links
- 230000009466 transformation Effects 0.000 title claims abstract description 143
- 238000009877 rendering Methods 0.000 title abstract description 38
- 238000000034 method Methods 0.000 claims abstract description 67
- 238000005070 sampling Methods 0.000 claims abstract description 28
- 239000012634 fragment Substances 0.000 claims description 58
- 238000013461 design Methods 0.000 claims description 26
- 238000012952 Resampling Methods 0.000 claims description 17
- 230000001131 transforming effect Effects 0.000 claims description 16
- 238000004519 manufacturing process Methods 0.000 claims description 10
- 239000004065 semiconductor Substances 0.000 claims description 7
- 238000000844 transformation Methods 0.000 claims description 7
- 230000008569 process Effects 0.000 abstract description 23
- 238000012545 processing Methods 0.000 description 35
- 230000015654 memory Effects 0.000 description 30
- 238000010586 diagram Methods 0.000 description 22
- 230000006870 function Effects 0.000 description 17
- 238000006243 chemical reaction Methods 0.000 description 14
- 239000000872 buffer Substances 0.000 description 10
- 239000002609 medium Substances 0.000 description 10
- 238000004891 communication Methods 0.000 description 9
- 238000013507 mapping Methods 0.000 description 9
- 230000002093 peripheral effect Effects 0.000 description 9
- 238000013519 translation Methods 0.000 description 9
- 230000008901 benefit Effects 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 239000004744 fabric Substances 0.000 description 5
- 239000000463 material Substances 0.000 description 5
- 238000013459 approach Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000000605 extraction Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000012886 linear function Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 239000012120 mounting media Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 210000001747 pupil Anatomy 0.000 description 1
- 238000012887 quadratic function Methods 0.000 description 1
- 238000002310 reflectometry Methods 0.000 description 1
- 210000001525 retina Anatomy 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformation in the plane of the image
- G06T3/40—Scaling the whole image or part thereof
- G06T3/4084—Transform-based scaling, e.g. FFT domain scaling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3243—Power saving in microcontroller unit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
- G06F3/013—Eye tracking input arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
-
- 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/40—Hidden part removal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/60—Shadow generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/18—Manufacturability analysis or optimisation for manufacturability
-
- 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/12—Bounding box
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本文公开了与渲染图形对象有关的技术。在一些实施方案中,图形单元被配置为对于第二空间的不同部分根据不同的变换参数将图形对象从虚拟空间变换到第二空间中。这可导致以不同的采样率对虚拟空间的不同部分进行采样,这可减少渲染过程的各个阶段所需的样本数量。在所公开的技术中,变换可在光栅化和着色之前进行,这可进一步减少图形单元中的计算和功率消耗,改善显示给用户的图像质量,和/或减小网络上视频内容的带宽使用或延迟。在一些实施方案中,变换后的图像可通过失真补偿透镜进行查看或在显示之前重采样。
Description
技术领域
本公开整体涉及图形处理器,并且更具体地涉及用于渲染图形对象的技术。
背景技术
图形处理器(GPU)常常被包括在功率消耗和处理器面积是重要设计考虑因素的移动设备诸如蜂窝电话、可穿戴设备等中。现代图形处理器采用多种技术来便于以更高的速度、更少的功率消耗和/或更少的处理硬件渲染图形对象。例如,图形处理常常涉及针对不同的图形元素(例如,像素或顶点)并行地执行相同的指令。此外,由于相同组的图形指令常常被执行多次(例如,为了为不同图形元素或者在不同时间为相同图形元素执行特定函数),所以被处理的图形元素的数量驱动图形处理器中的计算时间、功率消耗和硬件需求。
一般来讲,顶点任务和像素任务涵盖图形处理的相当大部分。顶点处理涉及使用多边形来表示图像,其中顶点限定多边形。顶点处理的输出通常被光栅化以生成片段信息,该片段信息被像素/片段着色器操作以生成用于输出至显示器的像素数据。减少所处理的顶点和/或像素数据的量通常会提高性能和/或降低图形单元中的功率消耗。
附图说明
图1是根据一些实施方案示出图形基元在不同空间之间的示例性变换的框图。
图2A是示出示例性图形处理流的框图。
图2B是示出图形单元的一个实施方案的框图。
图3是根据一些实施方案示出包括变换和光栅化级的示例性流水线的框图。
图4是根据一些实施方案示出虚拟空间中的坐标变换成第二空间中的坐标的示例性变换的图示。
图5是根据一些实施方案示出被配置为存储变换参数的示例性数据结构的图示。
图6是根据一些实施方案示出其中变换对于虚拟空间的不同部分导致不同采样率的示例性情况的图示。
图7是根据一些实施方案示出由变换到第二空间中以及将第二空间重采样到显示空间中而产生的示例性失真的图示。
图8A根据一些实施方案示出虚拟空间中的示例性图像,包括简化边界框。
图8B根据一些实施方案示出在变换到第二空间之后第二空间中的示例性图像,包括简化边界框。
图9A至图9D根据一些实施方案以图形方式示出示例性等角渲染技术。
图10是根据一些实施方案示出用于多空间渲染的示例性方法的流程图。
图11是示出包括图形单元的设备的一个实施方案的框图。
图12是根据一些实施方案示出示例性计算机可读介质的框图。
本说明书包括对各种实施方案的参考,以指示本公开并非旨在提及一个特定具体实施,而是提及落入包括所附权利要求书的本公开的实质内的一系列实施方案。特定特征、结构或特性可以与本公开一致的任何合适的方式被组合。
在本公开内,不同实体(其可被不同地称为“单元”、“电路”、其他部件等)可被描述或声称成“被配置为”执行一个或多个任务或操作。此表达方式—被配置为[执行一个或多个任务]的[实体]—在本文中用于指代结构(即,物理的事物,诸如电子电路)。更具体地,此表达方式用于指示此结构被布置成在操作期间执行一个或多个任务。结构可被说成“被配置为”执行某个任务,即使该结构当前并非正被操作。“被配置为处理片断数据的着色器电路”旨在覆盖例如在操作期间执行此功能的电路,即使所涉及的电路当前并未正在被使用(例如,该电路并未连接到电力)。因此,被描述或表述为“被配置为”执行某个任务的实体指代用于实施该任务的物理的事物,诸如设备、电路、存储有可执行程序指令的存储器等。此短语在本文中不被用于指代无形的事物。
术语“被配置为”并不旨在意指“可配置为”。例如,未经编程的FPGA不会被认为是“被配置为”执行某个特定功能,虽然其可能“可配置为”执行该功能。在适当编程之后,FPGA然后可被配置为执行该功能。
所附权利要求书中的表述结构“被配置为”执行一个或多个任务明确地旨在对该权利要求要素不援引35U.S.C.§112(f)。于是,所提交的本申请中没有任何权利要求旨在要被解释为具有装置-加-功能要素。如果申请人在申请过程期间想要援引节段112(f),则其将使用“用于”[执行功能]“的装置”结构来表述权利要求要素。
如本文所用,术语“基于”用于描述影响确定的一个或多个因素。此术语不排除可能有附加因素可影响确定。也就是说,确定可仅基于指定的因素或基于所指定的因素及其他未指定的因素。考虑短语“基于B确定A”。此短语指定B是用于确定A的因素或者B影响A的确定。此短语并不排除A的确定也可基于某个其他因素诸如C。此短语也旨在覆盖A仅基于B来确定的实施方案。如本文所用,短语“基于”与短语“至少部分地基于”是同义的。
此外,如本文所用,术语“第一”、“第二”、“第三”等并不一定暗示元件之间的排序(例如,时间顺序)。例如,对“第一”图形操作和“第二”图形操作的参考并不暗示对图形操作的排序,缺少限制这些操作之间的时间关系的附加语言。简而言之,诸如“第一”、“第二”等的参考用作标记,以便于在说明书和所附权利要求中进行参考。
具体实施方式
图形基元的变换
图1是示出图形基元在图形单元所利用的不同空间之间的变换的图示。如本文所用,术语“空间”是指根据坐标系(例如笛卡尔坐标系、柱坐标系、球坐标系)限定的一个或多个维度。例如,虚拟场景空间可以是三维的,但可基于场景的视角被映射到二维屏幕空间用于显示。如本文所用,术语“基元”是指图形单元被配置为对其进行处理的简单几何对象,例如,线、三角形、其他类型的多边形、曲线等。本文在各种示例中讨论三角形,但并不旨在限制在其他实施方案中使用的基元的形状。
在一些实施方案中,虚拟空间110对应于包含图形基元的一个或多个维度的场景。在一些实施方案中,虚拟空间110可用于组织图形着色器从着色器外部的程序或过程接收的基元数据,例如基于基元的坐标来组织。虚拟空间110可包含任意数量的图形基元用于渲染到图形显示中。在一些实施方案中,利用虚拟空间110的坐标来执行操纵基元数据或顶点数据的某些类型的图形处理操作(例如镶嵌、照明等)。虚拟空间110中的图形基元可基于虚拟空间110中的空间坐标以及与基元相关联的附加数据(例如,基元的不透明度、与基元相关联的一个或多个纹理等)来限定。
在图1所示的实施方案中,图形单元将虚拟空间110中基元的坐标变换成第二空间120中基元的坐标。在一些实施方案中,变换(其也可被称为转化)“扭曲”场景,使得虚拟空间的不同部分以不同的采样率进行采样。因此,第二空间可被称为扭曲空间。这可减少虚拟空间的欠采样部分所需的着色器处理,这可提高性能和/或降低功率消耗。在一些实施方案中,图形单元可针对第二空间的不同部分使用不同的变换参数。例如,在第二空间120的一个部分中,基元可在x维度(相对于虚拟空间110)减小尺寸3倍,并且在第二空间120的另一部分中,基元可以在y维度减小尺寸2倍。在一些实施方案中,图像从虚拟空间110到第二空间120的变换可能使图像的部分或全部变形(例如,图像中各种基元的相对尺寸由于变换而改变)。
在一些实施方案中,图形单元在第二空间120中(即,在变换之后)对基元光栅化并且对光栅化所得到的片段数据着色。在变换之后以一致的采样率对第二空间120光栅化就可以有效地以不同的率对虚拟空间110的不同部分进行采样,其中虚拟空间中的不同采样率对应于不同的变换参数。光栅化可基于第二空间中基元的坐标来生成片段数据。例如,方形基元可以是从虚拟空间110中的坐标(0,0)、(0,2)、(2,2)、(2,0)变换到第二空间120中的坐标(0,0)、(0,1)、(1,1)、(1,0),并且光栅化按整数坐标应用像素就可为所述方形在第二空间120中的四个角部中的每一者生成一个片断(而不是生成覆盖所述方形的九个片断,如果已经使用了虚拟空间坐标的话)。在该示例中,图形单元将着色第二空间120中的四个片段,而不是虚拟空间110中的九个片段,来表示同一基元。下文参考图6和图7讨论这一概念的更详细的示例。
在一些实施方案中,显示空间130是所渲染的图形图像在其中被显示(或发送用于显示)给用户的空间(例如,发送给屏幕以用于显示的图形帧)。显示空间130的其他示例包括3D显示,诸如全息和立体显示。传统上,图形处理器可通过光栅化虚拟空间110中的基元来创建用于在显示空间130中显示的图像。相比之下,在图1所示的实施方案中,第二空间120中的图像光栅化和着色发生在第二空间120中。在一些实施方案中,可显示第二空间120中的图像而没有修改(即,第二空间120和显示空间130是相同的)。在其他实施方案中,重采样或透镜畸变可将第二空间120中的图像转换到显示空间130中。例如,通过透镜观察第二空间120中的图像就可校正由于变换到第二空间而引入的失真,使得用户在显示空间130中看到不失真图像。需注意,在一些实施方案中,渲染图像(例如,存储在帧缓冲器中)可被反馈到GPU流水线中以用于进一步处理,这可包括变换到其他空间中。
本公开中的各种实施方案相对于1D空间、2D空间和3D空间描述虚拟空间、第二空间和显示空间,但虚拟空间110、第二空间120、和显示空间130可包括包含图形基元以及描述图形基元的特征(例如,纹理、深度、照明、不透明度等)的相关数据的任意数量的维度。在第二空间中执行各种图形渲染过程可具有以下优点:改善性能、降低图形单元中的功率消耗、改善显示给用户的图像质量、和/或减少网络上视频内容的带宽使用或延迟。图2A至图2B在更一般性的上下文中介绍图形渲染过程和示例性图形单元的概述,而其余附图提供关于示例性扭曲空间渲染技术的附加细节。
图形处理概述
参见图2A,其示出了示出用于处理图形数据的示例性处理流程200的流程图。在一个实施方案中,变换和照明步骤210可涉及基于限定的光源位置、反射率等处理从应用程序接收的顶点的照明信息,将顶点组装成多边形(例如三角形),和/或基于三维空间中的位置来将多边形转换为正确的尺寸和取向。剪辑步骤215可涉及丢弃在可视区域之外的多边形或顶点。光栅化步骤220可涉及在每个多边形内限定片段并且例如基于多边形顶点的纹理坐标来为每个片段分配初始色值。片段可指定它们重叠的像素的属性,但可基于组合多个片段(例如,在帧缓冲器中)和/或忽略一个或多个片段(例如,如果它们被其他对象覆盖)来确定实际像素属性。着色步骤230可涉及基于照明、阴影、隆起映射、半透明度等来改变像素分量。可将着色像素组装在帧缓冲器235中。现代GPU通常包括允许应用开发者定制着色和其他处理步骤的可编程着色器。因此,在各种实施方案中,图2A的示例性步骤可以各种顺序执行,并行执行或省略。还可实施另外的处理步骤。图2A中未示出但本文相对于各种实施方案讨论的变换步骤可在光栅化之前被包括在处理流程200中。变换步骤可涉及将顶点坐标变化到新坐标系中以及以减少光栅化步骤220中被光栅化的片段的数量的方式修改顶点数据。
现在参考图2B,示出了示出图形单元250的一个实施方案的简化框图。在例示的实施方案中,图形单元250包括可编程着色器260、顶点管285、片段管275、纹理处理单元(TPU)265、图像写入单元270和存储器接口280。在一些实施方案中,图形单元250被配置为使用可编程着色器260来处理顶点数据和片段数据两者,该可编程着色器可被配置为使用多个执行流水线或实例来并行处理图形数据。
在图示实施方案中,顶点管285可包括被配置为处理顶点数据的各种固定功能硬件。顶点管285可被配置为与可编程着色器260通信,以便协调顶点处理。在图示实施方案中,顶点管285被配置为将经处理的数据发送至片段管275和/或可编程着色器260以用于进一步处理。
在图示实施方案中,片段管275可包括被配置为处理像素数据的各种固定功能硬件。片段管275可被配置为与可编程着色器260通信,以便协调片段处理。片段管275可被配置为在来自顶点管285和/或可编程着色器260的多边形上执行光栅化以生成片段数据。顶点管285和/或片断管275可耦接到存储器接口280(未示出耦接)以便访问图形数据。
在图示实施方案中,可编程着色器260被配置为接收来自顶点管285的顶点数据和来自片段管275和/或TPU 265的片段数据。可编程着色器260可被配置为对顶点数据执行顶点处理任务,该顶点处理任务可包括顶点数据的各种变换和/或调整。在例示的实施方案中,可编程着色器260还被配置为对像素数据执行片段处理任务,诸如像纹理和着色处理。可编程着色器260可包括用于并行处理数据的多个执行实例。
在例示的实施方案中,TPU 265被配置为调度来自可编程着色器260的片段处理任务。在一些实施方案中,TPU 265被配置为预取纹理数据并将初始颜色分配给片段以供可编程着色器260进一步处理(例如,经由存储器接口280)。TPU 265可被配置为提供例如在规格化整数格式或浮点格式的片段分量。在一些实施方案中,TPU 265被配置为提供呈2x2格式的四个一组(“片段四元组”)的片段,该片段由可编程着色器260中的一组四个执行流水线处理。
在一些实施方案中,图像写入单元(IWU)270被配置为存储图像的处理后图块,并且可在将其传输以用于显示或传输给存储器用于存储之前对渲染后图像执行操作。在一些实施方案中,图形单元250被配置为执行分块式渲染。在分块式渲染中,可单独处理屏幕空间的不同部分(例如,像素的正方形或矩形)。在各种实施方案中,存储器接口280可促进与各种存储器分级结构中的一个或多个的通信。
在各种实施方案中,可编程着色器诸如可编程着色器260可以各种适当构型中的任一种耦接到图形单元中的其他可编程和/或固定功能元件。图2B的示例性实施方案示出了图形单元250的一个可能的配置用于示例性目的。
片段管概述
图3是示出根据一些实施方案的示例性片段管275的框图。在例示的实施方案中,片段管275包括参数提取电路310、变换电路320、扫描转换器330、排序电路340和像素数据主控器350。在例示的实施方案中,片段管275的各种元件被配置为与可编程着色器260通信。
在例示的实施方案中,参数提取电路310被配置为接收正在处理的当前图块的图块和顶点数据305。这可经由例如可包含各种高速缓存级别、共享存储器结构等的图形存储器分级结构的一个或多个元件来获得。顶点数据可在与正在处理的图块相交的基元列表中指定每个基元的顶点坐标。图形基元的顶点数据可包括描述基元的视觉或其他特征(例如纹理、照明、不透明度等)的数据。数据305还可包含将顶点信息与正在处理的图块关联和/或描述正在处理的图块的各种信息。
在图示实施方案中,变换电路320被配置为将顶点数据从虚拟空间变换到第二空间中。顶点数据可指定顶点的坐标,并且在变换电路320中的处理之后,第二空间中顶点的坐标可以不同于虚拟空间中顶点的坐标。在一些实施方案中,变换电路320可在图形单元250中的其他位置(例如顶点管285)实现,在这种情况下,片段管275中的参数提取电路310将接收与第二空间相关联的图块和顶点数据305(即,变换后的)。在一些实施方案中,变换电路320在扫描转换器330光栅化顶点数据生成片段数据之前(例如,在图2A中的光栅化步骤220之前)变换顶点数据。这可通过对于否则可能已在虚拟空间中过采样的图块降低处理复杂性(例如,经光栅化像素的数量)来改善性能。
在一些实施方案中,变换电路320被配置为针对不同的图块使用不同的变换参数,并且参数可由图形程序或使用默认值来以每个图块为基础指定。
在例示的实施方案中,扫描转换器330被配置为执行光栅化以基于顶点数据生成片段数据。术语“片段”旨在根据其熟知的含义来解释,并且片段数据可指定基于给定基元(例如,对可编程着色器260针对片段、片段的坐标等要执行的一个或多个着色器程序的引用)对像素进行着色所需的数据,以及测试片段是否存在以贡献对应像素的属性(深度、α、模版、剪刀、窗口ID等)所需的数据。在一些渲染模式中,片段数据可包括针对每个片段/像素的多个样本的数据。片段数据可以各种程度的粒度中的一个或多个指定(例如,片段数据可以每个样本存储,或者可以按每个片段、每个对象、每个图块等进行聚合)。在一些实施方案中,来自多个片段的数据可用于确定特定像素的属性,例如,当一个片段是部分透明的时。
在例示的实施方案中,排序电路340包括一个或多个图块缓冲器335,并且被配置为跟踪哪些片段当前可见,直到它们被着色。例如,被渲染场景中更靠近屏幕的不透明对象所覆盖的片段的数据可从图块缓冲器335丢弃,因为其被确定为不可见。在各种实施方案中,这些遮蔽技术可减少可编程着色器160所需的处理。在一些实施方案中,排序电路340包括用于正在处理的每个图块的独立的图块缓冲器,这可允许并行地渲染多个图块。此外,片段管275的多个实例可包括在给定图形单元中,从而进一步增加用于并行处理的资源。如本文所用,片段数据的“遮蔽”是指其中确定片段数据将实际上不会对图形数据的帧中的像素属性作出贡献的情况。例如,当片段数据是针对正在渲染的场景中的另一个对象后面的对象并且该另一个对象是不透明的时,发生遮蔽。
在例示的实施方案中,像素数据主控器350被配置为将着色器工作发送至可编程着色器260,例如,以便对图块缓冲器335的内容进行着色。在一些实施方案中,像素数据主控器340可被配置为响应于各种事件来清除图块缓冲器335的内容的全部或一部分以用于着色。在一些实施方案中,图形单元250包括多个数据主控器,其可包括被配置为向可编程着色器260发送顶点工作的顶点数据主控器和被配置为向可编程着色器260发送计算工作的计算数据主控器。在一些实施方案中,可编程着色器260包括被配置为在可编程着色器260中分配硬件资源以用于来自各种数据主控器的工作的调度电路。
从虚拟空间到第二空间的示例性变换
图4是根据一些实施方案示出虚拟空间图像到第二空间图像的示例性1D变换的图示。图4表示示例性场景,其中对第二空间的不同部分使用不同变换参数可以是有用的。然而,所公开的技术绝不限于此类场景,并且在各种实施方案中可实现各种类型的变换函数。
在一些实施方案中,虚拟空间110是后顶点变换空间。例如,虚拟空间110可包含由图形单元从程序或过程接收的源自3D模型的顶点数据。在图示实施方案中,不同的变化参数用于第二空间的不同部分。例如,3到1缩放因子将部分虚拟0到虚拟2变化为部分扭曲0,而1到1缩放因子将虚拟7的一部分和虚拟8的一部分变换为扭曲4,使得扭曲0中每个虚拟部分的片段/像素比扭曲4中每个虚拟部分的少三倍。
在例示的实施方案中,整体图像的尺寸在一个维度以因子2被减小(虚拟空间410包含在光栅化后由512个像素构成的图像,而第二空间420包含在光栅化后由256个像素构成的图像)。在一些实施方案中,虚拟空间中基元的坐标到第二空间中基元的坐标的变换可在光栅化之前进行,使得变换改变随后被光栅化的基元的顶点坐标。
在一些实施方案中,虚拟空间的多个部分或局部部分可变换到第二空间的单个部分中。例如,在例示的实施方案中,多个虚拟空间部分(虚拟0到虚拟2)变换为单个第二部分(扭曲0),并且不同虚拟空间部分(虚拟7和虚拟8)的部分变换为单个第二部分(扭曲4)。
在一些实施方案中,跨分隔虚拟空间部分的边界的基元可完全落在第二空间的单个部分内(例如,图4中跨虚拟1和虚拟2的边界的基元完全落在扭曲0内)。在一些实施方案中,完全落在虚拟空间的单个部分内的基元在变换之后可以跨分隔第二空间部分的边界(例如,图4中落在虚拟5内的基元可在变换之后跨扭曲1和扭曲2之间的边界)。
在一些实施方案中,并非虚拟空间410的所有部分、或者虚拟空间410中的所有基元被变换到第二空间420中。在例示的实施方案中,图形单元不将部分虚拟15中位于边界415之外的基元变换为扭曲7。类似地,仅基元的一部分可被变换到第二空间420中(例如,对于在边界415的两侧都包含顶点的基元)。在一些实施方案中,图形渲染过程可包括在变换到第二空间420之后的剔选或剪辑步骤。如本文所用,“剔选”是根据其在本领域中熟知的含义来使用,其包括从图形处理步骤中省略基元。如本文所用,“剪辑”是根据其在本领域中熟知的含义来使用,其包括从基元移除或重新排序数据以创建新基元。在一些实施方案中,图形单元可在变换之后执行小对象剔选(除了剔选在可视区之外的基元之外),其中图形单元从场景中移除足够小的变换后基元。为了避免基元的不必要变换,图形单元可在将顶点数据从虚拟空间410变换到第二空间420之前对基元进行剔选。图形单元可在将顶点数据从虚拟空间410变换到第二空间420中之前或之后对基元进行剪辑。
用于存储变换参数的示例性数据结构
图5是根据一些实施方案示出对于第二空间的不同部分包含不同变换参数的数据结构的图示。在一些实施方案中,这些数据结构利用专用硬件寄存器来实现。在图示实施方案中,数据结构500包含表510A-510Z。图示实施方案中的表510A-510Z包含变换参数。如图所示,表510A包含与第二空间(例如,扭曲空间)的第一部分(例如,图块)相关联的第一组变换参数,并且表510Z包含与第二空间的第二部分相关联的第二组变换参数。
在一些实施方案中,变换参数可指定对将虚拟空间中的坐标集变换成第二空间中的相应坐标集的函数的输入(例如,等式的系数)。在一些实施方案中,变换参数可指定将虚拟空间中的坐标集变换成第二空间中的相应坐标集的函数的类型(例如,线性或二次函数)。在一些实施方案中,图形单元可使用任意数量的变换参数来指定不同的函数。在一些实施方案中,变换参数的另一示例是旋转值,这可有利于全投影变换。更一般地,投影变换可利用矩阵,例如,用于二维投影变换的3x3矩阵。又如,可应用负缩放因子,使得虚拟空间中的基元在变换到第二空间中期间不仅被缩放,而且也被镜像。又如,图形单元可利用投影变换将虚拟空间的一部分中的各个样本/像素/四元组映射至第二空间中的不同位置。在各种实施方案中,第二空间的各部分的变换参数可以是可编程的。在一些实施方案中,可直接基于用户输入或直接指定变换参数的图形程序中的指令来对变换参数进行编程。在一些实施方案中,可基于由用户或图形程序指定的更一般性的标准来对变换参数进行编程。
在各种实施方案中,不同的表510A-510Z用于分别指定用于第二空间的不同部分的变换参数。在一些实施方案中,数据结构500可基于第二空间中需要独特变换的部分的数量来利用包含变换参数的或多或少独特的表。在一些实施方案中,第二空间的各部分可具有相同的尺寸。例如,第二空间的每个部分可为32像素×32像素的方形图块。在其他实施方案中,第二空间的不同部分可具有不同的尺寸。例如,图像中心附近的部分可包含8像素×8像素,而图像边缘附近的部分可包含64像素×64像素。在一些实施方案中,部分可为各种非方形形状。例如,第二空间的一个或多个部分可包含16像素×32像素。在不同的实施方案中可以使用不同的部分尺寸和/或形状。第二空间的部分可根据多个图形处理命名(例如,图块、切片、块、子图块、子切片、子块)进行标记。
在一些实施方案中,一个或多个表可以与第二空间的不止一个部分相关联。例如,在被分成64个方形图块的第二空间中,表510A中的一组变换参数可应用于16个图块,并且表510Z中的另一不同组变换参数可应用于4个图块。在一些实施方案中,一个或多个表可以与第二空间的单个部分相关联。在一些实施方案中,图形单元150被配置为存储元数据,该元数据指示哪个(哪些)表存储针对哪个(哪些)图块的变化参数。
在图示实施方案中,数据结构500包括用作变换参数的缩放因子和偏移量。例如,在图示实施方案中,表510A中的x1维度指定缩放因子2和偏移量0.5。在图示实施方案中,缩放因子2可导致虚拟空间的采样率(相对于变换之前的采样)为一半,并且偏移量0.5可指示在虚拟空间中开始采样的位置。在一些实施方案中,变换参数可包括为了实现跨第二空间的多个部分的分段连续函数的偏移量。在一些实施方案中,第二空间的各个部分的偏移量可参考公共基准点来限定。在一些实施方案中,可以参照光栅化后的像素内容来限定缩放因子和偏移量(或用作变换参数的任何其他函数)。在其他实施方案中,可以参照坐标系来限定缩放因子和偏移量(或用作变换参数的任何其他函数)。在一些实施方案中,坐标系可以是限定各个基元的顶点的坐标的相同坐标系。
在一些实施方案中,数据结构500可以对于第二空间的不同维度包含不同组的变换参数。例如,数据结构500可为用户的左眼和右眼指定不同的变换参数。在图示实施方案中,表510A对于第二空间的一部分中的x1、x2、和y维度中的每一者包含不同的缩放因子和偏移量。x1维度的变换参数可应用于左眼,并且x2维度的变换参数可应用于右眼。为不同维度指定不同变换参数的技术可在立体或分层渲染中或在执行多个渲染通道中提供优势,通常在所渲染图形帧中实现某些效果。在一些实施方案中,数据结构500可以对于与第二空间相关联的不同数据(例如,除顶点坐标之外)包含不同的变换参数。例如,变换参数可用于对于不同图块不同地处理不透明度或纹理数据。
在一些实施方案中,数据结构500可包含用于第二空间中多个图像或帧的变换参数。例如,数据结构500可包含用于第二空间中多个帧的变换参数,使得图形单元可将视频内容变换到第二空间中而不更新数据结构500中的变换参数。在其他实施方案中,数据结构500可对于第二空间中图像或帧的单个实例包含变换参数(例如,可在处理视频数据的不同帧之间更新参数)。在一些实施方案中,一个或多个处理器可对数据结构500进行写操作以基于使用条件(例如,用户位置、显示类型)或场景的内容或特征(例如,相机或光位置)来更新变换参数。例如,图形单元可以在接收关于用户注视方向的信息时更新数据结构500中的变换参数,使得第二空间在从用户接收最多关注的图像的区域中保持高分辨率。在一些实施方案中,图形单元可在场景内容改变时更新数据结构500中的变换参数以在第二空间的某些区域中实现更高或更低的分辨率。又如,当场景中的相机位置改变使得图像的不同部分变得更靠近或更远离相机时,图形单元可更新数据结构500中的变换参数。
在一些实施方案中,数据结构500可以能由图形程序编程以针对第二空间的不同部分指定不同的变换参数。在一些实施方案中,数据结构500可被实现为图形存储器分级结构的一个或多个元素,该图形存储器分级结构可包含各种高速缓存等级、共享存储器结构等。
变换对采样率的示例性效应
图6是根据一些实施方案示出可由于不同变换参数用于第二空间的不同部分而导致的虚拟空间的不同部分的不同采样率的图示。在图示实施方案中,示例性相同基元605和615在虚拟空间中具有相同的尺寸,但在转化之后位于第二空间的不同部分(分别为A和B)中。在例示的实施方案中,在从虚拟空间变换到第二空间中期间,图形单元基于基元605和基元615被映射到第二空间的不同部分而对其应用不同的转化参数。如图所示,所述转化以因子2对基元605进行缩放,并且以因子2.5对基元615进行缩放。
在例示的实施方案中,第二空间中所示的片段坐标对应于虚拟空间中所示的样本坐标(因此,虚拟空间中样本位置的坐标变换为第二空间中片段的坐标)。在例示的实施方案中,基元605以比基元615高的分辨率被采样,因为其所应用的转化参数使用更小的缩放因子。换句话讲,与2.5:1转化相比,对于2:1转化,虚拟空间的每个区域在第二空间中的片段的数量更大。如图6所示,为了利用不同的采样率对虚拟空间的部分进行采样,在虚拟空间中具有相同尺寸的基元可在第二空间中具有不同的尺寸,这可导致图像的各部分看起来扭曲。在图示实施方案中,片段数据反映由转化导致的不同采样率。在一些实施方案中,一旦经转化的基元被光栅化,转化可在虚拟空间的不同部分中的片段数据中导致不同的采样率。
在一些实施方案中,基元605和615在显示器上的尺寸应当相同,但具有不同的分辨率。在一些实施方案中,可以通过透镜观看第二空间中的图像,所述透镜以消除由转化引入的失真的方式对图像的不同部分应用不同的放大。在一些实施方案中,可基于将用于观看图像的显示的透镜来编程转化参数(例如,宽视场虚拟现实显示使用已知透镜类型)。在一些实施方案中,转化参数可被编程为引入抵消由透镜引入的失真的失真,使得用户看到的图像包含很少失真或没有失真。
在一些实施方案中,可在显示之前对第二空间的部分进行重采样,例如,以减少或消除因转化到第二空间而引起的失真。在一些实施方案中,将第二空间重采样到显示空间中可以对第二空间的不同部分使用不同的重采样率。在一些实施方案中,用于第二空间的不同部分的不同重采样率可以基于用于第二空间的不同部分的不同转化参数。在一些实施方案中,在第二空间中重采样图像可消除通过将图像从虚拟空间转化到第二空间中而引入的缩放或失真(例如,使得图6中的基元605和615在转化和重采样之后具有相同的尺寸)。在一些实施方案中,经重采样的图像可在整个图像上具有一致的采样率。在其他实施方案中,经重采样的图像可在不同部分中具有不同的采样率。在一些实施方案中,在扭曲转化之后在第二空间中光栅化和着色更少像素的性能优点可超过重采样第二空间以用于显示的任何性能缺点。重采样可允许利用常规渲染方法(例如,图2A中所讨论的那些)和图形硬件(例如,图2B中所讨论的那些)在第二空间中渲染图像,同时显示具有与虚拟空间图像相同的分辨率和场景内容的图像,但导致图形处理器的计算、延迟和/或功率消耗更少。换句话讲,在光栅化之前执行扭曲转化就可以允许在不考虑扭曲技术的情况下写着色器程序,并且可以选择转化、重采样和/或透镜参数而无需考虑要执行的实际着色。
变换和失真
图7是根据一些实施方案示出由变换引起的失真和示例性校正再采样(例如,在着色后)的图示。在图示实施方案中,相同基元705和715在虚拟空间中具有相同的尺寸。在例示的实施方案中,在转化到第二空间中期间,图形单元在y维度应用缩放因子2给基元705(并且在x维度应用缩放因子1),并且在x维度应用缩放因子2给基元715(并且在y维度应用缩放因子1)。在这两种情况下,由于在x维度和y维度应用不同的缩放因子,因此第二空间中基元的图像相对于虚拟空间中的原始基元失真。
如图所示,将虚拟空间中基元的坐标转化到第二空间中基元的坐标可以相对于虚拟空间中的图像在第二空间中的图像中引入失真。图7所示的实施方案例示了线性失真,但失真可通过各种其他非线性函数中的任意者来引入。如上所述,在一些实施方案中,透镜可被应用于经转化的图像,以便在显示之前移除失真。
在一些实施方案中,为不同维度使用不同的转化参数可导致在虚拟空间中对于不同维度的不同采样率。如图7所示,在虚拟空间的x维度中以较大的密度采样在y维度被缩放因子2转化的基元705,并且在虚拟空间的y维度中以较大的密度采样在x维度被缩放因子2转化的基元715。如上文参照图6所讨论的,在显示之前可重采样转化后的基元。在图7所示的实施方案中,例如,转化后的基元705可在y维度以2x的率重采样,并且基元715在x维度以2x的率重采样。在例示的实施方案中,经转化和重采样的基元705和715可以相同的分辨率显示,使得经转化的经重采样的基元与在虚拟空间中的尺寸相同。
图8A至图8B根据一些实施方案分别示出了虚拟空间中以及第二空间中在扭曲转化之后的示例性图像。如图所示,虚拟空间图像805包含15×20个方形部分,所有方形部分具有相同的尺寸。图示实施方案中的第二空间图像815类似地包含15×20个方形部分。在例示的实施方案中,场景内容可在从虚拟空间转化到第二空间期间移位。例如,需注意,位于虚拟空间805中的行10的顶部附近的地平线移位到第二空间图像815中的行11的顶部。类似地,虚拟空间图像805中的行6-10和列G-M中所包含的“OpenGL”标牌扩展到第二空间图像815中的行5-11和列E-O。第二空间图像805的总图像大小可以比虚拟空间图像815的总图像大小小。在一些实施方案中,转化参数(例如,偏移量和缩放系数)可用于确定哪些基元与第二空间中的哪些图块重叠(并且因此,对于那些图块的着色,应当被考虑)。
在一些实施方案中,图形单元150被配置为使用“边界框”技术来粗略地剔除已知不与部分(例如,图块,在该情况下,对于该图块,基元无需被处理)相交的基元。例如,对于三角形基元,可使用矩形边界框来界定基元在X和Y维度中的最远点。边界框可用于确定对于每个图块应考虑哪些基元,然后在转化后对于该图块对那些基元进行光栅化。在对于不同图块具有不同转化参数的一些实施方案中,边界框以及基元可能也需要被转化。
图8A至图8B还示出了基元边界框的概念。需注意,这些附图使用“OpenGL”标牌作为示例以用于例示的目的,即使它实际上不是基元(而是利用许多基元表示的)。在例示的实施方案中,虚拟空间图像805中的“Open GL”标牌被包含在边界框810内,并且第二空间815中的“Open GL”标牌被包含在转化后的边界框820内。如图所示,将转化参数应用于边界框810就得到转化后的边界框820。在一些实施方案中,图形单元150被配置为分开地存储用于边界框转化和基元转化的转化参数。
因此,在一些实施方案中,图形单元可以为虚拟空间中的一个或多个基元确定边界框,然后将边界框的坐标转化到第二空间中。边界框可以界定一个基元或一组基元(例如,如同图8A至图8B中的“Open GL”标牌是单个基元,或者“Open GL”标牌中的所有基元被分配到公共组)。在一些实施方案中,图形单元可将转化后的边界框与第二空间的一个或多个部分进行比较,以确定第二空间的哪些部分与转化后的边界框相交。图形单元可以仅针对第二空间的与转化后的边界框相交的那些部分处理(例如,光栅化或转化)边界框中所包含的一个或多个基元。在一些实施方案中,对于第二空间的不止一个部分,可以利用不同的转化参数来转化给定基元。例如,图形单元在将场景内容从虚像805转化到位于行5-11和列E-O之外的第二空间图像815的部分中时不会考虑包含在边界框820中的基元,但在将场景内容转化到位于行5-11和列E-O内的第二空间图像815的部分中时会考虑这些基元。这可通过限制为第二空间中的每个部分处理的顶点数据的量而有利地减少计算。
利用按图块变换参数的示例性阴影映射
在一些实施方案中,除了各种其他示例性应用,所公开的扭曲转化技术可应用于阴影映射。如本文所用,术语“阴影映射”是根据其在本领域中熟知的含义来使用,其包括用于确定场景的哪些部分与光源交互的技术(例如,而不是对象阻挡光源并对于来自该光源的光导致阴影的区域)。在一些实施方案中,将不同的变换参数应用于阴影映射的不同部分可以为阴影映射的不同部分使用不同的分辨率。在一些实施方案中,变换参数可以是可编程的,以在不同分辨率对虚拟空间中的阴影映射的不同部分进行采样。例如,可以将光视图渲染到虚拟屏幕空间,并且更靠近相机的阴影可以高分辨率变换到扭曲空间,而远离相机的阴影可以低分辨率变换到扭曲空间(除了或代替相机的位置,各种技术可用于为扭曲空间的不同部分确定变换参数)。这可提供优于常规阴影映射方法(例如,透视阴影映射、级联阴影映射、光空间透视阴影映射等)的有益效果或与常规阴影映射方法结合的改进,诸如消除对于多个阴影映射的需要和/或进一步减少阴影走样。在一些实施方案中,不同的变换参数可用于不同的光源。
附加等角渲染示例
图9A至图9D根据一些实施方案以图形方式示出等角渲染。具体地,图9A和图9B示出了常规直线渲染,而图9C和图9D示出了等角渲染。
图9A示出了使用常规直线投影方法从视点发射光线以对帧900进行采样。在直线投影方法中,光线以相等的距离d从视点发射到3D虚拟空间中以对帧900进行采样。然后由渲染应用程序渲染经采样的帧以生成用于显示的图像。如图9B所示,直线投影方法生成在整个显示器902上具有相同分辨率904的图像。可选择距离d以在用户查看显示器902的中心时提供良好的细节。然而,人眼992只能以一定角度分辨率994来分辨细节。如在图9B中可见,当用户正朝显示器902的边缘看时,图像分辨率高于眼睛的角度分辨率994。因此,直线投影方法趋于朝向图像的边缘过采样。对于宽FOV显示器尤其如此。
图9C示出了使用等角投影方法从视点发射光线以对第二空间帧910进行采样。在等角投影方法中,虚拟空间帧900被转化成第二空间帧910,并且光线以等角A从视点发射到3D空间中以对第二空间帧910进行采样。在一些实施方案中,虚拟空间帧900中的基元的坐标到第二空间帧910的变换可以在光栅化或采样之前进行。这可具有以下优点:减少计算,提高渲染速度和/或降低功率消耗(例如,通过减少被处理的像素或片段的数量和/或通过延迟光栅化过程消除对于重采样的需要)。
在一些实施方案中,第二空间帧910被转化到显示空间中以用于在显示器902上查看。在一些实施方案中,转化到显示空间中可以在光栅化之前进行。这可通过减少被光栅化的片段或像素的数量而有利地减少计算。可以等角A从视点发射光线到3D空间中以对显示空间帧进行采样,或者在其他实施方案中,可以一致的直线采样率对显示空间帧采样。然后由渲染应用程序渲染经采样的帧以生成用于显示的图像。如图9D所示,等角投影方法生成在显示器902的中心处具有较高分辨率并且朝向显示器902的边缘分辨率较低的图像。如在图9D中可见,当用户正朝显示器902的边缘看时,因为显示器902的边缘比显示器的中心距眼睛992的瞳孔更远,所以边缘处的较低图像分辨率提供与在显示器902的中心处提供的类似分辨率并且不像在直线投影方法中那样对于眼睛的角度分辨率994被过采样。
等角渲染方法降低了帧的分辨率,并且因此减少了渲染帧所需的时间,这减少了延迟,并且还减少了对于通过网络或其他通信链路发送的帧需要被传输的位的数量,这减少了带宽使用和延迟。等角渲染技术是本文所讨论的扭曲转化技术的一个非限制性示例使用。类似的技术可基于对用户注视方向的跟踪等而在多个维度中使用,如下文进一步详细讨论。
示例性中心凹渲染技术
在一些实施方案中可使用的另一技术可被称为中心凹渲染,其可用于降低从用户接收较少关注的帧的区域中的帧的分辨率,并且因此减少计算、功率消耗、带宽使用和延迟。在中心凹渲染方法中,图形单元可以使用来自注视跟踪相机的注视跟踪信息(例如,在一个或多个图像中捕获)来识别用户当前观看的方向(称为注视方向)。人眼在中心凹处可感知到比在视网膜的外围区域中更高的分辨率。可根据所确定的注视方向和已知的参数(例如,眼睛参数和从眼睛到显示器的距离)来估计对应于中心凹的帧的区域(称为中心凹区域)。中心凹区域可以较高分辨率渲染,而中心凹区域外的帧(称为外围区域)可以较低分辨率渲染。在一些实施方案中,帧可被变换到第二空间中,以便以不同的采样率渲染中心凹区域和外围区域。在一些实施方案中,不同的变换参数可应用在中心凹区域和外围区域中,使得以不同率对这两个区域采样(例如,中心凹区域和外围区域包含屏幕的使用不同变换参数的不同部分,诸如上文参考图5所讨论的那些)。在其他实施方案中,外围区域可以较高分辨率被渲染,并且随后被转换为较低分辨率,例如通过将滤波器(例如带通滤波器)应用于外围区域。在一些实施方案中,中心凹渲染方法减少了被渲染图像中像素的数量,这减少了需要通过传输帧数据的无线或其他网络链路传输的位的数量,并且因此减少了带宽使用和延迟。
在一些实施方案中,所公开的扭曲空间渲染技术可以允许在不改变着色器程序的情况下执行中心凹渲染。例如,GPU驱动器可接收注视跟踪信息并基于注视跟踪信息以对于着色器程序透明的方式实现用于不同帧的变换参数。这可允许性能提高,而不增加图形开发者的编程负担。
示例性方法
图10是根据一些实施方案示出用于多空间渲染的示例性方法1000的流程图。除了其他设备之外,图10所示的方法可结合本文公开的计算机系统、设备、元件或部件中的任一者来使用。在各种实施方案中,所示的方法要素中的一些可按与所示次序不同的次序并发执行,或者可被省去。也可根据需要执行附加的方法要素。
在1010处,在例示的实施方案中,图形电路(例如,图形单元250)接收基元数据,包括虚拟空间中基元的坐标。在一些实施方案中,图形电路从图形电路外部的程序或过程接收基元数据。在一些实施方案中,图形电路从存储器检索基元数据。在一些实施方案中,虚拟空间中基元的坐标被用于确定基元在所显示场景中将被渲染在哪里。
在1020处,在例示的实施方案中,图形电路接收与一个或多个坐标变换相关联的变换参数。在一些实施方案中,变换参数可指定将虚拟空间中的坐标集变换成第二空间中的相应坐标集的函数。在一些实施方案中,图形单元针对第二空间的不同部分接收不同的变换参数。在一些实施方案中,变换参数可以指定用于在坐标变换中使用的缩放因子和偏移量。在一些实施方案中,可以指定所接收的变换参数以实现某些标准(例如,文件大小、图像分辨率、性能基准等)。
在1030处,在例示的实施方案中,图形电路存储所接收的变换参数。例如,图形单元可将变换参数存储在数据结构500中并经由存储器接口280检索用于在渲染中使用的变换参数。在一些实施方案中,图形单元可以针对第二空间的不同部分存储不同的变换参数。在一些实施方案中,图形单元可以针对第二空间的不同维度存储不同组的变换参数。在一些实施方案中,图形单元可以针对不同的图形帧存储不同组的变换参数。在一些实施方案中,图形电路可以响应于使用环境或正被渲染的图形数据的变化来更新所存储的变换参数。例如,图形电路可以基于场景中相机视图的变化或用户查看视频内容的注视方向的变化来更新变换参数。在一些实施方案中,所存储的变换参数可以是可编程的,使得图形电路响应于从外部程序或过程接收到信息而更新所存储的变换参数。
在1040处,在例示的实施方案中,图形电路(例如,变换电路320)在基元光栅化之前,将虚拟空间中基元的坐标变换到第二空间中基元的坐标,对于第二空间的不同部分使用不同的变换参数。虚拟空间和第二空间的不同部分可以是一个或多个尺寸和形状。将基元变换到第二空间中可能相对于虚拟空间图像在第二空间图像中引入失真(例如,基元的相对尺寸可能在变换期间改变)。在一些实施方案中,将虚拟空间中基元的坐标变换为第二空间中基元的坐标可以包括更新一个或多个基元的顶点数据,包括顶点坐标。在一些实施方案中,所述变换可得到与虚拟空间图像尺寸不同(以像素或坐标表述)的第二空间图像。
在1050处,在例示的实施方案中,图形电路(例如,扫描转换器330)基于第二空间中的基元坐标对基元进行光栅化以生成片段数据,其中在变换期间使用不同的变换参数就使得虚拟空间的不同部分以不同的采样率进行采样。在从虚拟空间到第二空间的变换期间使用不同的变换参数(例如,缩放参数)可导致在光栅化期间以不同的采样率对虚拟空间的不同部分进行采样。例如,将相同的采样率应用于第二空间的两个部分(相对于虚拟空间未缩放的第一部分和以因子2减小尺寸的第二部分)可导致对虚拟空间的一个部分的采样为对虚拟空间的另一部分的两倍那么多。
在1060处,在例示的实施方案中,图形电路(例如可编程着色器260)处理片段数据的至少一部分以确定像素属性。像素/片段着色器可对经光栅化数据进行操作以确定像素属性(例如,颜色、纹理等)。
示例性设备
现在参考图11,其示出了例示设备1100的示例性实施方案的框图。在一些实施方案中,可将设备1100的元件包括在片上系统内。在一些实施方案中,可将设备1100包括在可以是电池供电的移动设备中。因此,设备1100的功率消耗可能是重要的设计考虑因素。在例示的实施方案中,设备1100包括结构体1110、计算复合体1120、输入/输出(I/O)桥接部1150、高速缓存/存储器控制器1145、图形单元250和显示单元1165。在一些实施方案中,除所示的部件之外和/或代替所示的部件,设备1100可包括其他部件(未示出),诸如视频处理器编码器和解码器、图像处理或识别元件、计算机视觉元件等。
结构体1110可以包括各种互连器、总线、MUX、控制器等,并且可以被配置为促进设备1100的各种元件之间的通信。在一些实施方案中,结构体1110的部分可被配置为实现各种不同的通信协议。在其他实施方案中,结构体1110可实现单个通信协议,并且耦接到结构体1110的元件可在内部从所述单个通信协议转换到其他通信协议。
在例示的实施方案中,计算复合体1120包括总线接口单元(BIU)1125、高速缓存1130和内核1135和1140。在各种实施方案中,计算复合体1120可包括各种数量的处理器、处理器内核和/或高速缓存。例如,计算复合体1120可以包括1个、2个或4个处理器内核,或任何其他合适的数量。在一个实施方案中,高速缓存1130是一组关联L2高速缓存。在一些实施方案中,内核1135和/或1140可包括内部指令和/或数据高速缓存。在一些实施方案中,结构体1110、高速缓存1130或设备1100中的其他地方的一致性单元(未示出)可被配置为维持设备1100的各个高速缓存之间的一致性。BIU 1125可被配置为管理计算复合体1120和设备1100的其他元件之间的通信。处理器内核诸如内核1135和1140可被配置为执行可包括操作系统指令和用户应用指令的特定指令集架构(ISA)的指令。
高速缓存/存储器控制器1145可被配置为管理结构体1110与一个或多个高速缓存和/或存储器之间的数据传输。例如,可将高速缓存/存储器控制器1145耦接到L3高速缓存,该L3高速缓存又可耦接到系统存储器。在其他实施方案中,可将高速缓存/存储器控制器1145直接耦接到存储器。在一些实施方案中,高速缓存/存储器控制器1145可包括一个或多个内部高速缓存。
如本文所用,术语“耦接到”可指示元件之间的一个或多个连接,并且耦接可包括中间元件。例如,在图11中,图形单元250可被描述为通过结构体1110和高速缓存/存储器控制器1145“耦接到”存储器。相比之下,在图11的例示的实施方案中,图形单元250“直接耦接”到结构体1110,因为不存在中间元件。
图形单元250可包括一个或多个处理器和/或一个或多个图形处理单元(GPU)。例如,图形单元250可接收面向图形的指令,诸如Metal或指令。图形单元250可基于所接收的面向图形的指令执行专用GPU指令或执行其他操作。图形单元250通常可被配置为并行处理大块数据,并且可在帧缓冲器中构建图像以输出到显示器。图形单元250可包括在一个或多个图形处理流水线中的变换、照明、三角形和/或渲染引擎。图形单元250可输出用于显示图像的像素信息。在一些实施方案中,图形单元250被配置为执行存储器一致性、中间渲染计算、本地图像块和/或像素资源同步技术中的一者或多者。
显示单元1165可被配置为从帧缓冲器读取数据并且提供像素值流以用于显示。在一些实施方案中,显示单元1165可被配置为显示流水线。另外,显示单元1165可被配置为将多个帧混合以产生输出帧。此外,显示单元1165可以包括用于耦接到用户显示器(例如,触摸屏或外部显示器)的一个或多个接口(例如,或嵌入式显示端口(eDP))。
I/O桥接部1150可以包括被配置为实现例如通用串行总线(USB)通信、安全性、音频和/或低功率永远在线功能的各种元件。I/O桥接部1150还可以包括例如诸如脉冲宽度调制(PWM)、通用输入/输出(GPIO)、串行外围接口(SPI)和/或内部集成电路(I2C)的接口。可将各种类型的外围设备和设备经由I/O桥接部1150耦接到设备1100。
在一些实施方案中,设备1100的各种元件可包括分级布置的时钟门控器,包括被耦接以将时钟信号递送到时钟树的不同部分的各系列DET时钟门控器。所公开的技术可减少设备1100中的切换功率消耗,将时钟延迟平衡到设备1100的不同部分,减少设备1100中的错误,实现更高的频率,在较低的电源电压下实现所需的频率,减少每个循环(或例如每个任务、每个像素或每个字节)消耗的能量等。
示例性计算机可读介质
本公开已经在上文中详细描述了各种示例性电路。意图在于本公开不仅涵盖包括此类电路系统的实施方案,而且还涵盖包括指定此类电路系统的设计信息的计算机可读存储介质。因此,本公开旨在支持不仅涵盖包括所公开电路系统的装置、而且还涵盖以被配置为生成包括所公开电路系统的硬件(例如集成电路)的制造系统识别的格式指定电路系统的存储介质的权利要求。对此类存储介质的权利要求旨在涵盖例如生成电路设计但本身不制造该设计的实体。
图12是示出根据一些实施方案的存储电路设计信息的示例性非暂态计算机可读存储介质的框图。在例示的实施方案中,半导体制造系统1220被配置为处理存储在非暂态计算机可读介质1210上的设计信息1215并基于设计信息1215制造集成电路1230。
非暂态计算机可读介质1210可包括各种适当类型的存储器设备或存储设备中的任何设备。介质1210可以是安装介质,例如CD-ROM、软盘或磁带设备;计算机系统存储器或随机存取存储器诸如DRAM、DDR RAM、SRAM、EDO RAM、Rambus RAM等;非易失性存储器诸如闪存、磁介质,例如,硬盘驱动器或光学存储装置;寄存器,或其他类似类型的存储器元件等。介质1210也可包括其他类型的非暂态存储器或它们的组合。介质1210可包括可驻留在不同位置例如通过网络连接的不同计算机系统中的两个或更多个存储器介质。
设计信息1215可利用各种适当的计算机语言中的任何语言来指定,包括硬件描述语言诸如但不限于:VHDL、Verilog、SystemC、SystemVerilog、RHDL、M、MyHDL等。设计信息1215可以能被半导体制造系统1220用来制造集成电路1230的至少一部分。设计信息1215的格式可以被至少一个半导体制造系统1220识别。在一些实施方案中,设计信息1215还可以包括指定集成电路1230的综合和/或布局的一个或多个单元库。在一些实施方案中,设计信息整体或部分地以指定单元库元素及其连接性的网表的形式来指定。单独获取的设计信息1215可以包括或可以不包括用于制造对应集成电路的足够信息。例如,设计信息1215可以指定要制造的电路元件,但不指定它们的物理布局。在这种情况下,设计信息1215可能需要与布局信息组合以实际制造指定的电路。
半导体制造系统1220可以包括被配置为制造集成电路的各种适当元件中的任何元件。这可以包括例如用于(例如在可包括掩膜的晶片上)沉积半导体材料、移除材料、改变所沉积材料的形状、(例如通过掺杂材料或利用紫外处理修改介电常数)对材料改性等等的元件。半导体制造系统1220还可被配置为针对正确操作执行所制造电路的各种测试。
在各种实施方案中,集成电路1230被配置为根据设计信息1215指定的电路设计来操作,这可包括执行本文所述的功能性中的任何功能性。例如,集成电路1230可包括图2B和/或图3中所示的各种元件中的任何元件。另外,集成电路1230可以被配置为执行本文结合其他部件所述的各种功能。另外,本文所述的功能性可由多个连接的集成电路来执行。
如本文所用,形式为“指定被配置为…的电路的设计的设计信息”的短语并不暗示为了满足该要素就必须制造所涉及的电路。相反,该短语表明设计信息描述了一种电路,该电路在被制造时将被配置为执行所指示的动作或者将包括所指定的部件。
本公开已经在上文中详细描述了各种示例性方法。意图在于本公开不仅涵盖包括此类操作的实施方案,而且还涵盖包含能由计算设备执行以执行所公开操作的指令的计算机可读存储介质。在一些实施方案中,非暂态计算机可读存储介质包含能由计算设备执行以执行包括如下的操作的指令:接收基元数据,包括虚拟空间中基元的坐标;接收与一个或多个坐标变换相关联的变换参数;存储所接收的变换参数;在基元光栅化之前,将虚拟空间中基元的坐标变换为第二空间中基元的坐标,对于第二空间的不同部分使用不同的变换参数;基于所述第二空间中的基元坐标对所述基元进行光栅化以生成片段数据,其中在所述变换期间使用所述不同的变换参数就使得所述虚拟空间的不同部分以不同的采样率进行采样;以及处理片段数据的至少一部分以确定像素属性。
尽管上文已经描述了具体实施方案,但这些实施方案并非要限制本公开的范围,即使仅相对于特定特征描述单个实施方案的情况下也是如此。本公开中提供的特征示例意在进行例示,而非限制,除非做出不同表述。上述说明书意在涵盖此类替代形式、修改形式和等价形式,这对知晓本公开有效效果的本领域技术人员将是显而易见的。
本公开的范围包括本文(明确或暗示)公开的任意特征或特征的组合或其任意概括,而无论其是否减轻本文解决的任何或所有问题。因此,在本专利申请(或要求享有其优先权的专利申请)进行期间可针对特征的任何此类组合作出新的权利要求。具体地,参考所附权利要求书,可将从属权利要求的特征与独立权利要求的特征进行组合,并可通过任何适当的方式而不是仅通过所附权利要求书中所列举的特定组合来组合来自相应独立权利要求的特征。
Claims (20)
1.一种装置,包括:
图形电路,所述图形电路被配置为:
接收基元数据,包括虚拟空间中基元的坐标;
接收与一个或多个坐标变换相关联的变换参数;
存储所接收的变换参数;
在所述基元的光栅化之前,基于所存储的变换参数将所述虚拟空间中基元的坐标变换为第二空间中基元的坐标,包括对于所述第二空间的不同部分使用不同的变换参数;
基于所述第二空间中的基元坐标对所述基元进行光栅化以生成片段数据,其中在所述变换期间使用所述不同的变换参数就使得所述虚拟空间的不同部分以不同的采样率进行采样;以及
处理所述片段数据的至少一部分以确定像素属性。
2.根据权利要求1所述的装置,还包括:
寄存器电路,所述寄存器电路能够由图形程序编程来为所述第二空间的所述不同部分指定所述不同的变换参数。
3.根据权利要求1所述的装置,还包括:
重采样电路,所述重采样电路被配置为对所述第二空间的所述不同部分使用不同重采样率来重采样所述片段数据以用于在显示空间中显示。
4.根据权利要求1所述的装置,还包括:
一个或多个透镜,所述一个或多个透镜被配置为消除由于将所述虚拟空间中基元的所述坐标变换成所述第二空间中基元的所述坐标而引入的失真。
5.根据权利要求1所述的装置,其中所述不同的变换参数包括一个或多个缩放因子和一个或多个偏移量。
6.根据权利要求1所述的装置,其中所述变换参数指定对函数的输入,所述函数将所述虚拟空间中的坐标集变换成所述第二空间中的相应坐标集。
7.根据权利要求1所述的装置,还包括:
图形电路,所述图形电路被配置为:
接收注视方向;以及
至少部分地基于所接收的注视方向来确定一个或多个变换参数。
8.根据权利要求1所述的装置,还包括:
图形电路,所述图形电路被配置为:
剔选所述第二空间中的基元数据,使得所述图形电路不为位于可视区之外的基元数据生成片段数据。
9.根据权利要求1所述的装置,还包括:
图形电路,所述图形电路被配置为:
为所述虚拟空间中的一个或多个基元确定边界框;
将所述虚拟空间中所述边界框的坐标变换成所述第二空间中变换后的边界框的坐标;以及
确定所述第二空间的所述一个或多个部分中的哪些部分与变换后的边界框相交;
其中仅针对与其变换后的边界框相交的所述第二空间的部分处理所述基元中的至少一者。
10.根据权利要求1所述的装置,还包括:
图形电路,所述图形电路被配置为:
将所述虚拟空间中一个或多个阴影映射的坐标变换成所述第二空间中一个或多个阴影映射的坐标,其中所述变换针对所述第二空间中所述一个或多个阴影映射的不同部分使用不同的变换参数,使得所述虚拟空间中所述一个或多个阴影映射的不同部分具有不同的采样率。
11.根据权利要求1所述的装置,还包括:
图形电路,所述图形电路被配置为:
为一个或多个图形帧指定一组或多组变换参数。
12.根据权利要求1所述的装置,还包括:
图形电路,所述图形电路被配置为:
为所述第二空间的单个部分指定一组或多组变换参数,其中所述不同组对应于不同维度。
13.一种方法,包括:
接收基元数据,包括虚拟空间中基元的坐标;
接收与一个或多个坐标变换相关联的变换参数;
存储所接收的变换参数;
在所述基元的光栅化之前,基于所存储的变换参数将所述虚拟空间中基元的坐标变换为第二空间中基元的坐标,对于所述第二空间的不同部分使用不同的变换参数;
基于所述第二空间中的基元坐标对所述基元进行光栅化以生成片段数据,其中在所述变换期间使用所述不同的变换参数就使得所述虚拟空间的不同部分以不同的采样率进行采样;以及
处理所述片段数据的至少一部分以确定像素属性。
14.根据权利要求13所述的方法,还包括:
对所述第二空间的所述不同部分使用不同的重采样率,重采样所述片段数据以用于在显示空间中显示。
15.根据权利要求13所述的方法,还包括:
接收注视方向;以及
至少部分地基于所接收的注视方向来确定一个或多个变换参数。
16.根据权利要求13所述的方法,还包括:
指定一个或多个缩放因子和一个或多个偏移量用于用作所述变换参数。
17.根据权利要求13所述的方法,其中所述变换参数指定对函数的输入,所述函数将所述虚拟空间中的坐标集变换成所述第二空间中的相应坐标集。
18.一种存储有设计信息的非暂态计算机可读存储介质,所述设计信息以半导体制造系统识别的格式指定硬件集成电路的至少一部分的设计,所述半导体制造系统被配置为使用所述设计信息来根据所述设计生产所述电路,所述非暂态计算机可读存储介质包括:
图形电路,所述图形电路被配置为:
接收基元数据,包括虚拟空间中基元的坐标;
接收与一个或多个坐标变换相关联的变换参数;
存储所接收的变换参数;
在所述基元的光栅化之前,基于所存储的变换参数将所述虚拟空间中基元的坐标变换为第二空间中基元的坐标,对于所述第二空间的不同部分使用不同的变换参数;
基于所述第二空间中的基元坐标对所述基元进行光栅化以生成片段数据,其中在所述变换期间使用所述不同的变换参数就使得所述虚拟空间的不同部分以不同的采样率进行采样;以及
处理所述片段数据的至少一部分以确定像素属性。
19.根据权利要求18所述的非暂态计算机可读存储介质,其中所述不同的变换参数包括一个或多个旋转因子。
20.根据权利要求18所述的非暂态计算机可读存储介质,其中所述设计信息指定所述电路还包括:
重采样电路,所述重采样电路被配置为重采样所述片段数据以用于在显示空间中显示。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762565415P | 2017-09-29 | 2017-09-29 | |
US62/565,415 | 2017-09-29 | ||
US16/130,265 US10755383B2 (en) | 2017-09-29 | 2018-09-13 | Multi-space rendering with configurable transformation parameters |
US16/130,265 | 2018-09-13 | ||
PCT/US2018/051325 WO2019067245A1 (en) | 2017-09-29 | 2018-09-17 | RENDERED ON MULTIPLE SPACES WITH CONFIGURABLE TRANSFORMATION PARAMETERS |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111133475A true CN111133475A (zh) | 2020-05-08 |
CN111133475B CN111133475B (zh) | 2023-11-07 |
Family
ID=65896804
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880061981.7A Active CN111133475B (zh) | 2017-09-29 | 2018-09-17 | 用于渲染图形对象的装置和方法 |
Country Status (8)
Country | Link |
---|---|
US (2) | US10755383B2 (zh) |
JP (1) | JP7052023B2 (zh) |
KR (1) | KR102338831B1 (zh) |
CN (1) | CN111133475B (zh) |
DE (1) | DE112018004343T5 (zh) |
GB (1) | GB2581603B (zh) |
TW (2) | TWI771653B (zh) |
WO (1) | WO2019067245A1 (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11347052B2 (en) | 2017-10-23 | 2022-05-31 | Sony Corporation | Display control apparatus, head mounted display, and display control method |
CN110324601A (zh) * | 2018-03-27 | 2019-10-11 | 京东方科技集团股份有限公司 | 渲染方法、计算机产品及显示装置 |
US10553012B2 (en) * | 2018-04-16 | 2020-02-04 | Facebook Technologies, Llc | Systems and methods for rendering foveated effects |
US11308681B1 (en) * | 2018-11-02 | 2022-04-19 | Facebook Technologies, Llc. | Display engine for post-rendering processing |
CN110335360B (zh) * | 2019-05-24 | 2020-12-25 | 深圳大学 | 三维元素布局可视化方法和装置 |
KR20210012095A (ko) * | 2019-07-23 | 2021-02-03 | 삼성전자주식회사 | 이미지 데이터의 레이어를 블렌딩하기 위한 전자 장치 |
KR102582407B1 (ko) * | 2019-07-28 | 2023-09-26 | 구글 엘엘씨 | 포비에이티드 메시들로 몰입형 비디오 콘텐츠를 렌더링하기 위한 방법들, 시스템들, 및 매체들 |
US20210192681A1 (en) * | 2019-12-18 | 2021-06-24 | Ati Technologies Ulc | Frame reprojection for virtual reality and augmented reality |
WO2021182126A1 (ja) * | 2020-03-09 | 2021-09-16 | ソニーグループ株式会社 | 情報処理装置、情報処理方法、および記録媒体 |
US11423520B2 (en) * | 2020-10-30 | 2022-08-23 | Facebook Technologies, Llc. | Distortion-corrected rasterization |
GB2600944B (en) * | 2020-11-11 | 2023-03-01 | Sony Interactive Entertainment Inc | Image rendering method and apparatus |
US11562531B1 (en) * | 2022-07-28 | 2023-01-24 | Katmai Tech Inc. | Cascading shadow maps in areas of a three-dimensional environment |
Citations (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6359619B1 (en) * | 1999-06-18 | 2002-03-19 | Mitsubishi Electric Research Laboratories, Inc | Method and apparatus for multi-phase rendering |
WO2007113824A2 (en) * | 2006-04-03 | 2007-10-11 | Camero-Tech Ltd. | System and method for volume visualization in ultra-wideband radar |
US20080309660A1 (en) * | 2007-06-12 | 2008-12-18 | Microsoft Corporation | Three dimensional rendering of display information |
CN101587596A (zh) * | 2009-06-26 | 2009-11-25 | 上海大学 | 光刻胶显影过程三维模拟可视化方法 |
CN101763636A (zh) * | 2009-09-23 | 2010-06-30 | 中国科学院自动化研究所 | 视频序列中的三维人脸位置和姿态跟踪的方法 |
US20130021331A1 (en) * | 2011-07-19 | 2013-01-24 | Toshiba Medical Systems Corporation | Image processing system, image processing apparatus, and image processing method |
CN102915554A (zh) * | 2011-06-24 | 2013-02-06 | 辉达公司 | 在图像渲染中改进样本测试效率的无剪裁时间和镜头界限 |
CN103530078A (zh) * | 2012-06-08 | 2014-01-22 | 苹果公司 | 用于显示镜像的系统与方法 |
CN103810743A (zh) * | 2012-11-07 | 2014-05-21 | 辉达公司 | 在上游着色器中设置下游渲染状态 |
CN104169974A (zh) * | 2012-03-15 | 2014-11-26 | 高通股份有限公司 | 图形处理单元中基于可见性的状态更新 |
CN104952063A (zh) * | 2014-03-25 | 2015-09-30 | Metaio有限公司 | 用于在真实环境的视图中表示虚拟对象的方法和系统 |
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 |
US20160035129A1 (en) * | 2014-07-29 | 2016-02-04 | Nvidia Corporation | Control of a sample mask from a fragment shader program |
CN105405103A (zh) * | 2014-09-10 | 2016-03-16 | 辉达公司 | 通过在空间上和/或在时间上改变采样模式增强抗锯齿 |
CN105787875A (zh) * | 2015-01-14 | 2016-07-20 | 卢茨洛格斯技术有限公司 | 用于在计算机系统中控制空间分辨率的方法和装置 |
CN105809728A (zh) * | 2015-01-19 | 2016-07-27 | 想象技术有限公司 | 在图形处理单元中渲染场景的视图 |
US20160284124A1 (en) * | 2015-03-23 | 2016-09-29 | Kenneth Todd Riddleberger | Three-Dimensional Visual Functional Interactivity |
JP2017515214A (ja) * | 2014-04-05 | 2017-06-08 | ソニー インタラクティブ エンタテインメント アメリカ リミテッド ライアビリテイ カンパニー | ラスタライズパラメータを変更することによりスクリーン位置による有効解像度の変化 |
CN106997612A (zh) * | 2016-01-13 | 2017-08-01 | 索尼互动娱乐股份有限公司 | 图像渲染的装置和方法 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6717578B1 (en) | 1998-02-17 | 2004-04-06 | Sun Microsystems, Inc. | Graphics system with a variable-resolution sample buffer |
US8717423B2 (en) | 2005-05-09 | 2014-05-06 | Zspace, Inc. | Modifying perspective of stereoscopic images based on changes in user viewpoint |
US8217962B2 (en) * | 2009-01-29 | 2012-07-10 | Microsoft Corporation | Single-pass bounding box calculation |
US8669999B2 (en) * | 2009-10-15 | 2014-03-11 | Nvidia Corporation | Alpha-to-coverage value determination using virtual samples |
KR101926570B1 (ko) * | 2011-09-14 | 2018-12-10 | 삼성전자주식회사 | 포스트 프레그먼트 쉐이더를 사용하는 그래픽 처리 방법 및 장치 |
US9478066B2 (en) * | 2013-03-14 | 2016-10-25 | Nvidia Corporation | Consistent vertex snapping for variable resolution rendering |
US9905046B2 (en) | 2014-04-03 | 2018-02-27 | Intel Corporation | Mapping multi-rate shading to monolithic programs |
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 |
US10684485B2 (en) | 2015-03-06 | 2020-06-16 | Sony Interactive Entertainment Inc. | Tracking system for head mounted display |
US9607428B2 (en) | 2015-06-30 | 2017-03-28 | Ariadne's Thread (Usa), Inc. | Variable resolution virtual reality display system |
US10127725B2 (en) | 2015-09-02 | 2018-11-13 | Microsoft Technology Licensing, Llc | Augmented-reality imaging |
US10726619B2 (en) | 2015-10-29 | 2020-07-28 | Sony Interactive Entertainment Inc. | Foveated geometry tessellation |
US10102668B2 (en) * | 2016-05-05 | 2018-10-16 | Nvidia Corporation | System, method, and computer program product for rendering at variable sampling rates using projective geometric distortion |
-
2018
- 2018-09-13 US US16/130,265 patent/US10755383B2/en active Active
- 2018-09-17 JP JP2020517130A patent/JP7052023B2/ja active Active
- 2018-09-17 DE DE112018004343.6T patent/DE112018004343T5/de active Pending
- 2018-09-17 CN CN201880061981.7A patent/CN111133475B/zh active Active
- 2018-09-17 GB GB2004798.1A patent/GB2581603B/en active Active
- 2018-09-17 KR KR1020207008840A patent/KR102338831B1/ko active IP Right Grant
- 2018-09-17 WO PCT/US2018/051325 patent/WO2019067245A1/en active Application Filing
- 2018-09-25 TW TW109105705A patent/TWI771653B/zh active
- 2018-09-25 TW TW107133594A patent/TWI686769B/zh active
-
2020
- 2020-08-24 US US17/001,007 patent/US11113788B2/en active Active
Patent Citations (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6359619B1 (en) * | 1999-06-18 | 2002-03-19 | Mitsubishi Electric Research Laboratories, Inc | Method and apparatus for multi-phase rendering |
WO2007113824A2 (en) * | 2006-04-03 | 2007-10-11 | Camero-Tech Ltd. | System and method for volume visualization in ultra-wideband radar |
US20080309660A1 (en) * | 2007-06-12 | 2008-12-18 | Microsoft Corporation | Three dimensional rendering of display information |
CN101587596A (zh) * | 2009-06-26 | 2009-11-25 | 上海大学 | 光刻胶显影过程三维模拟可视化方法 |
CN101763636A (zh) * | 2009-09-23 | 2010-06-30 | 中国科学院自动化研究所 | 视频序列中的三维人脸位置和姿态跟踪的方法 |
CN102915554A (zh) * | 2011-06-24 | 2013-02-06 | 辉达公司 | 在图像渲染中改进样本测试效率的无剪裁时间和镜头界限 |
US20130021331A1 (en) * | 2011-07-19 | 2013-01-24 | Toshiba Medical Systems Corporation | Image processing system, image processing apparatus, and image processing method |
CN104169974A (zh) * | 2012-03-15 | 2014-11-26 | 高通股份有限公司 | 图形处理单元中基于可见性的状态更新 |
CN103530078A (zh) * | 2012-06-08 | 2014-01-22 | 苹果公司 | 用于显示镜像的系统与方法 |
CN103810743A (zh) * | 2012-11-07 | 2014-05-21 | 辉达公司 | 在上游着色器中设置下游渲染状态 |
CN104952063A (zh) * | 2014-03-25 | 2015-09-30 | Metaio有限公司 | 用于在真实环境的视图中表示虚拟对象的方法和系统 |
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 |
US20150287158A1 (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 |
JP2017515214A (ja) * | 2014-04-05 | 2017-06-08 | ソニー インタラクティブ エンタテインメント アメリカ リミテッド ライアビリテイ カンパニー | ラスタライズパラメータを変更することによりスクリーン位置による有効解像度の変化 |
US20160035129A1 (en) * | 2014-07-29 | 2016-02-04 | Nvidia Corporation | Control of a sample mask from a fragment shader program |
CN105405103A (zh) * | 2014-09-10 | 2016-03-16 | 辉达公司 | 通过在空间上和/或在时间上改变采样模式增强抗锯齿 |
CN105787875A (zh) * | 2015-01-14 | 2016-07-20 | 卢茨洛格斯技术有限公司 | 用于在计算机系统中控制空间分辨率的方法和装置 |
CN105809728A (zh) * | 2015-01-19 | 2016-07-27 | 想象技术有限公司 | 在图形处理单元中渲染场景的视图 |
US20160284124A1 (en) * | 2015-03-23 | 2016-09-29 | Kenneth Todd Riddleberger | Three-Dimensional Visual Functional Interactivity |
CN106997612A (zh) * | 2016-01-13 | 2017-08-01 | 索尼互动娱乐股份有限公司 | 图像渲染的装置和方法 |
Non-Patent Citations (2)
Title |
---|
B. JOACHIMI: "Forecasts of non-Gaussian parameter spaces using Box–Cox transformations" * |
宋玮: "参数化设计在立体影视制作中的应用" * |
Also Published As
Publication number | Publication date |
---|---|
US20200388007A1 (en) | 2020-12-10 |
TWI686769B (zh) | 2020-03-01 |
US20190102865A1 (en) | 2019-04-04 |
TW202046238A (zh) | 2020-12-16 |
KR102338831B1 (ko) | 2021-12-13 |
CN111133475B (zh) | 2023-11-07 |
KR20200040883A (ko) | 2020-04-20 |
GB202004798D0 (en) | 2020-05-13 |
JP7052023B2 (ja) | 2022-04-11 |
DE112018004343T5 (de) | 2020-05-14 |
TWI771653B (zh) | 2022-07-21 |
TW201915937A (zh) | 2019-04-16 |
US10755383B2 (en) | 2020-08-25 |
WO2019067245A1 (en) | 2019-04-04 |
GB2581603B (en) | 2022-08-03 |
GB2581603A (en) | 2020-08-26 |
US11113788B2 (en) | 2021-09-07 |
JP2020535521A (ja) | 2020-12-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111133475B (zh) | 用于渲染图形对象的装置和方法 | |
CN106856009B (zh) | 视网膜凹式渲染 | |
CN109564704B (zh) | 虚拟现实/增强现实设备和方法 | |
CN112085658B (zh) | 用于非均匀帧缓冲器栅格化的装置和方法 | |
US10120187B2 (en) | Sub-frame scanout for latency reduction in virtual reality applications | |
CN109413403B (zh) | 一种渲染3d场景的几何结构的渲染方法和图形处理系统 | |
EP3129958B1 (en) | Method for efficient re-rendering objects to vary viewports and under varying rendering and rasterization parameters | |
CN107392988B (zh) | 利用投影几何失真用于以可变采样率渲染的系统、方法和计算机程序产品 | |
TWI645371B (zh) | 在上游著色器內設定下游著色狀態 | |
US20030174136A1 (en) | Multipurpose memory system for use in a graphics system | |
CN110998665B (zh) | 用于图形处理的穿通技术 | |
CN107392836B (zh) | 使用图形处理管线实现的立体多投影 | |
CN110675480B (zh) | 用于获取纹理操作的采样位置的方法和装置 | |
TW201918745A (zh) | 用於寬視野互動式三維電腦圖形的近眼光場渲染之系統及方法 | |
US20200043228A1 (en) | System-generated stable barycentric coordinates and direct plane equation access | |
US20210012562A1 (en) | Probe-based dynamic global illumination | |
US11638028B2 (en) | Adaptive pixel sampling order for temporally dense rendering | |
US11120609B2 (en) | Reconstruction for temporally dense ray trace rendering | |
US6867778B2 (en) | End point value correction when traversing an edge using a quantized slope value | |
JP4419480B2 (ja) | 画像処理装置およびその方法 |
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 |