CN117057972A - 图形处理单元实例化控制 - Google Patents
图形处理单元实例化控制 Download PDFInfo
- Publication number
- CN117057972A CN117057972A CN202310157727.XA CN202310157727A CN117057972A CN 117057972 A CN117057972 A CN 117057972A CN 202310157727 A CN202310157727 A CN 202310157727A CN 117057972 A CN117057972 A CN 117057972A
- Authority
- CN
- China
- Prior art keywords
- processing unit
- primitives
- graphics processing
- instances
- polygon
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000012545 processing Methods 0.000 title claims abstract description 138
- 238000000034 method Methods 0.000 claims abstract description 72
- 238000009877 rendering Methods 0.000 claims abstract description 57
- 238000003860 storage Methods 0.000 claims description 27
- 239000012634 fragment Substances 0.000 claims description 6
- 230000004044 response Effects 0.000 claims description 3
- 239000003086 colorant Substances 0.000 claims description 2
- 238000007796 conventional method Methods 0.000 abstract description 19
- 230000000007 visual effect Effects 0.000 abstract description 14
- 230000008569 process Effects 0.000 description 14
- 230000006870 function Effects 0.000 description 12
- 230000001419 dependent effect Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 4
- 239000011159 matrix material Substances 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- IRPVABHDSJVBNZ-RTHVDDQRSA-N 5-[1-(cyclopropylmethyl)-5-[(1R,5S)-3-(oxetan-3-yl)-3-azabicyclo[3.1.0]hexan-6-yl]pyrazol-3-yl]-3-(trifluoromethyl)pyridin-2-amine Chemical compound C1=C(C(F)(F)F)C(N)=NC=C1C1=NN(CC2CC2)C(C2[C@@H]3CN(C[C@@H]32)C2COC2)=C1 IRPVABHDSJVBNZ-RTHVDDQRSA-N 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- BYHQTRFJOGIQAO-GOSISDBHSA-N 3-(4-bromophenyl)-8-[(2R)-2-hydroxypropyl]-1-[(3-methoxyphenyl)methyl]-1,3,8-triazaspiro[4.5]decan-2-one Chemical compound C[C@H](CN1CCC2(CC1)CN(C(=O)N2CC3=CC(=CC=C3)OC)C4=CC=C(C=C4)Br)O BYHQTRFJOGIQAO-GOSISDBHSA-N 0.000 description 2
- 244000025254 Cannabis sativa Species 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 241000699670 Mus sp. Species 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- 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
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/20—Drawing from basic elements, e.g. lines or circles
-
- 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
- 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
- G06T9/00—Image coding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/12—Indexing scheme for image data processing or generation, in general involving antialiasing
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Multimedia (AREA)
- Computing Systems (AREA)
- Image Generation (AREA)
Abstract
本公开的实施例涉及图形处理单元实例化控制。描述了图形处理单元实例化控制技术,其克服了传统挑战,以扩展经由图形处理单元提供的功能。在一个示例中,这些技术支持对在对图形处理单元进行的单个绘制调用的相应的实例内的图元进行排序。这是通过对在与用于渲染的多边形相对应的相应的实例内的图元进行排序来执行的。图元的排序克服了传统技术的限制,并通过支持实例的正确重叠和z排序来减少视觉伪像。
Description
背景技术
由计算设备渲染(render)的数字图像包括各种类型的数字对象,其示例包括光栅对象和矢量对象。光栅对象被定义为具有相应的颜色值的像素矩阵(即网格)。但是,因为光栅对象是基于像素的,所以光栅对象是分辨率依赖的(resolution dependent)。这样,缩放级别的改变导致用于形成光栅对象的像素的尺寸的对应改变,这在实践中导致视觉伪像,诸如模糊和像素化外观。此外,存储光栅对象消耗了计算设备的大量存储器资源以定义每个像素并存储这些针对像素的颜色值。
为了解决这一问题,开发了数学上定义的矢量对象,其允许将矢量对象缩放至不同分辨率,而不会损失质量或产生视觉伪像。然而,由传统图形处理单元所提供的提高数字图像渲染效率的功能在某些情况下对于矢量对象是不可用的。例如,一些功能是在像素空间中执行的,因此在向量空间中不可用。因此,在中央处理单元而不是在图形处理单元采用用于克服这一挑战的传统技术,从而抵消了通过使用图形处理单元可以获得的性能优势。
发明内容
描述了图形处理单元实例化控制技术,其克服了传统挑战,以扩展经由图形处理单元提供的功能。在一个示例中,这些技术支持对在对图形处理单元进行的单个绘制调用(draw call)的相应的实例内的图元进行排序。这是通过对与用于渲染的多边形相对应的相应的实例内的图元进行排序来执行的。图元的排序克服了传统技术的限制,并通过支持正确的重叠和z排序来减少视觉伪像。
本发明内容以简化形式介绍了一些概念,这些概念将在下文的具体实现方式中进一步描述。因此,本发明内容不旨在标识所要求保护的主题的必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
附图说明
图1描绘了被配置为执行图形处理单元实例化控制的数字媒体环境。
图2描绘了更详细地示出图1的浏览器的渲染引擎的操作的示例中的系统。
图3描绘了更详细地示出图1的图形处理单元的操作的系统。
图4是描绘了图形处理单元实例化控制的示例实现方式中的过程的流程图。
图5描绘了一种示例实现方式,其示出了对矢量对象的几何形状的分辨率依赖区域和分辨率独立(resolution independent)区域进行渲染的效果。
图6描绘了简单椭圆的镶嵌输出(tessellated output)的示例实现方式。
图7描绘了数字对象的镶嵌产生的数据组织和传送至图形处理单元存储器的示例实现方式。
图8描绘了用于生成抗锯齿扩展(antialiasing spread)的几何放大的示例实现方式。
图9描绘了一种示例实现方式,其中使用单个绘制调用来调取(invoke)来自中央处理单元上的镶嵌输出的样本三角形中的两个实例。
图10描绘了使用用于使用第一实例和第二实例渲染附加三角形的传统实例化技术以进行按批次渲染的现有技术示例。
图11描绘了确定相应的实例中的图元的处理顺序的示例。
图12描绘了图形处理单元将针对相应的实例的图元渲染至帧缓冲器的示例,其遵循由实例化控制模块定义的处理顺序。
图13描绘了与由实例化控制模块计算的处理顺序相比,遵循图10的示例导致视觉伪像的现有技术处理顺序的示例。
图14描绘了针对顶点缓冲器的阵列缓冲器中的顶点缓冲器布局的示例实现方式。
图15描绘了顶点数据到顶点着色器(shader)调取映射的示例实现方式。
图16描绘了通过几何扩展生成抗锯齿扩展的示例实现方式。
图17描绘了作为图16所示几何扩展的一部分,计算针对每个顶点的位置坐标的示例实现方式。
图18描绘了传统技术与本文所描述的当前技术对比的渲染结果的示例。
图19图示了包括示例计算设备的示例系统,该示例计算设备代表实现本文所描述的各种技术的一个或多个计算系统和/或设备。
参考附图对具体实施方式进行了描述。附图中表示的实体指示一个或多个实体,因此在讨论中可互换地引用实体的单一或复数形式。
具体实现方式
概述
图形处理单元被配置为扩展通过计算设备提供的功能,例如,用于创建和渲染数字内容、人工智能和机器学习等。图形处理单元通常与中央处理单元结合使用,作为并行处理的一部分,以扩展通过计算设备提供的特征的功能和速度。例如,中央处理单元被配置为支持计算设备的一般处理功能。另一方面,图形处理单元支持基于图形处理单元的硬件设计加速的特定任务的目标功能。然而,图形处理单元的目标功能在某些情况下不可用,从而降低了计算设备的运行效率。
考虑由中央处理单元执行浏览器的示例。浏览器被实现为由处理设备执行的软件中指定的一组操作,以访问万维网。例如,浏览器可由客户端设备执行以访问服务提供商系统,从而访问通过网络提供的数字服务。随着万维网的扩展,经由数字服务提供的数字内容的功能和复杂性也在增长。
在数字服务涉及数字内容创建和编辑的情景下,例如,数字内容中包含的数字对象的复杂性对计算设备渲染数字内容的能力有直接影响。这方面的一个示例涉及到矢量对象的渲染,该矢量对象也称为矢量图形。然而,用于渲染矢量对象的传统技术受到浏览器可用功能的限制,因此涉及使用中央处理单元来解决这些缺陷,这在计算上是无效率的,并且妨碍了计算设备的操作。
例如,在针对矢量对象的抗锯齿技术中,在矢量对象的边界处计算抗锯齿扩展(antialiasing spread),以减少视觉伪像并提供“平滑”外观。然而,用于生成抗锯齿扩展的传统技术是在中央处理单元处针对每个分辨率执行的。这抵消了由图形处理单元提供的通过渲染矢量对象以“放大”或“缩小”数字对象的视图而得到的任何潜在的性能益处。
因此,描述了改进和扩展计算设备的操作的技术。在一个示例中,这些技术被配置为生成分辨率依赖的抗锯齿扩展,作为使用图形处理单元渲染矢量对象的一部分,这是使用传统技术不可能实现的。这些技术通过在图形处理单元上运行中(on the fly)且实时生成抗锯齿扩展来实现全分辨率独立渲染。此外,这些技术可用于扩展浏览器(即,web界面)可用的功能,以使浏览器能够执行高级数字内容编辑,这是使用传统技术是不可能实现的。
这是通过对在图形处理单元进行的绘制调用中的相应的实例内的图元进行排序来执行的,其方式为减少中央处理单元和图形处理单元之间的通信,并使图形处理单元能够对分辨率的变化做出反应,作为在图形处理单元本身上渲染矢量对象的一部分。尽管在以下讨论中描述的示例中,这些技术被描述为使用浏览器来加以利用,但是这些技术提供的处理效率和功能也适用于渲染数字内容的其他示例。
在一个示例中,浏览器接收数字图像,该数字图像将由显示设备使用渲染引擎进行渲染以供显示。数字图像包括被配置成矢量对象的多边形。因为图形处理单元限于理解图元(也称为几何图元,诸如线、三角形和点),所以渲染引擎将矢量对象转换成图形处理单元能够理解的形式。在这个示例中,这是通过镶嵌(tessellate)矢量对象以形成多边形(例如三角形)来执行的。然后,这些多边形被用作形成抗锯齿扩展的基础,例如,通过几何放大,其中针对要经受抗锯齿的多边形中的每个多边形形成至少两个图元。
“实例化”是一种渲染技术,用于渲染几何形状的多个副本。在数字图像包括被配置成一片草叶的多个数字对象的示例中,使用定义该草叶的单个网格来渲染多个副本,通过使用应用于单个网格的变换矩阵来进行改变以提供变化。结果,实例化可用于支持来自中央处理单元的单个通信,以调取图形处理单元的图形管线来产生这些多个副本。然而,在传统的实例化技术中,进行绘制调用是为了渲染“N”个三角形的一个实例。因为实例的传统处理顺序是使用实例ID来定义的,所以这导致针对每个形状的第一实例被渲染,随后是针对每个形状的第二实例(例如,第一实例的变换副本),等等。这在实践中导致重叠区域的错误和不正确的z排序(z-ordering)。
然而,在本文所描述的技术中,浏览器的渲染引擎被配置为对相应的实例中的图元进行排序,以克服这些传统错误。因此,不是渲染“N”个三角形的一个实例,而是对绘制调用进行排序以按顺序渲染每个三角形的“N”个实例。换句话说,实例被形成为使得与相应的输入多边形相对应的图元被一起包括在单个相应的实例中。这使得针对特定多边形的图元(例如,表示矢量对象和相应的抗锯齿扩展)被一起按顺序渲染,从而保持具有正确重叠的z排序。这些技术可用于支持各种功能,包括通过图形处理单元上运行中处理使用浏览器进行矢量对象渲染,这是使用传统技术不可能实现的。这些和其他示例的进一步讨论包括在以下章节中,并在相应的附图中示出。
在以下讨论中,描述了采用本文所描述的技术的示例环境。还描述了可在示例环境以及其他环境中执行的示例过程。因此,示例过程的执行不限于示例环境,并且示例环境不限于示例过程的执行。
示例环境
图1为可用于采用本文所描述的技术的示例实现方式中的数字媒体环境100的图示。所图示的环境100包括计算设备102,其可以以多种方式配置。
计算设备102,例如,可被配置成台式计算机、膝上型计算机、移动设备(例如,假设手持配置,诸如所图示的平板电脑或移动电话)等。因此,计算设备102的范围从具有大量存储器和处理器资源的全资源设备(例如,个人计算机、游戏控制台)到具有有限存储器和/或处理资源的低资源设备(例如,移动设备)。此外,尽管示出了单个计算设备102,但是计算设备102也代表多个不同的设备,诸如被企业用来执行如图19中所描述的“云上”操作并可用于实现服务提供商系统112的多个服务器。
计算设备102包括中央处理单元104、图形处理单元106和图示为存储装置108的存储器示例。中央处理单元104被配置为执行通用指令来执行操作。例如,中央处理单元104包括执行逻辑运算的算术逻辑单元(ALU)、向算术逻辑单元提供运算并接收这些运算的结果的寄存器、以及管理指令的获取、解码和执行的控制单元。
另一方面,图形处理单元106是使用专用硬件而被实施的,旨在通过使用并行化结构提高效率。这使得图形处理单元106能够通过并行处理数据块来实现提高的效率,例如用于图像渲染、机器学习、人工智能等。图形处理单元106例如经由总线通信地耦合到中央处理单元104。
本示例中的浏览器110(例如,web浏览器、web界面)被图示为在中央处理单元104上执行。浏览器110被配置为支持经由网络114(即,使用统一资源定位符(URL)的互联网或万维网)对服务提供商系统112的访问。例如,浏览器110被配置为从由服务提供商系统112执行的数字服务获得数据(例如,具有数字对象118的数字图像116)。该数据然后由渲染引擎120渲染,以便由显示设备124在用户界面122中显示。
通过在与服务提供商系统112的数字服务处实施的编辑应用128通信的中央处理单元104处执行编辑模块126,图示了这个的示例。例如,编辑模块126包括在经由网络114从编辑应用128接收的数据中描述的本地可执行指令。编辑模块126被配置为编辑数字图像116,例如,被配置成光栅对象、矢量对象等的数字对象118。这可使用编辑像素的操作、数学表示、过滤器的使用等来执行。
浏览器110的渲染引擎120被配置为调用图形管线132的应用编程接口130。这导致着色器134在图形处理单元106处的执行,以执行渲染,例如渲染到帧缓冲器。着色器134是指令的集合,这些指令在中央处理单元104处的渲染引擎120处被编译,然后被发送到图形处理单元106以供执行。在一个示例中,渲染引擎120实现在中央处理单元104上执行的库,以编译指令,这些指令然后例如使用着色语言被发送到图形处理单元106。
如前面所描述的,传统浏览器实现方式不支持其他软件实现方式可用的功能。这方面的一个示例是抗锯齿场景中的几何着色器,这些几何着色器可执行以生成抗锯齿扩展。因此,传统的浏览器实现方式依赖于中央处理单元的处理,这抵消了在计算设备上包含图形处理单元可获得的任何潜在效率。
因此,渲染引擎120包括实例化控制模块136,其被配置为生成处理顺序138,以克服传统技术的挑战。这样,图形处理单元106的功能可用于浏览器110,这在传统技术中是不可能的。此外,实例化控制模块136克服了导致视觉伪像的传统技术的挑战。
实例化是一种按批次渲染图元的技术。然而,用于实例化的传统技术会导致渲染问题。在第一传统示例140中,第一矩形142、第二矩形144和第三矩形146涉及针对每个矩形使用单个绘制调用将单个三角形的相应的实例渲染两次。这导致第一重叠148和第二重叠150作为视觉伪像。这是因为传统的渲染技术基于实例ID来渲染三角形,因此针对每个形状的第一实例首先被渲染,然后是第二实例,依此类推。
另一方面,通过在本文所描述的技术中使用实例化控制模块136,生成处理顺序138,以正确渲染实例,而无视觉伪像。这种情况的示例152被图示为以正确的z顺序渲染的第一矩形154、第二矩形156和第三矩形158。以这种方式,中央处理单元104、图形处理单元106、浏览器110和计算设备102作为整体的操作得到改进。这些和其他示例的进一步讨论包括在以下章节中,并在相应的附图中示出。
一般而言,本章节中描述的示例过程的上下文采用与上面和下面的示例相关的功能、特性和概念。此外,关于本文档中的不同附图和示例描述的功能、特征和概念在彼此之间是可互换的,并且不限于在特定附图或过程的上下文中实现。此外,与不同的代表性过程相关联的框和本文的相应附图可以以不同的方式一起应用和/或组合。因此,本文中关于不同示例环境、设备、组件、附图和过程描述的各个功能、特征和概念可以以任何合适的组合使用,并且不限于本说明书中列举的示例所表示的特定组合。
图形处理单元实例化控制
以下讨论描述了可利用先前描述的系统和设备实施的技术。每个过程的各方面以硬件、固件、软件或其组合来实现。这些过程被示为指定由一个或多个设备执行的操作的一组框,并且不必限于所示的由各个框执行操作的顺序。在以下讨论的部分中,将参考图1-图19,同时参考描述图形处理单元实例化控制技术的示例的图4的过程400。
图2描绘了示例中的系统200,该示例更详细地显示了图1的浏览器110的渲染引擎的操作。首先,浏览器110接收数字对象118(框402)。在这个示例中,数字对象118被配置成矢量对象。如上所述,图形处理单元106与定义的一组基本图元(例如直线、三角形和点)兼容。因此,在该示例中,为了渲染矢量对象,镶嵌模块202被配置为通过镶嵌矢量对象来形成多边形204(例如,三角形)(框404)。
在一个示例中,矢量对象被镶嵌为固定分辨率下的三角形,并且这些三角形由图形处理单元106使用变换矩阵在与不同缩放级别相对应的不同分辨率下进行渲染。然而,在传统实现方式中,涉及这些三角形的进一步处理的其他图像功能对于浏览器110的渲染引擎120是不可用的。这方面的一个示例包括抗锯齿,其通常在像素空间中执行,以生成用于“平滑”三角形之间的过渡的抗锯齿扩展。传统技术在每个分辨率下生成抗锯齿扩展,这降低甚至消除了经由图形处理单元可获得的性能优势。
图5描绘了示例实现方式500,其显示了对矢量对象的几何形状的分辨率依赖区域和分辨率独立区域进行渲染的效果。在第一缩放级别502、第二缩放级别504和第三缩放级别506图示了相同的矢量对象。针对每个缩放级别,矢量对象包括分辨率独立的路径几何形状508、510、512,这些路径几何形状被配置为基于缩放级别自动缩放。分辨率依赖几何形状514、516、518也被定义在包括抗锯齿扩展的对象的边界(例如,分界线)处。如所描绘的,分辨率依赖几何形状514、516、518涉及表现出可视为不规则边界的视觉伪像的薄填充(thinfill)。
图6描绘了简单椭圆的镶嵌输出的示例实现方式600。该椭圆包括白色的内部三角形的分辨率独立602的镶嵌输出和灰色的控制三角形的分辨率依赖的604镶嵌输出。例如,由三次贝塞尔曲线界定的椭圆的路径对象被中央处理单元104上的镶嵌模块202镶嵌成一组三角形。三次贝塞尔曲线被分割成单调二次贝塞尔曲线段。针对每个二次贝塞尔曲线生成控制三角形,并且例如使用Vatti算法将几何形状的内部三角化成内部三角形。
因此,该示例中的控制三角形经受抗锯齿扩展的计算,而内部三角形不经受。因此,在一个实现方式中,渲染引擎120被配置为检测通过镶嵌数字对象118形成的多边形204是数字对象118的内部三角形还是控制三角形。然后针对控制三角形而不是内部三角形实现抗锯齿技术,如下面进一步描述的。
图7描绘了将数字对象镶嵌产生的输出进行数据组织和传送至图形处理单元106存储器的示例实现方式700。曲线702“P1”被镶嵌模块202镶嵌成到顶点缓冲器710的第一三角形704、第二三角形706和第三三角形708,在所图示的示例中第一三角形704、第二三角形706和第三三角形708具有顶点“ABC”、“ADC”和“CBE”。顶点缓冲器710对于图形处理单元106可访问,并且更特定来说,可以由图形处理单元106的着色器134存取。
来自镶嵌(例如,多边形204)的输出数据在顶点缓冲器710中进行组织,并且针对每个顶点包含以下信息:
·坐标位置(x,y);
·颜色(d);和
·抗锯齿属性(u,v)。
在顶点缓冲器710中为每个顶点添加抗锯齿属性,其中值“u”表示图元的类型和抗锯齿面。“u”值的示例包括:
·内部三角形;
·带有凸边抗锯齿(convex side antialiasing)的外部三角形;
·带有凹边抗锯齿(concave side antialiasing)的外部三角形;
·带有逆时针边抗锯齿(anticlockwise side antialiasing)的线;和
·带有顺时针边抗锯齿(clockwise side antialiasing)的线。
值“v”表示在路径对象是笔画的实例中路径对象的笔画宽度。
图8描绘了用于生成抗锯齿扩展的几何放大的示例实现方式800。在所图示的第一示例802和第二示例804中,图元定义模块206用于扩展多边形204,以针对多边形中的每个多边形定义多个图元(框406)作为抗锯齿扩展。第一示例802描述了凸边抗锯齿,第二示例804描述了凹边抗锯齿。
继续之前对控制三角形和内部三角形的讨论,对于顶点缓冲器710中的每个控制三角形(即,检测为控制三角形的多边形,因此不是内部三角形),图元定义模块206采用几何扩展模块210生成至少两个图元,例如三角形。该附图的左侧描绘了第一输入曲线806和第二输入曲线808以及相应的顶点和多边形204(例如,第一三角形810和第二三角形812),它们是几何扩展模块210的输入。由几何扩展模块210生成的用于实现抗锯齿的第一扩展814和第二扩展816使用相应的虚线来描绘,这分别在针对凸曲线和凹曲线的相反方向上执行。
该附图的右侧描绘了由几何扩展模块210形成的图元208,其包括基于第一三角形810的第一图元818和第二图元820以及基于第二三角形812的第一图元822和第二图元824。以这种方式,几何扩展模块210被配置为定义多个图元以包括针对矢量对象的控制三角形的抗锯齿扩展。
再次返回图2,基于相应的多边形204并且与相应的多边形204相对应的图元208由实例化控制模块136作为输入接收,并且被组织在顶点缓冲器710中。在该示例中,不是维护附加图元作为用于抗锯齿的占位符几何形状,而是描述了一种机制来例如经由单个绘制调用来调取针对多个图元的图形管线132。渲染引擎120采用操作调取模块214来调取使用根据处理顺序138被布置的多个实例的单个绘制调用216(框412),即“进行单个绘制调用”。
图9描绘了示例实施方案900,其中单个绘制调用216用于从中央处理单元104上的镶嵌输出的样本三角形中调取两个实例。例如,第一三角形902“T1”经受实例化操作以生成第一实例904“T11”和第二实例906“T12”。在第一三角形902“T1”是控制三角形的示例中,第一实例904“T11”和第二实例906“T11”被变换以生成如图7所示的扩展几何形状的扩展矩形区域。
该扩展区域包括针对控制三角形几何形状的区域以及作为抗锯齿操作的一部分针对贝塞尔曲线和线段形成的抗锯齿扩展。对于内部三角形,本示例中不计算抗锯齿扩展。相反,第一着色器中的一个实例的顶点位置被变换,使得变换后的顶点位置落在视区(即视口维度)之外,并且在图形管线132中光栅化之前被剔除(cull),例如由顶点着色器302剔除。然而,在传统技术中,当试图按批次渲染(例如,从相应的数字对象118形成的)多个多边形204时,即,在针对矢量对象的单个绘制调用中渲染多于单个对象时,这种实践失败。
图10描绘了使用用于使用第一实例1002和第二实例1004渲染附加三角形的传统实例化技术以进行按批次渲染的现有技术示例1000。所图示的示例被采用于绘制第一三角形“P1”、第二三角形“P2”和第三三角形“P3”,这些三角形是重叠的,并且将在单个绘制调用中作为一批次来进行渲染。在图1的示例152中描绘了该渲染的目标,在该示例152中第一矩形154被第二矩形156重叠,第二矩形156被第三矩形158重叠。然而,实际上,实现了第一传统示例140,其包括由不适当的重叠148、150导致的视觉伪像。
这是因为传统渲染技术基于实例ID按顺序处理实例。因此,第一实例1002,图元“T11”1006、“T21”1008和“T31”1010被一起渲染到例如帧缓冲器中。在第二绘制实例1004之后,这些实例的副本的渲染继续进行,这被图示为图元“T12”1012、“T22”1014和“T32”1016。这导致作为偏离渲染预期的视觉伪像的重叠148、150,从而由于这些不准确性使得在传统技术中无法使用实例化。
然而,在本文所描述的技术中,实例化控制模块136被配置为确定针对多个实例212(1)-212(N)的处理顺序138(框408)。为此,实例化控制模块136将与相应的多边形204相对应的相应的图元208(1)-208(N)一起分组在相应的实例212(1)-212(N)中(框410)。
图11描绘了确定相应的实例中的图元的处理顺序的示例1100。为此,实例化控制模块136配置处理顺序138,其中,不是如在传统技术中执行的那样渲染“N”个实例的单个三角形,而是渲染单个三角形的“N”个实例。这里,“N”个实例表示“N”个输入三角形,例如,从矢量对象的镶嵌形成,其中每个三角形表示实际上不存在、而是充当定义图元类型的媒介的虚拟形状,并且用于定义“N”个实例以供图形处理单元106渲染。“N”个实例中的每个实例的镶嵌数据(例如,来自顶点缓冲器710)被映射到该虚拟形状的“N”个实例,用于生成“N”个输出形状。
虚拟形状证明了由图形管线132控制图元的执行顺序的机制。在该示例中,使用乘数因子来定义三角形的数量,该乘数因子即为镶嵌模块202输出的镶嵌输出中的多边形的数量被图元定义模块206增加以形成图元208的因子,例如,针对控制三角形和抗锯齿扩展如下:
Tv=TGPU/TCPU
其中“Tv”表示虚拟形状中的三角形的数量,“TGPU”表示由图形处理单元106渲染的三角形的数量,而“TCPU”表示镶嵌输出中的三角形的数量,镶嵌输出例如是多边形204,然后是基于多边形204针对抗锯齿扩展而形成的图元208。
例如,在图11中,考虑“Tv=2”和“TCPU=N”。虚拟形状三角形“T1”1102和“T2”1104作为由图形处理单元106的图形管线132渲染“2N”个三角形的单个绘制调用216。这里,通过生成两个输入三角形“T1”1102和“T2”1104的“N”个实例来获得三角形的总集合“2N”。因子“2”基于实例的预期用途,以生成第二三角形来完成相应的矩形。因此,该对三角形表示此实例中的虚拟形状。
实例化控制模块136然后被配置为生成处理顺序138,其中图元208(1)-208(N)被分配给相应的实例212(1)-212(N)。为此,在图11中,首先,第一实例1106、第二实例1108、……和“第N”实例1010被形成,使得与相应的多边形相对应的图元被一起渲染。因此,第一实例1106包括图元“T11”1112和“T21”1114,第二实例1108包括图元“T12”1116和“T22”1118,第“N”实例1110包括图元“T1N”1120和“T2N”1122。
图12描绘了图形处理单元106将针对相应的实例的图元渲染至帧缓冲器的示例1200,其遵循实例化控制模块136定义的处理顺序138。类似于图10的先前示例,三个矩形“P1”、“P2”和“P3”将被渲染为由总数为“2*N=6”的图元(例如,三角形)形成。中央处理单元104上的三角形计数等于实例计数为“N=3”的虚拟形状“2(T1,T2)”中的三角形的数量。实例化控制模块136的输出是针对图形处理单元106的图元计数“2*N=6(T11,T21,T12,T21,T13,T13)”。
在第一实例1202处,图元“T11”1208和“T21”1210被渲染。在第二实例1204处,图元“T12”1212和“T22”1214被渲染,之后在第三实例1206处,图元“T13”1216和“T23”1218被渲染。因此,第一实例1202渲染针对“P1”的图元,第二实例1204渲染针对“P2”的图元,第三实例1206渲染针对“P3”的图元。这样,与图10的现有技术相比,防止了视觉伪像。图13描绘了示例1300,其示出了与实例化控制模块136计算的处理顺序138相比,遵循图10的示例导致视觉伪像的现有技术处理顺序1302。
图3描绘了更详细地显示图1的图形处理单元106的操作的系统300。图形处理单元106包括应用编程接口130,经由该接口,绘制调用216被接收。单个绘制调用216调取遵循如前面所描述的处理顺序138被布置在相应的实例2121(1)-212(N)中的图元208(1)-208(N)。
图形管线132被配置为将处理顺序138中的多个图元渲染至帧缓冲器310(框414)。为此,采用顶点着色器302来生成光栅化304,之后利用片段着色器306来定义相应像素的颜色和其他属性308。一旦完成,来自帧缓冲器310的数据由显示设备124显示(框416)。
因此,上述技术采用单个绘制调用216来渲染虚拟形状的“N”个实例,其中“N”为待绘制对象的镶嵌输出中的三角形数量。这导致针对每个绘制调用的“6*N”个顶点着色器302调取。乘数“6”是基于要针对每个虚拟形状被渲染两个三角形(即图元)的确定来计算的,因此是六个顶点。与传统技术相比,“6*N”个顶点着色器302调取节省了针对这些顶点的顶点数据的存储成本,并降低了几何着色器执行性能成本。以下讨论描述了如何编程顶点着色器302和片段着色器306来通过渲染抗锯齿扩展来执行抗锯齿的示例。
图14描绘了针对顶点缓冲器710的阵列缓冲器中的顶点缓冲器布局的示例实现方式1400。如关于图7所述,顶点数据被组织在顶点缓冲器710(例如,线性顶点缓冲器)中,并被传送到图形处理单元106的存储器。针对具有“Ti”个三角形的一批次的路径“P1”1402、“P2”1404、“P3”1406到“PN”1408,顶点以批次中的路径的绘制顺序布置以及以路径中的三角形的绘制顺序布置。
每个顶点着色器调取涉及访问三角形的三个顶点,当前顶点属于该三角形。因为输入绘制形状(例如,虚拟形状)与顶点缓冲器710中存在的数据相分离,所以如图15的示例1500中所示,在针对“N”个图元的顶点数据1502的每个顶点与针对第一实例1506、第二实例1508到第“N”实例1510的对应的“6N”个顶点着色调取1504之间建立映射。
在实现方式中,该技术不使用允许对缓冲器进行原始访问以读取数据的统一缓冲器对象。这是因为使用统一缓冲器对象会限制性能。阵列缓冲器用于存储顶点数据。然后以这样的方式定义顶点阵列属性,即对于每六个顶点,对阵列属性的索引在顶点缓冲器710中推进一个三角形数据。典型地,每个顶点调取导致到顶点阵列属性的索引在一个顶点数据中推进多个字节。利用本文描述的技术,顶点阵列属性索引由三个顶点(一个三角形)的数据推进,并且在每六个顶点着色器调取之后也是如此。
图16描绘了通过几何扩展1602生成抗锯齿扩展的示例实现方式1600。在此示例中,图形处理单元106上的图形管线132的顶点着色器302级计算完全包围控制三角形的矩形,并且接着在基于曲线的凸性的方向上扩展矩形的边,如关于图8所描述。
针对每个曲线的扩展的距离相同,并且在像素空间中预定义。该距离是可变的,基于期望的渲染保真度和渲染设备的分辨率。尽管这些点位于像素空间中,但有多种机制可以放置这些点以覆盖输入三角形的整个区域,并且在三角形周围有额外的像素,以便在任何方向进行适当的抗锯齿。
针对每个顶点着色器调取,顶点着色器302获得定义输入三角形的三个顶点的数据,该输入三角形给定以下输入:
·顶点为A、B和C的三角形
·将输入顶点变换到像素空间的矩阵:M
·偏移距离:D(像素单位)
针对图元“T1i”1606和“T2i”1608的实例“I”1604的每个顶点着色器调取,针对每个顶点“S1”1610、“R1”1612、“P1”1616和“Q1”1618的位置坐标计算几何扩展1602“Ti(A,B,C),D,M”,然后基于顶点ID选择性地挑选顶点坐标。
图17描绘了计算每个顶点的位置坐标的示例实现方式1700,作为图16所示几何扩展的一部分。顶点着色器还被配置为计算每个顶点的附加信息,诸如重心坐标、凸度属性、纹理坐标、图元分类器(诸如直线vs退化曲线分类)。一旦针对向量路径计算了抗锯齿扩展,片段着色器306就处理光栅化304。片段着色器306例如计算光栅化304中每个片段距边界贝塞尔/曲线的带符号距离,并且基于带符号距离对曲线的颜色进行阿尔法调制。
图18描绘了传统技术1802的渲染结果与本文所描述的当前技术1804的对比的示例1800。以这种方式,本文所描述的技术实现了全分辨率独立性,而不损害性能或存储器使用。由于顶点缓冲存储装置的优化,这些技术导致较低的存储器使用,并随后导致中央处理单元104和图形处理单元106之间的数据传送时间减少。此外,这些技术被配置为与浏览器一起使用,这在传统技术中是不可能的。
示例系统和设备
图19在1900处总体图示了示例系统,其包括示例计算设备1902,该计算设备1902代表实现本文所描述的各种技术的一个或多个计算系统和/或设备。这通过包含实例化控制模块136来进行图示。计算设备1902可被配置成例如服务提供商的服务器、与客户端相关联的设备(例如,客户端设备)、片上系统和/或任何其他合适的计算设备或计算系统。
所图示的示例计算设备1902包括彼此通信耦合的处理设备1904、一个或多个计算机可读介质1906和一个或多个I/O接口1908。尽管未示出,计算设备1902还包括将各种组件相互耦合的系统总线或其他数据和命令传送系统。系统总线可以包括不同总线结构中的任何一种或组合,不同总线结构诸如存储器总线或存储器控制器、外围总线、通用串行总线和/或利用各种总线体系结构中的任何一种的处理器或局部总线。还考虑了各种其他示例,诸如控制线和数据线。
处理设备1904代表使用硬件执行一个或多个操作的功能。因此,处理设备1904被图示为包括可被配置成处理器、功能块等的硬件元件1910。这包括作为专用集成电路或使用一个或多个半导体形成的其他逻辑器件的硬件实现。硬件元件1910不受形成它们的材料或其中采用的处理机制的限制。例如,处理器可被配置成(多个)半导体和/或晶体管(例如,电子集成电路(IC))。在这种情况下,处理器可执行指令是电子可执行指令。
图示的计算机可读存储介质1906包括存储器/存储装置1912。存储器/存储装置1912代表与一个或多个计算机可读介质相关联的存储器/存储装置。存储器/存储装置1912包括易失性介质(诸如随机存取存储器(RAM))和/或非易失性介质(诸如只读存储器(ROM)、闪存、光盘、磁盘等)。存储器/存储装置1912包括固定介质(例如,RAM、ROM、固定硬盘驱动器等)以及可移动介质(例如,闪存、可移动硬盘驱动器、光盘等)。如下文进一步描述的,计算机可读介质1906可以以各种其他方式配置。
(多个)输入/输出接口1908代表允许用户向计算设备1902输入命令和信息的功能,还允许使用各种输入/输出设备向用户和/或其他部件或设备呈现信息。输入设备的示例包括键盘、光标控制设备(例如,鼠标)、麦克风、扫描仪、触摸功能(例如,被配置为检测物理触摸的电容或其他传感器)、相机(例如,采用诸如红外频率的可见或不可见波长来将移动识别为不涉及触摸的手势)等。输出设备的示例包括显示设备(例如,监视器或投影仪)、扬声器、打印机、网卡、触觉响应设备等。因此,计算设备1902可以如下文进一步描述的各种方式来配置,以支持用户交互。
本文在软件、硬件元件或程序模块的一般背景下描述了各种技术。通常,这些模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、元素、组件、数据结构等。本文使用的术语“模块”、“功能”和“组件”通常表示软件、固件、硬件或其组合。本文描述的技术的特征是平台无关的,这意味着这些技术可在具有各种处理器的各种商业计算平台上配置。
所描述的模块和技术的实现存储在某种形式的计算机可读介质上或通过其传输。计算机可读介质包括由计算设备1902访问的各种介质。作为示例而非限制,计算机可读介质包括“计算机可读存储介质”和“计算机可读信号介质”。
“计算机可读存储介质”是指与仅仅信号传输、载波或信号本身相比,能够实现信息的持久和/或非暂时性存储(例如,可以由处理设备执行的指令存储在其上)的介质和/或设备。因此,计算机可读存储介质是指非信号承载介质。计算机可读存储介质包括硬件,诸如易失性和非易失性、可移动和不可移动介质和/或以适用于存储信息的方法或技术实现的存储设备,该信息诸如是计算机可读指令、数据结构、程序模块、逻辑元件/电路或其他数据。计算机可读存储介质的示例包括但不限于RAM、ROM、EEPROM、闪存或其他存储技术、CD-ROM、数字多功能盘(DVD)或其他光存储装置、硬盘、盒式磁带、磁带、磁盘存储装置或其他磁存储设备、或其他存储设备、有形介质、或适于存储所需信息并可以由计算机访问的制品。
“计算机可读信号介质”是指信号承载介质,其被配置为例如经由网络向计算设备1902的硬件传输指令。信号介质通常包含计算机可读指令、数据结构、程序模块或调制数据信号中的其他数据,诸如载波、数据信号或其他传输机制。信号介质还包括任何信息传递介质。术语“调制数据信号”是指以在信号中编码信息的方式设置或改变其一个或多个特性的信号。作为示例而非限制,通信介质包括有线介质,诸如有线网络或直接线连接,以及无线介质,诸如声学、RF、红外线和其他无线介质。
如前面所描述的,硬件元件1910和计算机可读介质1906代表以硬件形式实施的模块、可编程设备逻辑和/或固定设备逻辑,这些模块、可编程设备逻辑和/或固定设备逻辑在一些实施例中用于实施本文所描述的技术的至少一些方面,例如执行一个或多个指令。硬件包括集成电路或片上系统、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD)以及硅或其他硬件中的其他实现方式的组件。在这种情况下,硬件作为执行由指令和/或逻辑定义的程序任务的处理设备来操作,该指令和/或逻辑由该硬件以及用于存储用于执行的指令的硬件来实现,例如先前描述的计算机可读存储介质。
前述的组合也可用于实现本文所描述的各种技术。因此,软件、硬件或可执行模块被实现为体现在某种形式的计算机可读存储介质上和/或由一个或多个硬件元件1910实现的一个或多个指令和/或逻辑。计算设备1902被配置为实现对应于软件和/或硬件模块的特定指令和/或功能。因此,可以由计算设备1902作为软件执行的模块的实现方式至少部分地在硬件中实现,例如,通过使用计算机可读存储介质和/或处理设备1904的硬件元件1910。指令和/或功能可以由一个或多个制品(例如,一个或多个计算设备1902和/或处理设备1904)执行/操作,以实现本文所描述的技术、模块和示例。
本文所描述的技术由计算设备1902的各种配置支持,且不限于本文所描述的技术的特定示例。该功能也可以全部或部分地通过使用分布式系统来实现,诸如经由如下所描述的平台1916在“云”1914上实现。
云1914包括和/或代表资源1918的平台1916。平台1916对云1914的硬件(例如,服务器)和软件资源的底层功能进行抽象化。资源1918包括在远离计算设备1902的服务器上执行计算机处理时可以利用的应用和/或数据。资源1918还可以包括通过互联网和/或通过诸如蜂窝或Wi-Fi网络的订户网络提供的服务。
平台1916对资源和功能进行抽象化,以将计算设备1902与其他计算设备相连接。平台1916还用于对资源的缩放进行抽象化,以向所遇到的对经由平台1916实现的资源1918的需求提供相应级别的缩放。因此,在互连设备实施例中,本文描述的功能的实现可以分布在整个系统1900中。例如,该功能可以部分地在计算设备1902上实现,也可经由对云1914的功能进行抽象化的平台1916来实现。
结论
尽管本发明以结构特征和/或方法动作专用的语言进行了描述,但应理解,所附权利要求中定义的本发明不一定限于所描述的特定特征或动作。相反,这些具体特征和动作是作为实现所要求保护的发明的示例形式来公开的。
Claims (20)
1.一种方法,包括:
由处理设备通过镶嵌数字对象来形成多边形;
由所述处理设备针对所述多边形中的每个多边形定义多个图元;
由所述处理设备确定针对多个实例的处理顺序,所述形成包括:将与相应的所述多边形相对应的相应的所述图元一起分组在相应的所述实例中;以及
由所述处理设备调取根据所述处理顺序被布置的所述多个实例,以引起由图形处理单元渲染所述多个图元。
2.根据权利要求1所述的方法,其中所述定义形成针对所述数字对象的所述多边形的抗锯齿扩展。
3.根据权利要求1所述的方法,其中所述定义包括通过几何放大将被形成为三角形的所述多边形中的每个多边形扩展成被形成为三角形的所述多个图元。
4.根据权利要求1所述的方法,其中所述数字对象是贝塞尔曲线或矢量对象。
5.根据权利要求1所述的方法,其中所述定义使用顶点缓冲器中的坐标位置和相应的颜色来定义所述多个图元。
6.根据权利要求5所述的方法,其中所述顶点缓冲器对于所述图形处理单元可访问。
7.根据权利要求1所述的方法,还包括:检测从镶嵌所述数字对象形成的所述多边形是所述数字对象的内部三角形还是控制三角形,并且其中所述形成针对是控制三角形的所述多边形而被执行。
8.根据权利要求1所述的方法,其中所述调取使用单个绘制调用作为包括所述多个实例的批次而被执行。
9.根据权利要求1所述的方法,其中所述渲染由所述图形处理单元执行到帧缓冲器。
10.一种系统,包括:
中央处理单元,被配置为执行包括以下项的操作:
通过将与相应的多边形相对应的图元一起分组在相应的实例中,确定针对所述多个实例的处理顺序;以及
调取包括根据所述处理顺序被布置的所述多个实例的单个绘制调用;
图形处理单元,被配置为响应于所述单个绘制调用,按照针对所述多个实例的所述处理顺序将所述图元渲染到帧缓冲器;以及
所述帧缓冲器。
11.根据权利要求10所述的系统,其中所述确定和所述调取作为由所述中央处理单元执行浏览器的一部分而被执行。
12.根据权利要求10所述的系统,其中所述中央处理单元还被配置为:执行包括通过镶嵌数字对象来形成所述相应的多边形以及针对所述相应的多边形中的每个多边形定义所述图元的操作。
13.根据权利要求12所述的系统,其中所述定义形成针对所述数字对象的所述相应的多边形的抗锯齿扩展。
14.根据权利要求12所述的系统,其中所述定义包括通过几何放大将被形成为三角形的所述相应的多边形扩展成被形成为三角形的所述多个图元。
15.根据权利要求10所述的系统,其中所述中央处理单元还被配置为通过镶嵌数字对象来形成所述相应的多边形。
16.根据权利要求15所述的系统,其中所述数字对象是贝塞尔曲线或矢量对象。
17.根据权利要求15所述的系统,其中所述图形处理单元被配置为使用顶点着色器和片段着色器来渲染所述图元。
18.一种或多种计算机可读存储介质,所述计算机可读存储介质存储指令,所述指令响应于由处理设备执行,使所述处理设备执行操作,所述操作包括:
通过镶嵌矢量对象来形成多边形;
通过针对所述多边形中的每个多边形定义多个图元来生成抗锯齿扩展;
通过将与相应的所述多边形相对应的所述图元一起分组在多个实例的相应的实例中来确定处理顺序;以及
调取对图形处理单元的单个绘制调用来渲染所述矢量对象,所述单个绘制调用包括根据所述处理顺序被布置的所述多个实例。
19.根据权利要求18所述的一种或多种计算机可读存储介质,其中所述操作使用浏览器可执行。
20.根据权利要求18所述的一种或多种计算机可读存储介质,其中所述操作还包括检测从镶嵌所述矢量对象形成的所述多边形是内部三角形还是控制三角形,并且其中所述生成针对是控制三角形的所述多边形而被执行。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/741,976 | 2022-05-11 | ||
US17/741,976 US20230368454A1 (en) | 2022-05-11 | 2022-05-11 | Graphics Processing Unit Instancing Control |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117057972A true CN117057972A (zh) | 2023-11-14 |
Family
ID=86052809
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310157727.XA Pending CN117057972A (zh) | 2022-05-11 | 2023-02-23 | 图形处理单元实例化控制 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20230368454A1 (zh) |
CN (1) | CN117057972A (zh) |
AU (1) | AU2023201361A1 (zh) |
DE (1) | DE102023104824A1 (zh) |
GB (1) | GB2619378A (zh) |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6795088B2 (en) * | 2002-04-11 | 2004-09-21 | Broadcom Corporation | Method and system for more efficiently utilizing processors of a graphics system |
US7505048B2 (en) * | 2003-04-25 | 2009-03-17 | Microsoft Corporation | Estimation of overlap of polygons |
US20080282175A1 (en) * | 2007-05-07 | 2008-11-13 | Adobe Systems Incorporated | Automatically encoded, gracefully degrading panels |
US9177351B2 (en) * | 2012-10-09 | 2015-11-03 | Qualcomm Incorporated | Multi-primitive graphics rendering pipeline |
US9858709B2 (en) * | 2012-11-29 | 2018-01-02 | Samsung Electronics Co., Ltd. | Apparatus and method for processing primitive in three-dimensional (3D) graphics rendering system |
US9489771B2 (en) * | 2013-07-09 | 2016-11-08 | Intel Corporation | Techniques for spatially sorting graphics information |
US10482577B2 (en) * | 2016-07-27 | 2019-11-19 | Adobe Inc. | Dynamic spread anti-aliasing |
US10388056B2 (en) * | 2017-01-26 | 2019-08-20 | Advanced Micro Devices, Inc. | Split frame rendering |
US10373365B2 (en) * | 2017-04-10 | 2019-08-06 | Intel Corporation | Topology shader technology |
GB2580166B (en) * | 2018-12-21 | 2021-06-30 | Imagination Tech Ltd | Primitive block-based rasterization in graphics processing systems |
US10937233B2 (en) * | 2019-07-22 | 2021-03-02 | Arm Limited | Graphics processing systems |
-
2022
- 2022-05-11 US US17/741,976 patent/US20230368454A1/en active Pending
-
2023
- 2023-02-23 CN CN202310157727.XA patent/CN117057972A/zh active Pending
- 2023-02-28 DE DE102023104824.4A patent/DE102023104824A1/de active Pending
- 2023-03-06 AU AU2023201361A patent/AU2023201361A1/en active Pending
- 2023-03-10 GB GB2303534.8A patent/GB2619378A/en active Pending
Also Published As
Publication number | Publication date |
---|---|
AU2023201361A1 (en) | 2023-11-30 |
US20230368454A1 (en) | 2023-11-16 |
GB2619378A (en) | 2023-12-06 |
GB202303534D0 (en) | 2023-04-26 |
DE102023104824A1 (de) | 2023-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5111638B2 (ja) | パラメトリック曲線をより小さなサブパッチに分割する装置およびその方法 | |
US9183651B2 (en) | Target independent rasterization | |
US8269770B1 (en) | Tessellation of trimmed parametric surfaces by walking the surface | |
US9401034B2 (en) | Tessellation of two-dimensional curves using a graphics pipeline | |
CN115147579B (zh) | 一种扩展图块边界的分块渲染模式图形处理方法及系统 | |
US10019802B2 (en) | Graphics processing unit | |
US9723204B2 (en) | Dynamic motion path blur kernel | |
US11120591B2 (en) | Variable rasterization rate | |
US10043233B1 (en) | Digital media environment for processing vector objects of vector artwork | |
US10319068B2 (en) | Texture not backed by real mapping | |
US9955065B2 (en) | Dynamic motion path blur user interface | |
CN115330986B (zh) | 一种分块渲染模式图形处理方法及系统 | |
US10403040B2 (en) | Vector graphics rendering techniques | |
US8436856B1 (en) | Systems and methods for mixing the execution order of shading language code | |
US9779484B2 (en) | Dynamic motion path blur techniques | |
US11010939B2 (en) | Rendering of cubic Bezier curves in a graphics processing unit (GPU) | |
US10937233B2 (en) | Graphics processing systems | |
CN117057972A (zh) | 图形处理单元实例化控制 | |
US20220084283A1 (en) | Anti-aliasing two-dimensional vector graphics using a multi-vertex buffer | |
EP2992512A1 (en) | Anti-aliasing for geometries | |
US11348287B2 (en) | Rendering of graphic objects with pattern paint using a graphics processing unit | |
TW202131277A (zh) | 圖形系統和相應地圖形處理方法 | |
JP6266678B2 (ja) | アビオニクス表示システム | |
US11869123B2 (en) | Anti-aliasing two-dimensional vector graphics using a compressed vertex buffer | |
CN111047666B (zh) | 用于矢量图形和栅格图形的统一数字内容选择系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |