三维图形数据处理方法和装置的制作方法

文档序号:6442030阅读:211来源:国知局
专利名称:三维图形数据处理方法和装置的制作方法
技术领域
本发明涉及三维图形数据方法和装置。
背景技术
实时三维(3D)应用的成像过程,经常有将充满各种动态的对象渲染到屏幕的过程。目前变形动画(deformable animation)的技术大多使用蒙皮与骨骼动画(skin-boneanimation)的技术来实现。3D渲染的过程一般由图形处理器(Graphics Processing Unit, GPU)的着色器(Shader)来实现。其中,使用三维顶点着色器(Vertex Shader)来计算骨骼与蒙皮的动画。要使用GPU制作骨骼动画,就需要在顶点着色器中计算骨骼对3D对象的每个顶点坐标的影响程度。对于每个3D顶点坐标,都需要记录它会受到哪几根特定的骨骼影响,以及每根骨骼对于该顶点的影响权重(weight)。图1A和IB示出了蒙皮与骨骼动画技术的示意图。图1B中的粗黑线表示用来驱动3D模型动画的骨骼。目前各种3D对象的动画数据的产生通常是靠3D美术人员在3D模型与动画编辑软件中先编辑好动画数据,然后输出成业界标准格式的数据文件。这些文件的格式以完整保存编辑信息与易于交换为首要目标。模型中的顶点数据与骨骼数据的记录方式则与美术人员编辑的过程相关,而没有针对GPU的效能进行优化。因此,需要一种三维图形数据装置和方法,用于处理3D图形数据,以得到使得GPU能够迅速高效地取用来绘制3D图形的优化3D图形数据。

发明内容
根据本发明,提出了一种可用于各种三维图形处理器(GPU)的三维图形数据处理装置和方法。该三维图形数据处理装置和方法可应用于一般的三维图形数据,特别是带有骨骼动画的可变形数据,从通用格式的文件或是从只读存储器(ROM)中加载后,在存储器中依据三维顶点数据与受影响骨骼的关系,对原始三维图形数据的结构进行重整以获得优化的三维图形数据,以达到在各种GPU上最好的三维图型渲染效能。与一般针对静态对象的顶点进行排序以达到最佳缓存使用率的方案相比较,本发明的方案更着重于GPU的着色器取用变形动画数据的最佳缓存使用率。虽然经本发明的三维图形数据处理装置和方法获得的优化三维图形数据集中数据的安排方式对于静态对象的效果,与针对顶点排序的方案几乎一样,但对于各种带骨骼动画的对象,则有15 30%的效能增加。从而,根据本发明,通过对三维图形数据集进行优化处理,可以得到使GPU在计算每个顶点坐标时能够迅速高效地取用到需要的骨骼信息来计算各个骨骼对于顶点坐标产生的影响的优化3D图形数据。根据本发明的一个方面,提供了一种三维图形数据处理方法,包括:获得包括多个批次的三维图形数据集,其中每个批次包括一个或多个三角面的顶点数据;通过添加退化三角面将所述多个批次合并成一个或多个组合批次来形成优化三维图形数据集;以及输出所述优化三维图形数据集,供图形处理器以每次一整个组合批次的方式取用来绘制三维图形。根据本发明的另一方面,提供了一种三维图形数据处理装置,包括:图形数据获得单元,其获得包括多个批次的三维图形数据集,其中每个批次包括一个或多个三角面的顶点数据;图形数据优化单元,其通过添加退化三角面将所述多个批次合并成一个或多个组合批次来形成优化三维图形数据集;以及图形数据输出单元,其输出所述优化三维图形数据集,供图形处理器以每次一整个组合批次的方式取用来绘制三维图形。根据本发明的另一方面,提供了一种移动终端,包括如上所述的三维图形数据处理装置。根据本发明的另一方面,提供了一种便携式电子设备,包括如上所述的三维图形数据处理装置。


