CN105549929A - 用于改善图形性能的方法、装置和计算机程序产品 - Google Patents
用于改善图形性能的方法、装置和计算机程序产品 Download PDFInfo
- Publication number
- CN105549929A CN105549929A CN201510888122.3A CN201510888122A CN105549929A CN 105549929 A CN105549929 A CN 105549929A CN 201510888122 A CN201510888122 A CN 201510888122A CN 105549929 A CN105549929 A CN 105549929A
- Authority
- CN
- China
- Prior art keywords
- vertices
- summit
- rejecting
- represent
- instruction set
- 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
- 238000000034 method Methods 0.000 title claims abstract description 105
- 238000004590 computer program Methods 0.000 title abstract description 8
- 230000008569 process Effects 0.000 claims abstract description 46
- 238000004422 calculation algorithm Methods 0.000 claims description 35
- 238000012360 testing method Methods 0.000 claims description 17
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 claims description 6
- 230000008901 benefit Effects 0.000 description 31
- 239000012634 fragment Substances 0.000 description 27
- 239000000523 sample Substances 0.000 description 17
- 239000000203 mixture Substances 0.000 description 9
- 239000013598 vector Substances 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 239000011159 matrix material Substances 0.000 description 3
- 238000009877 rendering Methods 0.000 description 3
- 230000002349 favourable effect Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000004040 coloring Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000003595 mist Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000010561 standard procedure Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- 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/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
- G06F3/1407—General aspects irrespective of display type, e.g. determination of decimal point position, display with fixed or driving decimal point, suppression of non-significant zeros
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Geometry (AREA)
- Computer Graphics (AREA)
- Human Computer Interaction (AREA)
- General Engineering & Computer Science (AREA)
- Image Generation (AREA)
Abstract
一种用于对数字表示的图形的生成性能进行改善的方法。所述方法包括:接收顶点组的第一表示;基于所述第一表示来确定所述顶点组的第二表示;对所述顶点组的所述第二表示执行第一指令集,以提供所述顶点组的第三表示,所述第一指令集与顶点位置确定相关联;以及对所述顶点组的所述第三表示进行剔除处理。本文还披露了相对应的装置和计算机程序产品。
Description
本申请是2009年7月30日提交的申请号为200910165092.8的同名专利申请的分案申请。
技术领域
本发明涉及数字表示的图形,并且更具体地,本发明涉及用于对数字表示的图形的生成性能进行改善的方法、装置和计算机程序产品。
背景技术
诸如计算机图形等数字表示的图形在性能方面被不断改善。在20世纪80和90年代,用于计算机和游戏控制台的显示适配器是随着图形加速器出现的,从而卸下了中央处理单元(CPU)在图形生成方面的负担。最初,显示适配器提供2D图形的加速,但最终也包括了对加速3D图形的支持。现代的显示适配器使用了名称为图形处理单元(GPU)的处理单元。
由于3D图形的复杂性,因此现今的GPU将其大量的处理能力用于执行与3D图形有关的计算。
显示适配器一直以来的缺点在于其性能。新的应用和游戏要求在更高的场景复杂性、更高的几何细节、更高的分辨率以及更高的图像质量的情况下维持帧率(每秒渲染的屏幕图像),这导致了如下的需求:应该在尽可能短的时间内渲染每个屏幕图像。换言之,提高性能往往是重要的。
提高性能的一种已知方式是通过启用更高的时钟速度、采用流水线技术、或利用并行计算来提高GPU的处理能力。然而,这往往导致更高的功耗并且产生更多的热量。对于电池供电的设备而言,更高的功耗导致电池寿命缩短。功耗和热量是移动设备和桌面显示适配器的主要制约和瓶颈。此外,对每个GPU的时钟速度也存在限制。
因此,仍然存在没有足够的能力来改善数字表示的图形的性能的问题。
发明内容
鉴于上述内容,本发明的目标是解决或至少减少一个或若干个上面讨论的问题。
总体而言,上面的目标由所附独立权利要求来实现。
根据第一方案,本发明是通过一种用于对数字表示的图形的生成性能进行改善的方法实现的。所述方法包括:接收顶点组的第一表示;基于所述第一表示来确定所述顶点组的第二表示;对所述顶点组的所述第二表示执行第一指令集,以提供所述顶点组的第三表示,所述第一指令集与顶点位置确定相关联;以及对所述顶点组的所述第三表示进行剔除处理。
在计算机图形中,顶点包括与空间中的位置相关联的数据。例如,顶点可以是与图元的角相关联的所有数据。顶点不仅与三个空间坐标相关联,而且还与正确渲染物体所需的其它图形信息相关联,例如颜色、反射属性、纹理、以及表面法线。
相连的一组顶点可以用来定义图元。图元可以例如是三角形、四边形、多边形或其它几何形状,或者可替换地,图元可以例如是空间中的表面或点。例如,表示为三角形的图元具有三个顶点,而表示为四边形的图元具有四个顶点。
本发明基于这样的理解,即,可能对顶点组执行剔除。对顶点组执行剔除的优点在于可以丢弃顶点组,这会使得性能得到提升。此外,要被渲染的物体的、在整个渲染的图像中不可见的大部分表面在本处理中不再进行渲染,这也使得性能得到提升。换言之,对顶点组执行剔除的优点在于避免了对在当前帧中不可见的表面进行渲染,这会使得性能得到提升。
关联于顶点位置确定的第一指令集可以是顶点剔除指令。当执行顶点剔除指令时,所述顶点剔除指令可以被设置为用于计算位置边界和其它类型的边界。
执行第一指令集的步骤可以包括使用限界算法(boundedarithmetic)。
使用限界算法的优点在于,可以计算顶点组的第二表示的保守边界,即,用于保证包括顶点组的第二表示的边界。保守边界的优点在于对较简单并且保守的表示执行确定,这会使得性能得到提升。
确定第二表示的步骤还可以包括使用限界算法。
当确定第二表示时使用限界算法的优点在于,第二表示可以变得更简单,这使得对第二表示执行第一指令集更加高效,这会使得性能得到提升。
所述方法可以包括:所述限界算法是由泰勒算法、区间算法以及仿射算法构成的组中的至少一种算法。
其优点在于,所述方法是灵活的并且支持不同类型的限界算法,并且所述方法不限于一种限界算法。区间算法的优点在于它是简单的并由此是快速的。泰勒算法的优点在于,可以通过产生非常紧致的边界的泰勒模型(假如这些模型具有足够高的阶)来精确地表示多项式计算。仿射算法的优点在于:与泰勒算法相比较,它更快速,并且与区间算法相比较,它提供了更好的边界。
所述顶点组可以包括至少两个图元的顶点。
其优点在于,一次可以处理一个以上的图元,这使得性能得到提升。
所述方法包括:所述顶点组包括与关联于顶点位置确定的同一指令集相关联的顶点。
其优点在于简化了顶点组的处理。顶点与关联于顶点位置确定的同一指令集相关联意味着:可以对利用顶点组中的所有顶点确定的所述第二表示使用相同的第一指令集,而不是使用若干个第一指令集。
所述方法还可以包括从关联于顶点位置确定的第二指令集推导出所述第一指令集。
其优点在于,可以从顶点着色器(vertexshader)自动推导出所述第一指令集,而无需用户提供这些指令。用户无需提供指令使得所述方法更加灵活并易于使用。顶点着色器包括与顶点位置确定和诸如顶点加亮等其它每个顶点计算相关联的指令集。
关联于顶点位置确定的第二指令集可以是顶点着色器指令。现有技术的顶点着色器包括顶点着色器指令。
所述方法还可以包括:从所述第二指令集推导出第三指令集,并执行所述第三指令集以提供法线界限。
其优点在于,可以从顶点着色器自动推导出第三指令集,而无需用户提供指令,此外,还可以自动计算法线边界。法线边界的优点在于可以执行背面剔除,这使得性能得到提升。
关联于顶点位置确定的第三指令集可以是顶点法线剔除指令。当执行顶点法线剔除指令时,所述顶点法线剔除指令可以被设置为用于计算法线边界。
接收第一指令集的步骤还可以包括:如果所述顶点组中的顶点数超过阈值,则将所述顶点组划分成至少两个子组,其中,所述至少两个子组包括与关联于顶点位置确定的同一指令集相关联的顶点。
划分成子组的优点在于可以操控适当大小的组。子组越小,剔除处理导致对至少一个顶点组执行剔除的可能性越大。此外,越小的组(子组)一般意味着包围这些组的边界越紧致。越紧致的边界使得计算越高效,这会使得性能得到提升。子组包括与关联于顶点位置确定的同一指令集相关联的顶点的优点在于,可以对利用顶点组中的所有顶点确定的第二表示使用相同的第一指令集。这意味着不必为顶点组中的每个顶点提供关联于顶点位置确定的、用于确定第二表示的新指令集。
确定第二表示的步骤还可以包括:计算所述顶点组的所述第二表示,并将所述顶点组的所述第二表示存储在存储器中。
其优点在于无需每次都执行所述第二表示的计算。作为替换,可以从存储器中取回所述第二表示,这使得性能得到提升。
确定第二表示的步骤还包括:从存储器中取回所述顶点组的所述第二表示。
其优点在于可以从存储器中取回所述第二表示,并且无需再进行计算,这使得性能得到提升。
所述方法还可以包括:从所述顶点组中选择至少一个顶点;对所述至少一个顶点的第一表示执行与顶点位置确定相关联的指令集,以提供所述至少一个顶点的第二表示;以及对所述至少一个顶点的所述第二表示进行剔除处理,其中,所述剔除处理的结果包括剔除所述至少一个顶点的决定和不剔除所述至少一个顶点的决定中的一个决定,并且在所述剔除处理的结果包括剔除所述至少一个顶点的决定的情况下,执行以下步骤:接收顶点组的第一表示;确定所述顶点组的第二表示;对所述顶点组的所述第二表示执行与顶点位置确定相关联的第一指令集,以提供所述顶点组的第三表示;以及对所述顶点组的所述第三表示进行剔除处理。
由于它使得性能得到提升,因此这是有利的。例如,如果剔除处理的结果是决定不剔除所述至少一个顶点,则与根据第一方案的方法相比较,它得到了一种花费更少容量的方法。
所述方法还可以包括:对包围所述顶点组的所述第三表示的包围体进行确定,并对所述包围体进行剔除处理。
其优点在于,与对第三表示执行剔除处理相比较,可以对包围体执行更简单并且更快速的剔除处理,并且其优点还在于可以自动确定所述包围体。
对所述包围体进行所述剔除处理的步骤还可以包括执行以下操作中的至少一个操作:对所述包围体进行视域剔除(viewfrustumculling);对所述包围体进行背面剔除;以及对所述包围体进行遮挡剔除(occlusionculling)。其优点在于要被渲染的物体的、在整个渲染的图像中不可见的大部分表面在本处理中不再进行渲染,并且避免了对在当前帧中不可见的表面进行渲染,这会使得性能得到提升。进一步的优点在于可以应用许多不同的剔除技术。
视域剔除是一种基于以下事实的剔除技术:仅可见的物体(即位于当前视域内的物体)将被绘制。
背面剔除丢弃了没有面向观察者的物体,即该物体的所有法向量没有指向观察者。这些物体将是不可见的,因此不需要绘制它们。
遮挡剔除意味着丢弃被遮挡的物体。
所述第三表示可以是由位置边界和法线边界构成的组中的至少一个。
位置边界和法线边界可以用于确定例如顶点组的位置或边界。优点在于位置边界和法线边界都可以被自动确定。位置边界和法线边界可以用于执行背面剔除。其优点在于,要被渲染的物体的、在整个渲染的图像中不可见的大部分表面在本处理中不再进行渲染,并且避免了对在当前帧中不可见的表面进行渲染,这会使得性能得到提升。另一优点在于,可以计算位置边界和法线边界中的至少一个,这使得性能得到提升。
对所述第三表示进行所述剔除处理的步骤还可以包括执行以下操作中的至少一个:对所述位置边界进行视域剔除;对所述位置边界或所述法线边界进行背面剔除;以及对所述位置边界进行遮挡剔除。
其优点在于可以应用许多不同的剔除技术。另一优点在于可以执行不同类型的剔除中的至少一种,这使得性能得到提升。
根据第二方案,本发明是通过一种用于生成数字表示的图形的装置实现的。所述装置包括用于对数字表示的图形的生成性能进行改善的电路,所述电路用于执行以下操作:接收顶点组的第一表示;确定所述顶点组的第二表示;对所述顶点组的所述第二表示执行与顶点位置确定相关联的第一指令集,以提供所述顶点组的第三表示;以及对所述顶点组的所述第三表示进行剔除处理。
应该注意的是,可以利用与本发明第一方案的任意特征相对应的特征的任意组合来实施本发明的第二方案。
第一方案的优点同样适用于第二方案。
根据第三方案,本发明是通过一种计算机程序产品实现的,其包括存储在计算机可读存储介质上的计算机程序代码,并且当在处理器上执行所述计算机程序代码时,所述计算机程序代码执行根据本发明第一方案的方法。
第一方案的优点同样适用于本发明的第三方案。
通过下面的具体实施方式、所附权利要求书以及附图,本发明的其它目标、特征以及优点将得以显现。
一般地,除非在本文中另行明确定义,否则权利要求书中使用的所有术语都应该根据它们在本技术领域中的普通意义来解释。除非另行明确声明,否则对“一个/一种/所述[元件、设备、部件、装置、步骤等]”的引用被开放地解释为指代所述元件、设备、部件、装置、步骤等中的至少一个示例。除非明确声明,否则本文公开的任何方法的步骤都无需严格按照公开的顺序来执行。
附图说明
通过下面参照附图对当前的优选实施例进行的详细描述,本发明的其它特征和优点将变得显而易见,在附图中:
图1是示出了在根据现有技术的显示适配器中的不同实体如何进行交互的方框图;
图2a是示出了在本发明的实施例中装置内的不同实体如何进行交互的方框图;
图2b是示出了本发明的实施例的方框图;
图2c是示出了本发明的实施例的方框图;
图2d是示出了本发明的实施例的方框图;
图2e是示出了本发明的实施例的方框图;
图3a-d是示出了能够在图2a-e的装置中执行的剔除处理的流程图;
图4是示出了能够在图2a-e的顶点探测单元中执行的顶点探测处理(probingprocess)的流程图;以及
图5示出了实施图2a-e的装置的典型通用计算机的总体架构。
具体实施方式
现在将在下文中参照附图来更完整地描述本发明,在附图中,示出了本发明的特定实施例。然而,本发明可以以许多不同的形式来实施,并且本发明不应该被理解为受本文阐述的实施例的限制;相反,这些实施例是作为实例提供的,从而使得本申请是全面并且完整的,并且这些实施例将本发明的范围完整地传达给本领域技术人员。在全文中,相同的附图标记指代相同的元件。图1是示出了在本领域技术人员已知的常规显示适配器中的不同实体如何进行交互的方框图。根据现有技术的显示适配器可以包括顶点着色器120、三角遍历(triangletraversal)单元130以及片段着色器(fragmentshader)140。根据现有技术的显示适配器的实体对本领域技术人员而言是公知的。
顶点着色器120的输入110是顶点。在计算机图形中,顶点包括与空间中的位置相关联的数据。例如,顶点可以是与图元的角相关联的所有数据。顶点不仅与三个空间坐标相关联,而且还与正确渲染物体所需要的其它图形信息相关联,例如颜色、反射属性、纹理以及表面法线。每个顶点还可以与诸如法线和纹理坐标等其它特性相关联。
相连的一组顶点可以用来定义图元。图元可以例如是三角形、四边形、多边形或其它几何形状,或者可替换地,图元可以例如是空间中的表面或点。例如,表示为三角形的图元具有三个顶点,而表示为四边形的图元具有四个顶点。
顶点着色器120包括针对每个顶点执行的指令集。该指令集可以例如包括简单的矩阵变换、投影变换、多个矩阵乘法的混合、加纹理以及程序置换(proceduraldisplacement)。
三角遍历单元130负责建立由连接的控制器所指示的多边形。尽管可以使用任意的多边形,但是普遍使用三角形。对于每种多边形,三角遍历单元130将要被渲染的多边形划分成一个或更多个片(tile),其中,每个片至少与该多边形部分重叠。一般地,片是包括多个片段的二维矩形。这些片段中的每一个对应于像素,并且包括用于渲染该像素并测试该像素是否应该被渲染在屏幕上所需的所有数据。片的一般大小是8*8个片段,虽然任何片大小都是可能的。
三角遍历单元130的另一个重要任务是找出位于正被渲染的几何图元(例如三角形)内部的片段。这可以使用本领域技术人员已知的各种技术来完成。
片段着色器140针对传递到该单元的每个片段来执行片段着色器程序。这些片段中的每一个对应于像素,并且包括用于渲染该像素并测试该像素是否应该被渲染在屏幕上所需的数据。片段数据可以包括由光栅位置、深度、颜色、纹理坐标、模板或阿尔法(用于混合)构成的组中的至少一种。对于每一个像素,可以存在多种片段样例。
这些片段被进一步处理,以便例如将之前评估的颜色与纹理进行组合、添加诸如雾等效果,并且在可能时识别不需要渲染的片段,即片段剔除。
在这些片段被写入目标缓冲器之前,片段着色器140还可以执行深度测试、阿尔法测试以及混合。
可以将根据现有技术的显示适配器的输出150显示在显示器上。
应该注意,从此处开始将描述本发明。
下面将参照图2来描述根据本发明的用于生成数字表示的图形的装置的不同实施例。该装置包括用于对数字表示的图形的生成性能进行改善的电路。所述装置可以被实施为显示适配器,并且为了便于理解,在下文中,将所述装置称为显示适配器。
图2a是示出了根据本发明的显示适配器201的实施例的方框图。显示适配器201包括用于对数字表示的图形的生成性能进行改善的电路,其形成了用于剔除顶点组的顶点剔除单元214。
顶点剔除单元214的输入210是一组顶点的第一表示。在本文中,将一组顶点的第一表示解释为顶点自身。
在顶点剔除单元214中,对顶点组以及顶点的表示执行剔除。顶点剔除单元214的输出222可以是要被丢弃的顶点组。
下面结合图3a-d进一步描述剔除的细节和效果。
显示适配器201的输出224可以显示在显示器上。
显示适配器201还可以包括顶点探测单元212,参见图2b。顶点探测单元212被设置为用于检查是否能够剔除顶点组中的至少一个顶点。该至少一个顶点可以是顶点组中的第一顶点、最后一个顶点和/或中间的顶点。可替换地,可以从顶点组中随机选择该至少一个顶点。顶点探测单元212可以使用根据现有技术的顶点着色器来变换顶点。然后,顶点探测单元212执行例如视域剔除,并检查该至少一个顶点是否位于该视域内,如果该至少一个顶点位于该视域内,则不能剔除该至少一个顶点。然而,应该要注意的是,还可以使用本领域技术人员已知的其它剔除技术。
如果顶点组中的至少一个顶点不能被剔除,则意味着不能剔除整个顶点组,于是在顶点剔除单元214中最好不要对整个顶点组执行剔除,这是因为这种剔除是需要容量(capacitydemanding)的。
先前已经结合图2a描述过了顶点剔除单元214、顶点剔除单元214的输入210以及显示适配器201的输出224。
图2c是示出了在本发明的实施例中显示适配器201内的不同实体如何进行交互的方框图。显示适配器201包括顶点剔除单元214、顶点着色器216、三角遍历单元218以及片段着色器220。实体216、218和220的类型可以与上面参照图1描述的实体的类型相似。
先前已经结合图2a描述过了顶点剔除单元214、顶点剔除单元214的输入210以及显示适配器201的输出224。
在一个实施例中,图2c的显示适配器201还可以包括先前结合图2b已经描述过的顶点探测单元212。
在另一个实施例中,参见图2d,显示适配器201包括顶点剔除单元214、顶点着色器216、三角遍历单元218、片段剔除单元228以及片段着色器220。实体216、218和220的类型可以与上面参照图1描述的实体的类型相同或相似。
先前已经结合图2a描述过了顶点剔除单元214、顶点剔除单元214的输入210以及显示适配器201的输出224。
在一个实施例中,图2d的显示适配器201还可以包括先前结合图2b已经描述过的顶点探测单元212。
在片段剔除单元228中,根据可替换的剔除程序(也称为可替换的剔除模块)对片执行剔除。在国际专利申请PCT/SE2008/000055中更加详细地介绍了该剔除程序的细节和效果,本文通过引用并入了该国际专利申请PCT/SE2008/000055的内容。
图2d的实施例还可以包括片段探测单元226。片段探测单元226被设置为用于检查是否可以剔除片中的至少一个像素。该至少一个像素例如可以是片的中心像素或片的四个角。如果不能剔除该片的至少一个像素,则意味着该片不能被剔除,于是在片段剔除单元228中最好不要执行该剔除,这是因为这种剔除是需要容量的。
在另一个实施例中,参见图2e,显示适配器201包括基本图元(baseprimitive)剔除单元234、顶点剔除单元214、顶点着色器216、三角遍历单元218以及片段着色器220。实体216、218和220的类型可以与上面参照图1描述的实体的类型相同或相似。
先前已经结合图2a描述过了顶点剔除单元214和显示适配器201的输出224。基本图元剔除单元234的输入208是基本图元。计算机图形领域中的几何图元通常被解释为系统能够操控(例如绘制或存储)的原子几何对象。可以将原子几何对象理解为不能被划分成更小对象的几何对象。所有其它图形元素都能利用这些图元来构造。
在一个实施例中,图2e的显示适配器201还可以包括先前结合图2b已经描述过的顶点探测单元212。
在基本图元剔除单元234中,根据剔除程序来对基本图元执行剔除。在瑞典专利申请0800165-3中,更加详细地介绍了该剔除程序的细节和效果,本文通过引用并入了瑞典专利申请0800165-3的内容。
图2e的实施例还可以包括基本图元探测单元232。基本图元探测单元232被设置为用于检查是否可以剔除基本图元的至少一个顶点。选择该基本图元的至少一个顶点。该至少一个顶点例如可以是该基本图元的顶点或该基本图元的中心。如果不能剔除基本图元的至少一个顶点,则意味着不能剔除该基本图元,于是在基本图元剔除单元234中最好不要执行基本图元剔除,这是因为基本图元剔除是需要容量的。
在附图未示出的另一个实施例中,显示适配器201可以包括基本图元探测单元232、基本图元剔除单元234、顶点探测单元212、顶点剔除单元214、顶点着色器216、三角遍历单元218、片段探测单元226、片段剔除单元228以及片段着色器220。
图3示出了能够在图2a、图2b、图2c、图2d和图2e的顶点剔除单元214中对顶点组执行的剔除程序的流程图。
在步骤310,接收顶点组的第一表示。所接收的顶点组可以包括至少两个图元的顶点。
使用所谓的绘制调用(drawcall)将要被输入到顶点着色器216的顶点聚集成多个组。绘制调用包括顶点和信息,该信息是有关于如何连接顶点而创建图元(例如三角形)的信息。
绘制调用中的顶点共享公共渲染状态,其意味着这些顶点与同一顶点着色器相关联,并且还与同一几何着色器、像素着色器以及其它类型的着色器相关联。渲染状态描述了如何渲染特定类型的物体,包括它的材料属性、相关联的着色器、纹理、变换矩阵、光等。渲染状态例如可以用于渲染树木的一部分的所有图元、人的一部分的所有图元、花茎的所有图元。同一绘制调用中的所有顶点可以用来以相同材料/外观来渲染物体。
通常来说,为了渲染整个图像,需要许多绘制调用。使用绘制调用的原因在于:与一次渲染一个图元并针对每个图元必须切换着色器程序的情况相比,利用相同状态和着色器渲染相对较大的图元组具有更高的效率。使用绘制调用的另一优点在于避免了应用程序接口(API)和图形硬件架构中的开销。
在步骤320,基于所述第一顶点组来确定所述顶点组的第二表示。可以根据以下过程并使用限界算法来计算所述顶点组的第二表示:
三维模型包括k个顶点,pi,i∈[0,k-1]。例如,可以将x坐标的边界计算为:即计算顶点pi,i∈[0,k-1]的所有x坐标的最小值和最大值。这产生了一个区间:还可以针对p的所有其它分量以及针对所有其它变化的参数来计算该区间。应该注意,作为替换,可以应用其它类型的计算方法来计算这些边界。在上面的实例中,使用区间算法。仿射算法或泰勒算法是可以作为替换使用的其它类型的限界算法。
在步骤330,对所述顶点组的所述第二表示执行第一指令集,以提供所述顶点组的第三表示。当执行所述第一指令集时,可以使用限界算法。限界算法例如可以是泰勒算法、区间算法或仿射算法。
在一个实施例中,使用一个或多个多项式来拟合顶点组的特性,并构建泰勒模型,其中,多项式部分包括适合多项式的系数,并且调节余项以使得该泰勒模型包含该组中的所有顶点。与使用区间算法时的情况相比,这种方式可以给出更明显的边界。
在步骤340,对所述顶点组的所述第三表示进行剔除处理。执行剔除是为了避免绘制出看不见的物体或物体看不见的部分。
图3b-d示出了根据图3a的剔除程序的不同实施例的流程图,可以在图2a、图2b、图2c、图2d和图2e的顶点剔除单元214中对顶点组执行剔除程序。
可以采用不同的方式来聚集在步骤310中接收到的顶点组。一种方式是使用整个绘制调用,这意味着在该绘制调用中顶点组的第一表示包括所有顶点。
另一种方式是聚集m个图元的顶点,其中m是常数。当使用该替换方式时,顶点组的第一表示可以跨越一个以上的绘制调用。
另一种方式是根据步骤S311来聚集顶点,参见图3b:如果所述顶点组中的顶点数超过阈值,则将所述顶点组划分成至少两个子组,其中,所述至少两个子组包括与关联于顶点位置确定的同一指令集相关联的顶点。这种聚集顶点的方式是前面描述的两种方式的组合。使用这种方式,组不会跨越一个以上的绘制调用,并且组的大小不会大于m。
另一种聚集顶点的方式包括对例如包围了顶点的位置的区间进行计算。也可以针对诸如颜色等其它参数来计算该区间。将顶点添加到组中,直到该区间超过预先确定的阈值。
在一个实施例中,步骤320可以包括图3b的步骤320a,即,计算顶点组的第二表示,然后将所述顶点组的所述第二表示存储在存储器中。在下一次需要顶点组的第二表示时,可以从存储器中取回所述顶点组的所述第二表示。这在容量方面是高效的,原因在于不必针对每个顶点组都执行计算。只要输入的顶点组与关联于顶点位置确定的同一指令集相关联并与相同的顶点特性相关联,该方案就是可行的。顶点特性例如可以是顶点位置、法线、纹理坐标等。
在一个实施例中,步骤320可以包括图3b的步骤320b,即,可以从存储器中取回顶点组的第二表示。
在一个实施例中,可以从与顶点位置确定相关联的第二指令集推导出第一指令集,如图3c的步骤321。与顶点位置确定相关联的第二指令集在这里被解释成是现有技术的常规顶点着色器中的指令。
然后,分析该指令集,并且将用来计算顶点位置的所有指令进行隔离。这些指令被重新定义为运用诸如泰勒算法、区间算法、仿射算法等限界算法或本领域技术人员已知的其它适当算法。
假设:利用齐次坐标来表示顶点,P=(px,py,pz,pw)T(其中通常pw=1),T是转置运算符,即,使用列向量。在最简单的形式中,顶点着色器程序是对顶点p进行运算并计算新的位置Pd的函数。更一般地,顶点着色器程序是对顶点p和一组变化的参数ti,i∈[0,n-1]进行运算的函数,参见等式(1)。
P=f(p,t,M)等式(1)
为了简化标记,将所有tj个参数放入一个长向量t中。这些参数例如可以是时间、纹理坐标、法向量、纹理等。参数M表示诸如矩阵、物理常数等常参数的集合。
除了Pd之外,顶点着色器程序还可以具有许多其它输出,并由此顶点着色器程序还具有更多输入。下面假设在Pd的计算中使用f的自变量(参数)。
当对关联于顶点位置确定的第一指令集进行推导时,重新用公式表示顶点着色器,以使得输入是所述第二表示(例如,顶点组的特性的区间边界),而输出是顶点位置的边界,参见等式(2)。
下面是泰勒模型的简要描述,以便有助于理解下面的步骤。
在泰勒模型中使用区间,下面的标记用于表示一个区间:
对于n+1次可微函数f(u),其中u∈[u0,u1],泰勒模型f由泰勒多项式Tf和区间余项组成。于是,定义域u∈[u0,u1]上的n阶泰勒模型(这里表示为)为:
在该等式中,是泰勒多项式,是区间余项。该表示被称为泰勒模型,并且该表示是函数f在定义域u∈[u0,u1]上的保守逼近(conservativeenclosure)。还可以定义泰勒模型的算术运算符,其中结果也是保守逼近(另一泰勒模型)。作为一个简单的例子,假设要计算f+g,并将这些函数表示为泰勒模型和于是,它们的和的泰勒模型是还可以推导出更复杂的运算符,如乘法、正弦、对数、指数、倒数等。在BERZ,M.,ANDG.1998,“ComputationandApplicationofTaylorPolynomialswithIntervalRemainderBounds”,ReliableComputing,4,1,83-97中描述了这些运算符的实现细节。
在一个实施例中,顶点组的第二表示可以是顶点特性的区间边界,例如位置和/或法线边界。可以使用限界算法来执行第一指令集。在该实施例中,第三表示是包围体。在一个实施例中,包围体可以是包围盒。例如通过计算每个顶点特性的最小值和最大值来确定第三表示。
在一个实施例中,对包围所述顶点组的所述第三表示的包围体进行确定,并且对所述包围体进行剔除处理,参见图3c的步骤332。
一组物体的包围体是完全包含该组物体的联合的封闭体。包围体可以具有各种形状,例如诸如立方体或长方体之类的盒状体、球体、圆柱体、多面体以及凸包。
创造性的包围体可以是紧致的包围体。包围体是紧致的意味着该包围体的面积或体积尽可能的小,并且仍然完全包围所述顶点组的所述第三表示。
在一个实施例中,顶点组的第二表示是顶点特性的泰勒模型。使用泰勒算法来执行第一指令集。顶点组的第三表示可以是使用第一指令集并利用第二表示计算的边界。这些边界例如可以根据“IntervalApproximationofHigherOrdertotheRangesofFunctions”,QunLinandJ.G.Rokne,ComputersMath.Applic.,vol31,no.7,pp.101-109,1996中公开的方法来计算。在一个实施例中,对包围所述顶点组的所述第三表示的包围体进行确定,并且对所述包围体进行剔除处理。
在另一个实施例中,顶点组的第一表示可以描述参数化的表面(例如,已经进行了细分的表面),其被两个坐标(例如(u,v))参数化。在另一个实施例中,一个或多个多项式模型适合于拟合顶点组的特性。
在一个实施例中,第三表示可以是泰勒模型并且第三表示可以是顶点位置特性的多项式近似。更特别地,它可以是位置边界:即四个泰勒模型。对于单个分量,例如x,位置边界可以用如下幂基函数来表达(为了清晰,省略了余项):
在一个实施例中,所述顶点组的所述第三表示可以是法线边界。对于参数化的表面,非归一化的法线n可以被计算为:
顶点组的第三表示可以是幂形式的泰勒多项式。
确定包围体的一种方式可以是计算泰勒多项式的导数,并由此找出第三表示的最小值和最大值。
确定包围体的另一种方式可以根据如下过程。泰勒多项式被转换成伯恩斯坦(Bernstein)形式。由于伯恩斯坦基的凸包属性保证了多项式的实际表面或曲线位于在伯恩斯坦基中获得的控制点的凸包内,所以通过找到在每一维中的最小和最大控制点值来计算包围体。将等式5变换成伯恩斯坦基:
为了计算包围盒,对于每一维(x、y、z和w),仅计算了在所有pij上的最小值和最大值。这给出了包围盒其中,每个元素都是区间,例如
在这种方式中,上面推导出的位置边界、法线边界以及包围体被用来对顶点组应用不同的剔除技术。
在一个实施例中,使用所述位置边界或所述包围体来执行视域剔除,参见图3d的步骤341。
在一个实施例中,使用所述位置边界或所述包围体来执行遮挡剔除,参见图3d的步骤342。
在一个实施例中,从所述第二指令集推导出第三指令集,并执行所述第三指令集以提供法线边界,参见图3d的步骤343。
在一个实施例中,使用由所述法线边界、所述位置边界以及所述包围体构成的组中的至少一个来执行背面剔除,参见图3d的步骤344。
在一个实施例中,执行步骤341、342和344中的至少一个步骤。步骤341-344无需严格按所公开的顺序来执行。
不应将下面公开的剔除技术理解成是限制性的,相反这些技术是通过实例的方式提供的。本领域技术人员应该认识到,可以使用与下面描述的技术不同的各种技术来执行背面剔除、遮挡剔除以及视域剔除。
视域剔除是一种基于以下事实的剔除技术:仅可见的物体(即位于当前视域内的物体)将被绘制。可以将视域定义为模型世界中可以显现在屏幕上的空间区域。绘制视域外的物体是对时间和资源的浪费,这是因为视域外的物体无论如何也是不可见的。如果物体全部在视域外,则它是不可见的并且可以被丢弃。
在一个实施例中,针对视域的平面来测试包围体的位置边界。由于包围体位于齐次裁剪空间(clipspace)内,所以可以在裁剪空间中执行该测试。可以使用针对平面-盒(plane-box)测试的标准优化,其中,仅包围体(该包围体为包围盒)的单个角被用来评估平面方程。于是,每个平面测试相当于相加和比较。例如,如果包围体在左平面外,则使用来执行测试。也可以使用位置边界来执行测试。因为这些测试在时间和资源方面是高效的,所以将视域测试作为首先进行的测试是有利的。
背面剔除丢弃了没有面向观察者的物体,即该物体的所有法向量没有指向观察者。这些物体将是不可见的,因此不需要绘制它们。
给出表面上的一个点p(u,v),一般将背面剔除计算为:
c=p(u,v)·n(u,v)等式(10)
在该等式中,n(u,v)是(u,v)处的法向量。如果c>0,则对于该特定值(u,v)而言,p(u,v)是位于背面的。同样地,该公式也可以用来剔除例如三角形或一组三角形,例如由一组顶点描述的三角形。计算点积(参见等式7和10)的泰勒模型:为了能够进行背面剔除,必须在整个三角域上保持以下条件:再次使用伯恩斯坦形式的凸包属性来保守估计的下限。这给出了一个区间并且如果c>0,则可以剔除该三角形或一组三角形。
在另一实施例中,针对法线来计算区间边界,以检查是否满足背面条件。
也可以使用位置边界或替换地使用包围体来执行测试。
遮挡剔除意味着丢弃被遮挡的物体。下面针对包围盒来描述遮挡剔除,但是本领域技术人员应该认识到,也可以针对其它类型的包围体来执行遮挡剔除。
除了在深度缓冲器中仅使用单个额外级(extralevel)(8*8个像素片)之外,遮挡剔除技术与分级的深度缓冲非常类似。最大深度值被存储在每个片中。这是在对三角形进行光栅化时使用的GPU中的标准技术。对裁剪空间的包围盒b进行投影,并且对与轴对齐盒重叠的所有片进行访问。在每个片处,执行经典的遮挡剔除:如果满足该比较,则指示该盒在当前片处被遮挡。从裁剪空间的包围盒获得该盒的最小深度从分级的深度缓冲器(其已经存在于当今的GPU中)获得片的最大深度注意,只要发现片未被遮挡,就可以终止测试,并且注意,直接将更多级添加到分级的深度缓冲器。遮挡剔除测试可以被视为要渲染的图元组的包围盒的非常低廉的预光栅化。因为该技术以片为单位进行操作,所以比遮挡查询的花费少。
在另一实施例中,也可以使用位置边界来执行测试。
在一个实施例中,剔除处理是可替换的。这意味着可以向顶点剔除单元214提供用户定义的剔除处理。
图4示出了能够在图2a、图2b、图2c、图2d和图2e的顶点探测单元212中对至少一个顶点执行的探测程序的流程图。
从顶点组中选择至少一个顶点,参见步骤301。对所述至少一个顶点的第一表示执行与顶点位置确定相关联的指令集,以提供所述至少一个顶点的第二表示,参见步骤302。对所述至少一个顶点的第二表示进行剔除处理,参见步骤303,其中,所述剔除处理的结果包括丢弃所述至少一个顶点的决定和不丢弃所述至少一个顶点的决定二者之一。在所述剔除处理的结果包括丢弃所述至少一个顶点的决定时,执行步骤310-340。在本发明的装置201或本发明的实施例中可以执行结合图3a-d描述的步骤。
图5示出了实施图2的显示适配器201的典型通用计算机583的总体架构。计算机583具有诸如CPU等控制器570,其能够执行软件指令。控制器570连接到诸如随机存取存储器(RAM)等易失性存储器571和显示适配器500,该显示适配器对应于图2的显示适配器201。显示适配器500又连接到显示器576,例如CRT监视器、LCD监视器等。控制器570还连接到诸如硬盘驱动器或闪速存储器等持久性存储装置573、以及诸如光介质(例如CD、DVD、HD-DVD或蓝光光盘)的读取器和/或写入器等光存储装置574。网络接口581也被连接到控制器570,以提供对网络582(例如局域网、广域网(例如因特网)、无线局域网或无线城域网)的访问。通过外围设备接口577,例如典型的通用串行总线接口、无线通用串行总线接口、火线接口、RS232串行接口、Centronics并行接口、PS/2接口,控制器570可以与鼠标578、键盘579或任何其它外围设备(包括操纵杆、打印机、扫描仪等)进行通信。
应该注意的是,尽管通用计算机在上面被描述成用于实施本发明的各种实施例,但是在利用数字图形,特别是3D图形的任何环境(例如游戏控制台、移动电话、MP3播放器等)中,同样可以很好地实施本发明。
还可以在更加多的通用架构中实施本发明。这种架构例如可以包括能够执行任何类型的程序的许多小型处理器内核。相对于更多的以硬件为中心的GPU来说,这意味着一种软件GPU。
已经在上文参照若干实施例大体上描述了本发明。然而,本领域技术人员应该容易地意识到,与上面公开的实施例不同的其它实施例同样可能落入所附权利要求书限定的本发明的范围内。
Claims (14)
1.一种方法,包括:
接收顶点组的第一表示;
从所述顶点组中选择单个顶点;
对所选择的单个顶点的第一表示执行与顶点位置确定相关联的指令集,以提供所选择的单个顶点的第二表示;
对所选择的单个顶点的第二表示进行剔除处理以确定所选择的单个顶点是否应被剔除,而不用测试所述顶点组中的其余顶点,其中,所述剔除处理的结果包括以下两种决定中的一种:
剔除所选择的单个顶点的决定,以及
不剔除所选择的单个顶点的决定;
如果所述剔除处理的结果包括不剔除所选择的单个顶点的决定,则避免剔除所述顶点组;以及
如果所述剔除处理的结果包括剔除所选择的单个顶点的决定,则:
使用限界算法基于所述第一表示来确定所述顶点组的第二表示,其中,所述第二表示是位置边界或法线边界;
对所述顶点组的第二表示执行与顶点位置确定相关联的第一顶点剔除指令集,以提供所述顶点组的第三表示,所述第三表示是包围体、位置边界或法线边界;以及
对所述顶点组的第三表示进行剔除处理。
2.根据权利要求1所述的方法,其中,所述限界算法是由泰勒算法、区间算法以及仿射算法构成的组中的至少一种算法。
3.根据权利要求1所述的方法,其中,所述顶点组包括至少两个图元的顶点。
4.根据权利要求1所述的方法,其中,所述顶点组包括与关联于顶点位置确定的同一指令集相关联的顶点。
5.根据权利要求1所述的方法,还包括从与顶点位置确定相关联的第二指令集推导出所述第一顶点剔除指令集。
6.根据权利要求5所述的方法,还包括:
从所述第二指令集推导出第三指令集;以及
执行所述第三指令集以提供法线边界。
7.根据权利要求1所述的方法,其中,接收第一表示的步骤还包括:
如果所述顶点组中的顶点数超过阈值,则将所述顶点组划分成至少两个子组,
其中,所述至少两个子组包括与关联于顶点位置确定的同一指令集相关联的顶点。
8.根据权利要求1所述的方法,其中,确定第二表示的步骤还包括:
计算所述顶点组的所述第二表示;以及
将所述顶点组的所述第二表示存储在存储器中。
9.根据权利要求1所述的方法,其中,确定第二表示的步骤还包括:
从存储器中取回所述顶点组的所述第二表示。
10.根据权利要求1所述的方法,还包括:
对包围所述顶点组的所述第三表示的包围体进行确定;以及
对所述包围体进行剔除处理。
11.根据权利要求10所述的方法,其中,对所述包围体进行剔除处理的步骤还包括执行以下操作中的至少一个:
对所述包围体进行视域剔除;
对所述包围体进行背面剔除;以及
对所述包围体进行遮挡剔除。
12.根据权利要求10所述的方法,其中,所述第三表示是由位置边界和法线边界构成的组中的至少一种边界。
13.根据权利要求12所述的方法,其中,对所述第三表示进行所述剔除处理的步骤还包括执行以下操作中的至少一个:
对所述位置边界进行视域剔除;
对所述位置边界或所述法线边界进行背面剔除;以及
对所述位置边界进行遮挡剔除。
14.一种装置,包括:
用于接收顶点组的第一表示的模块;
用于从所述顶点组中选择单个顶点的模块;
用于对所选择的单个顶点的第一表示执行与顶点位置确定相关联的指令集,以提供所选择的单个顶点的第二表示的模块;
用于对所选择的单个顶点的第二表示进行剔除处理以确定所选择的单个顶点是否应被剔除,而不用测试所述顶点组中的其余顶点的模块,其中,所述剔除处理的结果包括以下两种决定中的一种:
剔除所选择的单个顶点的决定,以及
不剔除所选择的单个顶点的决定;
用于如果所述剔除处理的结果包括不剔除所选择的单个顶点的决定,避免剔除所述顶点组的模块;
用于如果所述剔除处理的结果包括剔除所选择的单个顶点的决定,则进行以下操作的模块:
使用限界算法基于所述第一表示来确定所述顶点组的第二表示的模块,其中,所述第二表示是位置边界或法线边界;
对所述顶点组的第二表示执行与顶点位置确定相关联的第一顶点剔除指令集,以提供所述顶点组的第三表示,所述第三表示是包围体、位置边界或法线边界;以及
对所述顶点组的第三表示进行剔除处理。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
SE0801742A SE0801742L (sv) | 2008-07-30 | 2008-07-30 | Förfarande, apparat och datorprogramprodukt för förbättrad grafikprestanda |
SE0801742-8 | 2008-07-30 | ||
CN200910165092A CN101639767A (zh) | 2008-07-30 | 2009-07-30 | 用于改善图形性能的方法、装置和计算机程序产品 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910165092A Division CN101639767A (zh) | 2008-07-30 | 2009-07-30 | 用于改善图形性能的方法、装置和计算机程序产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105549929A true CN105549929A (zh) | 2016-05-04 |
CN105549929B CN105549929B (zh) | 2019-11-15 |
Family
ID=41228219
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510888122.3A Expired - Fee Related CN105549929B (zh) | 2008-07-30 | 2009-07-30 | 用于改善图形性能的方法、装置和计算机可读介质 |
CN200910165092A Pending CN101639767A (zh) | 2008-07-30 | 2009-07-30 | 用于改善图形性能的方法、装置和计算机程序产品 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910165092A Pending CN101639767A (zh) | 2008-07-30 | 2009-07-30 | 用于改善图形性能的方法、装置和计算机程序产品 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8654122B2 (zh) |
EP (1) | EP2149861A3 (zh) |
CN (2) | CN105549929B (zh) |
SE (1) | SE0801742L (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100097377A1 (en) * | 2008-10-20 | 2010-04-22 | Jon Hasselgren | Graphics Processing Using Culling on Groups of Vertices |
US9589310B2 (en) * | 2009-10-07 | 2017-03-07 | Nvidia Corporation | Methods to facilitate primitive batching |
US9038034B2 (en) * | 2009-12-22 | 2015-05-19 | Intel Corporation | Compiling for programmable culling unit |
KR101681056B1 (ko) | 2010-10-01 | 2016-12-01 | 삼성전자주식회사 | 정점 처리 방법 및 장치 |
KR20120065589A (ko) * | 2010-12-13 | 2012-06-21 | 삼성전자주식회사 | 저전력을 위한 타일 비닝 장치 및 방법 |
KR101794537B1 (ko) * | 2011-01-21 | 2017-11-07 | 삼성전자주식회사 | 데이터 처리 장치 및 방법 |
US9153068B2 (en) * | 2011-06-24 | 2015-10-06 | Nvidia Corporation | Clipless time and lens bounds for improved sample test efficiency in image rendering |
US20170330371A1 (en) * | 2014-12-23 | 2017-11-16 | Intel Corporation | Facilitating culling of composite objects in graphics processing units when such objects produce no visible change in graphics images |
CN105184843B (zh) * | 2015-09-25 | 2018-01-26 | 华中科技大学 | 一种基于OpenSceneGraph的三维动画制作方法 |
JP6910130B2 (ja) | 2015-11-06 | 2021-07-28 | 三星電子株式会社Samsung Electronics Co.,Ltd. | 3dレンダリング方法及び3dレンダリング装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5757321A (en) * | 1992-10-02 | 1998-05-26 | Canon Kabushiki Kaisha | Apparatus and method for clipping primitives using information from a previous bounding box process |
US6359629B1 (en) * | 1998-07-06 | 2002-03-19 | Silicon Graphics, Inc. | Backface primitives culling |
CN1643545A (zh) * | 2002-03-11 | 2005-07-20 | 索尼计算机娱乐公司 | 优化图形处理的系统和方法 |
US7068272B1 (en) * | 2000-05-31 | 2006-06-27 | Nvidia Corporation | System, method and article of manufacture for Z-value and stencil culling prior to rendering in a computer graphics processing pipeline |
US7400325B1 (en) * | 2004-08-06 | 2008-07-15 | Nvidia Corporation | Culling before setup in viewport and culling unit |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9460552B2 (en) | 2007-01-24 | 2016-10-04 | Intel Corporation | Method, display adapter and computer program product for improved graphics performance by using a replaceable culling program |
-
2008
- 2008-07-30 SE SE0801742A patent/SE0801742L/xx not_active Application Discontinuation
-
2009
- 2009-07-24 EP EP09251870A patent/EP2149861A3/en not_active Ceased
- 2009-07-30 CN CN201510888122.3A patent/CN105549929B/zh not_active Expired - Fee Related
- 2009-07-30 CN CN200910165092A patent/CN101639767A/zh active Pending
- 2009-08-03 US US12/534,374 patent/US8654122B2/en not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5757321A (en) * | 1992-10-02 | 1998-05-26 | Canon Kabushiki Kaisha | Apparatus and method for clipping primitives using information from a previous bounding box process |
US6359629B1 (en) * | 1998-07-06 | 2002-03-19 | Silicon Graphics, Inc. | Backface primitives culling |
US7068272B1 (en) * | 2000-05-31 | 2006-06-27 | Nvidia Corporation | System, method and article of manufacture for Z-value and stencil culling prior to rendering in a computer graphics processing pipeline |
CN1643545A (zh) * | 2002-03-11 | 2005-07-20 | 索尼计算机娱乐公司 | 优化图形处理的系统和方法 |
US7400325B1 (en) * | 2004-08-06 | 2008-07-15 | Nvidia Corporation | Culling before setup in viewport and culling unit |
Non-Patent Citations (1)
Title |
---|
JON HASSELGREN ET AL: "PCU:The Programmable Culling Unit", 《ACM TRANSACTIONS ON GRAPHICS (PROCEEDINGS OF ACM SIGGRAP 2007)》 * |
Also Published As
Publication number | Publication date |
---|---|
SE0801742A0 (sv) | 2010-01-31 |
US8654122B2 (en) | 2014-02-18 |
CN105549929B (zh) | 2019-11-15 |
SE0801742L (sv) | 2010-01-31 |
EP2149861A3 (en) | 2012-10-24 |
US20100026684A1 (en) | 2010-02-04 |
EP2149861A2 (en) | 2010-02-03 |
CN101639767A (zh) | 2010-02-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105549929A (zh) | 用于改善图形性能的方法、装置和计算机程序产品 | |
CN102016928B (zh) | 用于提高的图形性能的方法、设备 | |
CN105556571B (zh) | 使用计算着色器作为顶点着色器的前端 | |
Feixas et al. | A unified information-theoretic framework for viewpoint selection and mesh saliency | |
US8773422B1 (en) | System, method, and computer program product for grouping linearly ordered primitives | |
CN102096907B (zh) | 图像处理技术 | |
CN105556565A (zh) | 片段着色器执行顶点着色器计算 | |
CN101373541B (zh) | 医学图像体绘制方法及装置 | |
US20100097377A1 (en) | Graphics Processing Using Culling on Groups of Vertices | |
US10482629B2 (en) | System, method and computer program product for automatic optimization of 3D textured models for network transfer and real-time rendering | |
US20120268464A1 (en) | Method and device for processing spatial data | |
US8400447B1 (en) | Space partitioning trees using planes selected from a discrete set of orientations | |
EP4154221A1 (en) | Shadow culling | |
JP2017062789A (ja) | グラフィックス処理装置、及びテクスチャリングのためのlodを決定する方法 | |
JPH03202981A (ja) | 三次元図形表示方法及びシステム | |
Gobron et al. | GPGPU computation and visualization of three-dimensional cellular automata | |
TW201447813A (zh) | 產生防鋸齒體素資料 | |
Doungmala et al. | Investigation into the Application of Image Modeling Technology in the Field of Computer Graphics | |
Tatzgern et al. | Multi-perspective compact explosion diagrams | |
JP5864474B2 (ja) | 空間を分割してグラフィックスを処理する画像処理装置及び画像処理方法 | |
CN102074004B (zh) | 空间实体遮挡类型的判定方法及装置 | |
JP2019046080A (ja) | 情報処理装置、方法及びプログラム | |
JP6205200B2 (ja) | ソート機能を持つ画像処理装置及び画像処理方法 | |
US10977856B2 (en) | Using a low-detail representation of surfaces to influence a high-detail representation of the surfaces | |
Tariq | CYRUS BECK RAY TRACING AND DYNAMIC COLLISION DETECTION |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20191115 Termination date: 20210730 |