一种动画数据处理方法及系统的制作方法

文档序号:6512859阅读:266来源:国知局
一种动画数据处理方法及系统的制作方法
【专利摘要】本发明公开一种动画数据处理方法及系统,其中,方法包括步骤:将待计算的动画数据定义为统一的数据结构,CPU根据数据结构中的输入值计算出时间进度,并将计算出的时间进度保存在数据结构中;GPU根据时间进度,对动画数据进行并行计算得到动画进度;GPU计算完毕后,CPU根据GPU计算出的动画进度及数据结构中的输入值计算出当前物体各属性的最终值,并利用图形渲染系统渲染计算结果。本发明由于将动画计算量最大的动画进度计算部分交由GPU并行计算,从而能够很好的提高计算效率,提高整个系统的运行效率。
【专利说明】一种动画数据处理方法及系统
【技术领域】
[0001]本发明涉及动画领域,尤其涉及一种用于快速计算动画数据的动画数据处理方法及系统。
【背景技术】
[0002]由于智能手机以及智能电视的兴起,3DLauncher (3D桌面)等3D应用被大规模应用在智能设备中,但类似于3D动画等应用还无法大规模应用在智能设备中,其主要原因是:对于动画数据,目前仍采用CPU循环计算的方式,其流程如下:S1、根据时间进度,由CPU循环计算动画数据;S2、动画计算完毕后,全部物体状态已经确定,此时使用GPU进行渲染;S3渲染完毕一帧后,重新计算下一帧动画数据。其中的动画数据计算过程由CPU循环执行,这对于平面动画等动画数据量较小的动画尚可执行,但是若动画数据量大,尤其是对于3D动画,其数据处理量规模非常庞大,所以若采用传统的CPU循环计算方式,其计算效率非常低,将大大拖慢整个系统运行速度,影响整个系统性能。
[0003]因此,现有技术还有待于改进和发展。

【发明内容】