通过联系附图阅读以下详细描述可以更好地理解本发明的以上和其他特征和优点,附图中相同或相似的标号用于标示相同或相似的元素,其中:图1A和IB示出了蒙皮与骨骼动画技术的示意图。图2示出了根据本发明一个实施例的三维图形数据处理装置的功能框图。图3示出了三角面条带的示例。图4示出了批次合并的一个示例。图5示出了根据本发明一个实施例的三维图形数据处理方法的流程图。
具体实施例方式下面参考附图来描述本发明的实施例。图2示出了根据本发明一个实施例的三维图形数据处理装置I的功能框图。如图2所示,三维图形数据处理装置I包括图形数据获得单元101、图形数据优化单元102和图形数据输出单元103。图形数据获得单元101获得包括多个批次(Batch)的三维图形数据集,其中每个批次包括一个或多个三角面的顶点数据。这里的顶点数据例如可包括三角面的顶点的位置坐标等等。根据一个实施例,每个批次包括构成三角面条带(Triangle Strip)的一个或多个相邻三角面的顶点数据。具体而言,首先,图形数据获得单元101从例如通用格式的文件或从只读存储器(ROM)获取原始三维图形数据集。该原始三维图形数据集包括构成多个三角面的多个顶点的顶点数据,其中每个顶点受若干根骨骼的影响。然后,作为一个可选的步骤,图形数据获得单元101检查每个顶点受到影响的骨骼的数目是否超过预定的上限。对于影响其的骨骼数目超过上限(例如4根骨骼)的顶点,可以只考虑上限数目的影响最大的骨骼(例如只考虑4根影响最大的骨骼),而忽略其他骨骼的影响。或者,也可以将原始的3D模型拆分成两个模型,等等。接下来,图形数据获得单元101将共用骨骼的三角面的顶点的顶点数据分成各个批次,从而形成所述包括多个批次的三维图形数据集。换言之,所获得的三维图形数据集中的每个批次中包括的顶点数据是受到相同的骨骼影响的三角面的顶点的顶点数据。更具体而言,根据一个实施例,所获得的三维图形数据集中的每个批次中包括的顶点数据是受到相同的骨骼影响并且相互邻接以构成三角面条带的一个或多个三角面的顶点的顶点数据。以下将对批次进行更详细描述。注意,在本说明书中,为了描述方便,“某个批次包括某个三角面的顶点数据”也可简称为“某个批次包括某个三角面”。类似地,“某个批次包括某个三角面条带的三角面的顶点数据”也可简称为“某个批次包括某个三角面条带”。图形处理器(GPU)可以接受OpenGL或是DirectX等绘图程序接口的要求绘制3D三角面。现代的GPU通常可以一次绘制多个三角面。多个相互邻接的3D三角面可以使用三角面条带来表示。图3所示的三角面条带描述了 4个接邻的3D三角面,分别用1、2、3、4来表示。而记录这样的三角面条带只需要记录诸如A、B、C、D、E、F这样的3D顶点索引数据即可。也就是说,三角面条带可由其中包含的三角面的各个顶点的顶点数据来描述。在本发明中,批次可以包括如下的三角面条带:该三角带条带中包括的三角面的顶点受到相同骨骼的影响。例如,某个批次涉及的所有顶点都受相同的4根骨骼的影响。GPU可以一次处理整个批次。当一个批次中包含较多的3D三角面时,处理的效率会比多个批次、每个批次只有很少的3D三角面的情况(也就是很多个细碎的批次的情况)更好。因此,根据本发明,对于图形数据获得单元101获得的包括多个批次的三维图形数据集,将进行进一步优化。图形数据获得单元101将其获得的包括多个批次的三维图形数据集提供给图形数据优化单元102。图形数据优化单元102通过将从图形数据获得单元101提供来的三维图形数据集中包括的多个批次合并成一个或多个组合批次来形成优化的三维图形数据集。根据本发明的一个实施例,合并是通过添加退化三角面(degenerate triangle)或者说共点三角面(co-vertice triangle)来实现的。具体而言,在合并过程中,对于所述多个批次中的例如第一批次和第二批次,如果两者满足例如下文所述的合并条件,则通过添加连接第一批次中包括的某一三角面和第二批次中包括的某一三角面的退化三角面(的顶点数据)来将第一批次和第二批次合并成一组合批次。其中,退化三角面或者共点三角面是这样的三角面,其三个顶点中的两个顶点位于相同的位置。上述过程对于从图形数据获得单元101提供来的三维图形数据集中包括的多个批次中的每个批次重复,即对于每个批次,检查其是否可与其他一个或多个批次合并成一个更大的组合批次,如果是,则通过如上所述添加退化三角面来将该批次与这其他一个或多个批次之一相连接,从而将这个批次和这其他一个或多个批次合并成一个组合批次。关于合并条件,根据本发明的一个实施例,被合并成组合批次的批次包括与相同的纹理贴图(texture map)相关联的三角面的顶点数据。换言之,被合并成组合批次的批次包括将被应用相同的纹理贴图的三角面的顶点数据。根据本发明的另一实施例,被合并成组合批次的批次包括将使用相同的着色器(Shader)的三角面的顶点数据。根据本发明的另一实施例,被合并成组合批次的批次包括被应用相同的纹理贴图而且使用相同的着色器(Shader)的三角面的顶点数据。也就是说,本发明的组合批次可以包括如下的三角面条带:该三角带条带中包括的三角面将被应用相同的纹理贴图和/或将使用相同的着色器。参考图4来具体说明合并的一个示例。如图所示,假设图形数据获得单元101所获得的三维图形数据集中的多个批次中包括批次I和批次2。批次I中包括构成一三角面条带的若干个三角面的顶点数据,其中一个三角面是三角面Tl。同样,批次2中包括构成一三角面条带的若干个三角面的顶点数据,其中一个三角面是三角面T2。另外,假设批次I和批次2中包括的三角面将被应用相同的纹理贴图和/或使用相同的着色器,从而可以被合并到一个更大的组合批次中。于是,根据本发明的一个实施例,通过添加一连接批次I中的三角面Tl和批次2中的三角面T2的退化三角面DT来将批次I的三角面条带与批次2的三角面条带连接成一更大的三角面条带,也就是将批次I和批次2连接成一更大的批次。该退化三角面DT由图4中的粗黑箭头指示。如图所示,该退化三角面DT具有三个顶点V1、V2和V3,但其中顶点Vl和V2是重叠的,亦即两者具有相同的位置坐标。因此,退化三角面DT也可被称为共点三角面。通过上述方式,图形数据优化单元102把图形数据获得单元101所获得的三维图形数据集中包括的较为零散细碎、包括较少顶点数据的批次合并成较大的、包括较多顶点数据的组合批次,从而形成包括这样的组合批次的优化三维图形数据集。接下来,图形数据优化单元102将优化的三维图形数据集提供给图形数据输出单元 103。然后,图形数据输出单元103将提供自图形数据优化单元102的优化三维图形数据集输出,以供图形处理器(GPU)(具体而言可以是GPU的着色器)以每次一整个组合批次的方式取用来绘制三维图形。图5示出了根据本发明一个实施例的三维图形数据处理方法的流程图。该方法开始于步骤SI。在步骤SI中,获得包括多个批次的三维图形数据集,其中每个批次包括一个或多个三角面的顶点数据。步骤SI可包括子步骤S101、S102和S103。在子步骤SlOl中,获取原始三维图形数据集,其中包括构成多个三角面的多个顶点的顶点数据,每个顶点受一个或多个骨骼的影响。在可选的子步骤S102中,检查每个顶点受到其影响的骨骼的数目是否超过预定的上限。如上所述,对于受影响的骨骼数目超过上限的顶点,可以只考虑上限数目的影响最大的骨骼,而忽略其他骨骼的影响。或者,也可以将原始的3D模型拆分成两个模型,等等。在子步骤S103中,将共用骨骼的三角面的顶点的顶点数据分成个别的批次,从而形成包括多个批次的三维图形数据集。然后,在步骤S2中,通过添加退化三角面将多个批次合并成一个或多个组合批次来形成优化三维图形数据集。具体而言,该步骤可包括通过添加连接所述多个批次中的第一批次中包括的第一三角面和所述多个批次中的第二批次中包括的第二三角面的退化三角面的顶点数据来将第一批次和第二批次合并到一组合批次中。
接下来,在步骤S3中,输出优化三维图形数据集,供图形处理器以每次一整个组合批次的方式取用来绘制三维图形。然后,该方法结束。本发明的三维图形数据处理装置和方法可应用到各种包括图形处理器(GPU)的电子设备,尤其是例如GPU处理能力受限的设备,例如各种移动终端或者便携式电子设备。例如,本发明的三维图形数据处理装置和方法可应用到包括但不限于以下设备:移动电话、智能电话、便携式游戏机、平板电脑、笔记本电脑、个人电脑、数字电视等等。本发明的元素可以实现为硬件、软件、固件或者它们的组合。当以软件方式实现时,本发明的元素是用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何有形介质。以上出于说明而非限制目的已经描述了本发明的一些具体实施例。然而,本发明并不限于所描述的实施例。本领域的技术人员将会明白,可以对本发明进行多种修改、组合和替换,并且本发明包含落在所附权利要求书的范围内的这种修改、组合和替换。
权利要求
1.一种三维图形数据处理方法,包括: 获得包括多个批次的三维图形数据集,其中每个批次包括一个或多个三角面的顶点数据; 通过添加退化三角面将所述多个批次合并成一个或多个组合批次来形成优化三维图形数据集;以及 输出所述优化三维图形数据集,供图形处理器以每次一整个组合批次的方式取用来绘制三维图形。
2.根据权利要求1所述的三维图形数据处理方法,其中,将所述多个批次合并成一个或多个组合批次包括通过添加连接所述多个批次中的第一批次中包括的第一三角面和所述多个批次中的第二批次中包括的第二三角面的退化三角面的顶点数据来将所述第一批次和所述第二批次合并到一组合批次中。
3.根据权利要求2所述的三维图形数据处理方法,其中所述退化三角面所包括的三个顶点中的两个顶点位于相同的位置。
4.根据权利要求1所述的三维图形数据处理方法,其中被合并成组合批次的批次包括与相同的纹理贴图相关联的三角面的顶点数据。
5.根据权利要求1所述的三维图形数据处理方法,其中被合并成组合批次的批次包括使用相同的着色器的三角面的顶点数据。
6.根据权利 要求1所述的三维图形数据处理方法,其中获得包括多个批次的三维图形数据集的步骤包括: 获取原始三维图形数据集,所述原始三维图形数据集包括构成多个三角面的多个顶点的顶点数据,每个顶点受一个或多个骨骼的影响;以及 将共用骨骼的三角面的顶点的顶点数据分成批次,从而形成所述包括多个批次的三维图形数据集。
7.根据权利要求6所述的三维图形数据处理方法,其中获取原始三维图形数据集的步骤包括从通用格式的文件或从只读存储器获取所述原始三维图形数据集。
8.一种三维图形数据处理装置,包括: 图形数据获得单元,其获得包括多个批次的三维图形数据集,其中每个批次包括一个或多个三角面的顶点数据; 图形数据优化单元,其通过添加退化三角面将所述多个批次合并成一个或多个组合批次来形成优化三维图形数据集;以及 图形数据输出单元,其输出所述优化三维图形数据集,供图形处理器以每次一整个组合批次的方式取用来绘制三维图形。
9.根据权利要求8所述的三维图形数据处理装置,其中,所述图形数据优化单元通过添加连接所述多个批次中的第一批次中包括的第一三角面和所述多个批次中的第二批次中包括的第二三角面的退化三角面的顶点数据来将所述第一批次和所述第二批次合并到一组合批次中。
10.根据权利要求9所述的三维图形数据处理装置,其中所述退化三角面所包括的三个顶点中的两个顶点位于相同的位置。
11.根据权利要求8所述的三维图形数据处理装置,其中被合并成组合批次的批次包括与相同的纹理贴图相关联的三角面的顶点数据。
12.根据权利要求8所述的三维图形数据处理装置,其中被合并成组合批次的批次包括使用相同的着色器的三角面的顶点数据。
13.根据权利要求8所述的三维图形数据处理装置,其中所述图形数据获得单元获取原始三维图形数据集,所述原始三维图形数据集包括构成多个三角面的多个顶点的顶点数据,每个顶点受一个或多个骨骼的影响;并且所述图像数据获得单元将共用骨骼的三角面的顶点的顶点数据分成批次,从而形成所述包括多个批次的三维图形数据集。
14.根据权利要求13所述的三维图形数据处理装置,其中所述图形数据获得单元从通用格式的文件或从只读存储器获取所述原始三维图形数据集。
15.一种移动终端,包括如权利要求8所述的三维图形数据处理装置。
16.一种便携式 电子设备,包括如权利要求8所述的三维图形数据处理装置。
全文摘要
本发明提供了三维图形数据处理方法和装置。一种三维图形数据处理方法,包括获得包括多个批次的三维图形数据集,其中每个批次包括一个或多个三角面的顶点数据;通过添加退化三角面将所述多个批次合并成一个或多个组合批次来形成优化三维图形数据集;以及输出所述优化三维图形数据集,供图形处理器以每次一整个组合批次的方式取用来绘制三维图形。
文档编号G06T13/40GK103164867SQ20111042611
公开日2013年6月19日 申请日期2011年12月9日 优先权日2011年12月9日
发明者江国昌, 叶思义 申请人:金耀有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1