用于改善图形性能的方法、装置和计算机程序产品的制作方法

文档序号:9787137阅读:393来源:国知局
用于改善图形性能的方法、装置和计算机程序产品的制作方法
【专利说明】
[00011 本申请是2009年7月30日提交的申请号为200910165092.8的同名专利申请的分案 申请。
技术领域
[0002] 本发明涉及数字表示的图形,并且更具体地,本发明涉及用于对数字表示的图形 的生成性能进行改善的方法、装置和计算机程序产品。
【背景技术】
[0003] 诸如计算机图形等数字表示的图形在性能方面被不断改善。在20世纪80和90年 代,用于计算机和游戏控制台的显示适配器是随着图形加速器出现的,从而卸下了中央处 理单元(CPU)在图形生成方面的负担。最初,显示适配器提供2D图形的加速,但最终也包括 了对加速3D图形的支持。现代的显示适配器使用了名称为图形处理单元(GPU)的处理单元。
[0004] 由于3D图形的复杂性,因此现今的GPU将其大量的处理能力用于执行与3D图形有 关的计算。
[0005] 显示适配器一直以来的缺点在于其性能。新的应用和游戏要求在更高的场景复杂 性、更高的几何细节、更高的分辨率以及更高的图像质量的情况下维持帧率(每秒渲染的屏 幕图像),这导致了如下的需求:应该在尽可能短的时间内渲染每个屏幕图像。换言之,提高 性能往往是重要的。
[0006] 提高性能的一种已知方式是通过启用更高的时钟速度、采用流水线技术、或利用 并行计算来提高GPU的处理能力。然而,这往往导致更高的功耗并且产生更多的热量。对于 电池供电的设备而言,更高的功耗导致电池寿命缩短。功耗和热量是移动设备和桌面显示 适配器的主要制约和瓶颈。此外,对每个GPU的时钟速度也存在限制。
[0007] 因此,仍然存在没有足够的能力来改善数字表示的图形的性能的问题。

【发明内容】

[0008] 鉴于上述内容,本发明的目标是解决或至少减少一个或若干个上面讨论的问题。
[0009] 总体而言,上面的目标由所附独立权利要求来实现。
[0010] 根据第一方案,本发明是通过一种用于对数字表示的图形的生成性能进行改善的 方法实现的。所述方法包括:接收顶点组的第一表示;基于所述第一表示来确定所述顶点组 的第二表示;对所述顶点组的所述第二表示执行第一指令集,以提供所述顶点组的第三表 示,所述第一指令集与顶点位置确定相关联;以及对所述顶点组的所述第三表示进行剔除 处理。
[0011]在计算机图形中,顶点包括与空间中的位置相关联的数据。例如,顶点可以是与图 元的角相关联的所有数据。顶点不仅与三个空间坐标相关联,而且还与正确渲染物体所需 的其它图形信息相关联,例如颜色、反射属性、纹理、以及表面法线。
[0012]相连的一组顶点可以用来定义图元。图元可以例如是三角形、四边形、多边形或其 它几何形状,或者可替换地,图元可以例如是空间中的表面或点。例如,表示为三角形的图 元具有三个顶点,而表示为四边形的图元具有四个顶点。
[0013]本发明基于这样的理解,即,可能对顶点组执行剔除。对顶点组执行剔除的优点在 于可以丢弃顶点组,这会使得性能得到提升。此外,要被渲染的物体的、在整个渲染的图像 中不可见的大部分表面在本处理中不再进行渲染,这也使得性能得到提升。换言之,对顶点 组执行剔除的优点在于避免了对在当前帧中不可见的表面进行渲染,这会使得性能得到提 升。
[0014]关联于顶点位置确定的第一指令集可以是顶点剔除指令。当执行顶点剔除指令 时,所述顶点剔除指令可以被设置为用于计算位置边界和其它类型的边界。
[0015] 执行第一指令集的步骤可以包括使用限界算法(bounded arithmetic)。
[0016]使用限界算法的优点在于,可以计算顶点组的第二表示的保守边界,即,用于保证 包括顶点组的第二表示的边界。保守边界的优点在于对较简单并且保守的表示执行确定, 这会使得性能得到提升。
[0017]确定第二表示的步骤还可以包括使用限界算法。
[0018] 当确定第二表示时使用限界算法的优点在于,第二表示可以变得更简单,这使得 对第二表示执行第一指令集更加高效,这会使得性能得到提升。
[0019] 所述方法可以包括:所述限界算法是由泰勒算法、区间算法以及仿射算法构成的 组中的至少一种算法。
[0020] 其优点在于,所述方法是灵活的并且支持不同类型的限界算法,并且所述方法不 限于一种限界算法。区间算法的优点在于它是简单的并由此是快速的。泰勒算法的优点在 于,可以通过产生非常紧致的边界的泰勒模型(假如这些模型具有足够高的阶)来精确地表 示多项式计算。仿射算法的优点在于:与泰勒算法相比较,它更快速,并且与区间算法相比 较,它提供了更好的边界。
[0021] 所述顶点组可以包括至少两个图元的顶点。
[0022]其优点在于,一次可以处理一个以上的图元,这使得性能得到提升。
[0023] 所述方法包括:所述顶点组包括与关联于顶点位置确定的同一指令集相关联的顶 点。
[0024] 其优点在于简化了顶点组的处理。顶点与关联于顶点位置确定的同一指令集相关 联意味着:可以对利用顶点组中的所有顶点确定的所述第二表示使用相同的第一指令集, 而不是使用若干个第一指令集。
[0025] 所述方法还可以包括从关联于顶点位置确定的第二指令集推导出所述第一指令 集。
[0026]其优点在于,可以从顶点着色器(vertex shader)自动推导出所述第一指令集,而 无需用户提供这些指令。用户无需提供指令使得所述方法更加灵活并易于使用。顶点着色 器包括与顶点位置确定和诸如顶点加亮等其它每个顶点计算相关联的指令集。
[0027]关联于顶点位置确定的第二指令集可以是顶点着色器指令。现有技术的顶点着色 器包括顶点着色器指令。
[0028]所述方法还可以包括:从所述第二指令集推导出第三指令集,并执行所述第三指 令集以提供法线界限。
[0029] 其优点在于,可以从顶点着色器自动推导出第三指令集,而无需用户提供指令,此 外,还可以自动计算法线边界。法线边界的优点在于可以执行背面剔除,这使得性能得到提 升。
[0030] 关联于顶点位置确定的第三指令集可以是顶点法线剔除指令。当执行顶点法线剔 除指令时,所述顶点法线剔除指令可以被设置为用于计算法线边界。
[0031] 接收第一指令集的步骤还可以包括:如果所述顶点组中的顶点数超过阈值,则将 所述顶点组划分成至少两个子组,其中,所述至少两个子组包括与关联于顶点位置确定的 同一指令集相关联的顶点。
[0032] 划分成子组的优点在于可以操控适当大小的组。子组越小,剔除处理导致对至少 一个顶点组执行剔除的可能性越大。此外,越小的组(子组)一般意味着包围这些组的边界 越紧致。越紧致的边界使得计算越高效,这会使得性能得到提升。子组包括与关联于顶点位 置确定的同一指令集相关联的顶点的优点在于,可以对利用顶点组中的所有顶点确定的第 二表示使用相同的第一指令集。这意味着不必为顶点组中的每个顶点提供关联于顶点位置 确定的、用于确定第二表示的新指令集。
[0033] 确定第二表示的步骤还可以包括:计算所述顶点组的所述第二表示,并将所述顶 点组的所述第二表示存储在存储器中。
[0034] 其优点在于无需每次都执行所述第二表示的计算。作为替换,可以从存储器中取 回所述第二表示,这使得性能得到提升。
[0035] 确定第二表示的步骤还包括:从存储器中取回所述顶点组的所述第二表示。
[0036] 其优点在于可以从存储器中取回所述第二表示,并且无需再进行计算,这使得性 能得到提升。
[0037] 所述方法还可以包括:从所述顶点组中选择至少一个顶点;对所述至少一个顶点 的第一表示执行与顶点位置确定相关联的指令集,以提供所述至少一个顶点的第二表示; 以及对所述至少一个顶点的所述第二表示进行剔除处理,其中,所述剔除处理的结果包括 剔除所述至少一个顶点的决定和不剔除所述至少一个顶点的决定中的一个决定,并且在所 述剔除处理的结果包括剔除所述至少一个顶点的决定的情况下,执行以下步骤:接收顶点 组的第一表示;确定所述顶点组的第二表示;对所述顶点组的所述第二表示执行与顶点位 置确定相关联的第一指令集,以提供所述顶点组的第三表示;以及对所述顶点组的所述第 三表示进行剔除处理。
[0038] 由于它使得性能得到提升,因此这是有利的。例如,如果剔除处理的结果是决定不 剔除所述至少一个顶点,则与根据第一方案的方法相比较,它得到了一种花费更少容量的 方法。
[0039] 所述方法还可以包括:对包围所述顶点组的所述第三表示的包围体进行确定,并 对所述包围体进行剔除处理。
[0040] 其优点在于,与对第三表示执行剔除处理相比较,可以对包围体执行更简单并且 更快速的剔除处理,并且其优点还在于可以自动确定所述包围体。
[0041 ]对所述包围体进行所述剔除处理的步骤还可以包括执行以下操作中的至少一个 操作:对所述包围体进行视域剔除(view frustum culling);对所述包围体进行背面剔除; 以及对
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1