[0004]鉴于上述现有技术的不足,本发明的目的在于提供一种动画数据处理方法及系统,旨在解决现有的动画数据处理方法计算效率低的问题。
[0005]本发明的技术方案如下:
一种动画数据处理方法,其中,包括步骤:
A、将待计算的动画数据定义为统一的数据结构,CPU根据数据结构中的输入值计算出时间进度,并将计算出的时间进度保存在数据结构中;
B、GPU根据时间进度,对动画数据进行并行计算得到动画进度;
C、GPU计算完毕后,CPU根据GPU计算出的动画进度及数据结构中的输入值计算出当前物体各属性的最终值,并利用图形渲染系统渲染计算结果。
[0006]所述的动画数据处理方法,其中,所述步骤B具体包括:
B1、使用图形渲染系统在GPU显存中创建用于共享数据的数据缓冲区;
B2、将包含有时间进度计算结果的动画数据写入到数据缓冲区;
B3、从数据缓冲区中获取计算过程中的各输入值,并根据时间进度以及输入值计算动画进度;
B4、将计算出的动画进度写入到数据缓冲区中的相应位置。
[0007]所述的动画数据处理方法,其中,所述步骤B3具体包括:
B31、获取用于处理数据缓冲区中每份动画数据对应的并行线程ID ;
B32、根据并行线程ID获取数据缓冲区相应的操作首地址;
B33、根据操作首地址获取相应动画数据计算过程中的各输入值。
[0008]所述的动画数据处理方法,其中,步骤C具体包括: Cl、CPU从数据缓冲区中读取数据结构中的各输入值及动画进度;
C2、CPU根据各输入值及动画进度计算出当前物体各属性的最终值;
C3、利用图形渲染系统进行动画渲染,以将动画绘制到屏幕上。
[0009]所述的动画数据处理方法,其中,所述数据缓冲区由OpenGL或者direct3d创建。
[0010]一种动画数据处理系统,其中,包括:
时间进度计算模块,用于将待计算的动画数据定义为统一的数据结构,CPU根据数据结构中的输入值计算出时间进度,并将计算出的时间进度保存在数据结构中;
并行计算模块,用于GPU根据时间进度,对动画数据进行并行计算得到动画进度;
渲染模块,用于GPU计算完毕后,CPU根据GPU计算出的动画进度及数据结构中的输入值计算出当前物体各属性的最终值,并利用图形渲染系统渲染计算结果。
[0011]所述的动画数据处理系统,其中,所述并行计算模块包括:
数据缓冲区创建单元,用于使用图形渲染系统在GPU显存中创建用于共享数据的数据缓冲区;
时间进度写入单元,用于将包含有时间进度计算结果的动画数据写入到数据缓冲区;动画进度计算单元,用于从数据缓冲区中获取计算过程中的各输入值,并根据时间进度以及输入值计算动画进度;
动画进度写入单元,用于将计算出的动画进度写入到数据缓冲区中的相应位置。
[0012]所述的动画数据处理系统,其中,所述动画进度计算单元具体包括:
并行线程ID获取子单元,用于获取用于处理数据缓冲区中每份动画数据对应的并行线程ID ;
操作首地址获取子单元,用于根据并行线程ID获取数据缓冲区相应的操作首地址; 输入值获取子单元,用于根据操作首地址获取相应动画数据计算过程中的各输入值。
[0013]所述的动画数据处理系统,其中,所述渲染模块包括:
数据读取单元,用于从数据缓冲区中读取数据结构中的各输入值及动画进度;
最终值计算单元,用于根据各输入值及动画进度计算出当前物体各属性的最终值;
渲染单元,用于利用图形渲染系统进行动画渲染,以将动画绘制到屏幕上。
[0014]有益效果:本发明先将待计算的动画数据定义为统一的数据结构,并由CPU根据数据结构中的输入值计算出时间进度,然后由GPU根据时间进度,对动画数据进行并行计算得到动画进度;在GPU计算完毕后,CPU根据动画进度及输入值计算出当前物体各属性的最终值,并利用图形渲染系统渲染计算结果。本发明的方法由于将动画计算量最大的动画进度计算部分交由GPU并行计算,从而能够很好的提高计算效率,提高整个系统的运行效率。
【专利附图】

【附图说明】
[0015]图1为本发明动画数据处理方法较佳实施例的流程图。
[0016]图2为图1所示方法中步骤S102的具体流程图。
[0017]图3为线性渐变动画中动画进度与时间进度的关系图。
[0018]图4为曲线渐变动画中动画进度与时间进度的关系图。
[0019]图5为图2所示流程中步骤S203的具体流程图。[0020]图6为并行线程与动画数据的对应关系图。
[0021]图7为图1所示方法中步骤S103的具体流程图。
[0022]图8为本发明动画数据处理系统较佳实施例的结构框图。
[0023]图9为图8所示系统中并行计算模块的具体结构框图。
[0024]图10为图9所示模块中动画进度计算单元的具体结构框图。
[0025]图11为图8所示系统中渲染模块的具体结构框图。
【具体实施方式】 [0026]本发明提供一种动画数据处理方法及系统,为使本发明的目的、技术方案及效果更加清楚、明确,以下对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0027]请参阅图1,图1为本发明一种动画数据处理方法较佳实施例的流程图,如图所示,其包括步骤:
5101、将待计算的动画数据定义为统一的数据结构,CPU根据数据结构中的输入值计算出时间进度,并将计算出的时间进度保存在数据结构中;
5102、GPU根据时间进度,对动画数据进行并行计算得到动画进度;
5103、GPU计算完毕后,CPU根据GPU计算出的动画进度及数据结构中的输入值计算出当前物体各属性的最终值,并利用图形渲染系统渲染计算结果。
[0028]具体来说,在步骤SlOl中,首先将需要计算的动画数据定义为统一的数据结构,用于对动画数据进行管理及统一计算,以一个典型的位移动画为例,可将动画数据定义为表一中的结构:
表一
【权利要求】
1.一种动画数据处理方法,其特征在于,包括步骤: A、将待计算的动画数据定义为统一的数据结构,CPU根据数据结构中的输入值计算出时间进度,并将计算出的时间进度保存在数据结构中; B、GPU根据时间进度,对动画数据进行并行计算得到动画进度; C、GPU计算完毕后,CPU根据GPU计算出的动画进度及数据结构中的输入值计算出当前物体各属性的最终值,并利用图形渲染系统渲染计算结果。
2.根据权利要求1所述的动画数据处理方法,其特征在于,所述步骤B具体包括: B1、使用图形渲染系统在GPU显存中创建用于共享数据的数据缓冲区; B2、将包含有时间进度计算结果的动画数据写入到数据缓冲区; B3、从数据缓冲区中获取计算过程中的各输入值,并根据时间进度以及输入值计算动画进度; B4、将计算出的动画进度写入到数据缓冲区中的相应位置。
3.根据权利要求2所述的动画数据处理方法,其特征在于,所述步骤B3具体包括: B31、获取用于处理数 据缓冲区中每份动画数据对应的并行线程ID ; B32、根据并行线程ID获取数据缓冲区相应的操作首地址; B33、根据操作首地址获取相应动画数据计算过程中的各输入值。
4.根据权利要求1所述的动画数据处理方法,其特征在于,步骤C具体包括: Cl、CPU从数据缓冲区中读取数据结构中的各输入值及动画进度; C2、CPU根据各输入值及动画进度计算出当前物体各属性的最终值; C3、利用图形渲染系统进行动画渲染,以将动画绘制到屏幕上。
5.根据权利要求2所述的动画数据处理方法,其特征在于,所述数据缓冲区由OpenGL或者direct3d创建。
6.一种动画数据处理系统,其特征在于,包括: 时间进度计算模块,用于将待计算的动画数据定义为统一的数据结构,CPU根据数据结构中的输入值计算出时间进度,并将计算出的时间进度保存在数据结构中; 并行计算模块,用于GPU根据时间进度,对动画数据进行并行计算得到动画进度; 渲染模块,用于GPU计算完毕后,CPU根据GPU计算出的动画进度及数据结构中的输入值计算出当前物体各属性的最终值,并利用图形渲染系统渲染计算结果。
7.根据权利要求6所述的动画数据处理系统,其特征在于,所述并行计算模块包括: 数据缓冲区创建单元,用于使用图形渲染系统在GPU显存中创建用于共享数据的数据缓冲区; 时间进度写入单元,用于将包含有时间进度计算结果的动画数据写入到数据缓冲区;动画进度计算单元,用于从数据缓冲区中获取计算过程中的各输入值,并根据时间进度以及输入值计算动画进度; 动画进度写入单元,用于将计算出的动画进度写入到数据缓冲区中的相应位置。
8.根据权利要求7所述的动画数据处理系统,其特征在于,所述动画进度计算单元具体包括: 并行线程ID获取子单元,用于获取用于处理数据缓冲区中每份动画数据对应的并行线程ID ;操作首地址获取子单元,用于根据并行线程ID获取数据缓冲区相应的操作首地址;输入值获取子单元,用于根据操作首地址获取相应动画数据计算过程中的各输入值。
9.根据权利要求6所述的动画数据处理系统,其特征在于,所述渲染模块包括:数据读取单元,用于从数据缓冲区中读取数据结构中的各输入值及动画进度;最终值计算单元,用于根据各输入值及动画进度计算出当前物体各属性的最终值;渲染单元,用于利用图形渲染 系统进行动画渲染,以将动画绘制到屏幕上。
【文档编号】G06T15/00GK103544729SQ201310437547
【公开日】2014年1月29日 申请日期:2013年9月24日 优先权日:2013年9月24日
【发明者】张颖, 卢伟超 申请人:Tcl集团股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1