CN103413344A - 3d帧动画实现方法、装置及终端 - Google Patents
3d帧动画实现方法、装置及终端 Download PDFInfo
- Publication number
- CN103413344A CN103413344A CN2013102893726A CN201310289372A CN103413344A CN 103413344 A CN103413344 A CN 103413344A CN 2013102893726 A CN2013102893726 A CN 2013102893726A CN 201310289372 A CN201310289372 A CN 201310289372A CN 103413344 A CN103413344 A CN 103413344A
- Authority
- CN
- China
- Prior art keywords
- vertex shader
- frame
- summit
- key frames
- data
- 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
Images
Landscapes
- Processing Or Creating Images (AREA)
- Image Generation (AREA)
Abstract
本发明公开一种3D帧动画实现方法、装置及终端,该方法包括:采用3D建模工具建立多个关键帧的3D模型,生成3D模型数据文件;解析3D模型数据文件,获取多个关键帧的顶点及纹理坐标数据;创建及初始化顶点着色器及片元着色器程序,在顶点着色器及片元着色器程序中对应加载预先创建的顶点着色器及片元着色器的代码;获取当前融合比例值,将所有关键帧的顶点及纹理坐标数据连同融合比例值先后传入顶点着色器程序及片元着色器程序,产生3D帧动画数据;根据3D帧动画数据绘制图像并显示在终端屏幕上。该方法实现过程简单,只需几个关键帧的3D建模数据,不需对整个动画过程逐帧进行建模制作,有效减少3D UI设计工作量,且成本低。
Description
技术领域
本发明涉及3D动画技术领域,尤其涉及一种基于OpenGL ES2.0的3D帧动画实现方法、装置及终端。
背景技术
目前,3D帧动画效果通常采用诸如3DsMax等软件将每个细节帧都一一详细建模制作出来,使各帧连续播放形成动画。由于需要逐帧制作,造成文件体积及工作量都相当大。
发明内容
本发明的主要目的在于提供一种3D帧动画实现方法、装置及终端,旨在简化3D帧动画的实现过程,以较低成本实现较高的3D动画效果。
为了达到上述目的,本发明提出一种3D帧动画实现方法,包括:
采用3D建模工具建立多个关键帧的3D模型,生成对应的3D模型数据文件;
解析所述3D模型数据文件,获取所述多个关键帧的顶点及纹理坐标数据;
创建及初始化顶点着色器及片元着色器程序,在所述顶点着色器及片元着色器程序中对应加载预先创建的顶点着色器及片元着色器的代码;
获取当前融合比例值,将所有关键帧的顶点及纹理坐标数据连同所述融合比例值先后传入所述顶点着色器程序及片元着色器程序,产生3D帧动画数据;
根据所述3D帧动画数据绘制图像并显示在终端屏幕上。
优选地,所述创建及初始化顶点着色器及片元着色器程序的步骤之前包括:
根据所述关键帧的数量创建相应的顶点着色器及片元着色器的代码。
优选地,所述解析3D模型数据文件,获取所述多个关键帧的顶点及纹理坐标数据的步骤之后还包括:
将所述多个关键帧的顶点及纹理坐标数据存入缓存中。
优选地,所述获取当前融合比例值的步骤包括:
启动一个线程;周期性的改变融合比例值,每个融合比例值对应3D帧动画过程中的一帧;
在所述线程中获取当前融合比例值。
优选地,所述将所有关键帧的顶点及纹理坐标数据连同所述融合比例值先后传入所述顶点着色器程序及片元着色器程序,产生3D帧动画数据的步骤包括:
通过调用OpenGL ES 2.0中的glVertexAttribPointer方法将所有关键帧的顶点及纹理坐标数据传入所述顶点着色器程序,以及通过调用glUniform1f方法将当前融合比例值传入所述顶点着色器程序,进行融合处理;
将融合处理后的顶点及纹理坐标数据传入所述片元着色器程序,进行上色处理,得到所述3D帧动画数据。
本发明还提出一种3D帧动画实现装置,包括:
模型创建模块,用于采用3D建模工具建立多个关键帧的3D模型,生成对应的3D模型数据文件;
解析获取模块,用于解析所述3D模型数据文件,获取所述多个关键帧的顶点及纹理坐标数据;
初始化模块,用于创建及初始化顶点着色器及片元着色器程序,在所述顶点着色器及片元着色器程序中对应加载预先创建的顶点着色器及片元着色器的代码;
处理模块,用于获取当前融合比例值,将所有关键帧的顶点及纹理坐标数据连同所述融合比例值先后传入所述顶点着色器程序及片元着色器程序,产生3D帧动画数据;
显示模块,用于根据所述3D帧动画数据绘制图像并显示在终端屏幕上。
优选地,该装置还包括:
代码创建模块,用于根据所述关键帧的数量创建相应的顶点着色器及片元着色器的代码。
优选地,所述解析获取模块还用于将所述多个关键帧的顶点及纹理坐标数据存入缓存中。
优选地,所述处理模块还用于启动一个线程;周期性的改变融合比例值,每个融合比例值对应3D帧动画过程中的一帧;在所述线程中获取当前融合比例值。
优选地,所述处理模块还用于通过调用OpenGL ES 2.0中的glVertexAttribPointer方法将所有关键帧的顶点及纹理坐标数据传入所述顶点着色器程序,以及通过调用glUniform1f方法将当前融合比例值传入所述顶点着色器程序,进行融合处理;将融合处理后的顶点及纹理坐标数据传入所述片元着色器程序,进行上色处理,得到所述3D帧动画数据。
本发明还提出一种实现3D帧动画的终端,包括如上所述的装置。
本发明提出的一种3D帧动画实现方法、装置及终端,只需要提供几个关键帧的3D建模数据,得到各关键帧的顶点及纹理坐标数据,在自定义的顶点着色器中,根据传入的融合比例,对相应传入的关键帧的顶点数据进行比例融合,以及上色处理,产生3D帧动画数据绘制图像并显示在终端屏幕上,该方法实现过程简单,不需要对整个动画过程逐帧进行建模制作,可以有效的减少3D UI设计师的工作量,并以较低的成本实现了绚丽的3D动画效果,同时提高了系统性能,且适用于多种嵌入式设备。
附图说明
图1是本发明3D帧动画实现方法第一实施例的流程示意图;
图2是本发明3D帧动画实现方法第二实施例的流程示意图;
图3是本发明3D帧动画实现装置第一实施例的结构示意图;
图4是本发明3D帧动画实现装置第二实施例的结构示意图。
为了使本发明的技术方案更加清楚、明了,下面将结合附图作进一步详述。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,本发明第一实施例提出一种3D帧动画实现方法,包括:
步骤S101,采用3D建模工具建立多个关键帧的3D模型,生成对应的3D模型数据文件;
本实施例使用OpenGL ES 2.0来实现3D帧动画效果。OpenGL ES(OpenGL for Embedded Systems)是免授权费、跨平台且功能完善的2D 和3D 图形应用程序接口API,针对手机、PDA 和游戏主机等嵌入式设备而设计。OpenGL ES是从OpenGL 裁剪定制而来,去除了glBegin/glEnd、四边形(GL_QUADS)、多边形(GL_POLYGONS)等复杂图元的许多非绝对必要的特性。
目前,OpenGL ES主要有OpenGL ES 1.x和OpenGL ES 2.x两个版本,OpenGL ES 1.x 面向功能固定的硬件所设计并提供加速支持、图形质量及性能标准,OpenGL ES 2.x 则提供包括遮盖器技术在内的全可编程3D 图形算法。
本实施例使用其中的OpenGL ES 2.0来实现3D帧动画效果,该方案不需要对整个动画过程逐帧进行建模制作,只需要提供几个关键帧的3D建模数据,即可以实现像雄鹰不停挥动翅膀的这种连续动画。其主要是运用了OpenGL ES 2.0中的可编程渲染管线技术,在自定义的顶点着色器中,根据传入的融合比例,对相应传入的多个关键帧的顶点数据进行比例融合,得到一套结果顶点位置数据。
具体地,首先,采用3D建模工具建立多个关键帧的3D模型,生成对应的3D模型数据文件。
其中,关键帧的数量可以根据需要设定,比如可以为两个、三个或三个以上。
上述3D建模工具具体可以使用3DsMax等软件建模工具,由此得到多个关键帧的建模数据。以雄鹰展翅动画为例,通过3DsMax等软件建模出雄鹰展翅的三个关键帧的建模数据,生成三个关键帧对应的3D模型数据文件,该3D模型数据文件包含有各关键帧的顶点及纹理坐标数据。
步骤S102,解析所述3D模型数据文件,获取所述多个关键帧的顶点及纹理坐标数据;
在得到各关键帧对应的3D模型数据文件后,对各3D模型数据文件进行解析,获取各关键帧的顶点及纹理坐标数据;同时,还可以将所述多个关键帧的顶点及纹理坐标数据存入缓存(FloatBuffer)中。
步骤S103,创建及初始化顶点着色器及片元着色器程序,在所述顶点着色器及片元着色器程序中对应加载预先创建的顶点着色器及片元着色器的代码;
其中,顶点着色器是一个可编程的处理单元,其功能为执行顶点的变换、光照、材质的应用与计算等顶点工作,在每个顶点执行一次。其工作过程为:首先将原始的顶点几何信息及其他属性传送到顶点着色器中,经过顶点着色器程序处理后产生纹理坐标、颜色、顶点位置等后继流程需要的各项顶点属性信息,然后将上述信息传递给图元装配阶段。顶点着色器替代了原有固定管线的顶点变换、光照计算,开发人员可以根据实际需求自行开发顶点变换、光照等功能。
片元着色器是用于处理片元值及其相关数据的可编程单元,其可以执行纹理的采样、颜色的汇总、计算雾颜色等操作,每片元执行一次。片元着色器主要功能为:通过重复执行,将3D物体中的图元光栅化后产生的每个片元的颜色等属性计算出来,送入后继阶段,如剪裁测试、深度测试及模板测试等。
本实施例需要创建及初始化顶点着色器及片元着色器程序,同时,在所述顶点着色器及片元着色器程序中对应加载预先创建的顶点着色器及片元着色器的代码。
其中,顶点着色器的代码包括:在顶点着色器中添加根据多个关键帧的融合比例生成最终当前帧的顶点位置的代码。
在具体实施时,可以采用在宿主程序(例如java或者C语言)中创建并初始化着色器。
步骤S104,获取当前融合比例值,将所有关键帧的顶点及纹理坐标数据连同所述融合比例值先后传入所述顶点着色器程序及片元着色器程序,产生3D帧动画数据;
步骤S105,根据所述3D帧动画数据绘制图像并显示在终端屏幕上。
上述步骤S104及步骤S105中,获取当前融合比例值可以采用以下方案:
在宿主程序中启动一个线程(例如java中的Thread线程);周期性的改变融合比例值,每个融合比例值对应3D帧动画过程中的一帧;然后在所述线程中获取当前融合比例值。
之后,将所有关键帧的顶点及纹理坐标数据连同所述融合比例值先后传入所述顶点着色器程序及片元着色器程序,产生3D帧动画数据,具体过程如下:
通过调用OpenGL ES 2.0中的glVertexAttribPointer方法(主要是用来传递顶点位置数据、法向量顶点数据及纹理坐标等位置信息至顶点及片元着色器之中),将所有关键帧的顶点及纹理坐标数据传入顶点着色器,以及通过调用glUniform1f方法(用于将单个的一致变量float传入顶点及片元着色器之中)将当前融合比例值传入所述顶点着色器,在顶点着色器中运行顶点着色器程序,进行融合处理。
之后,将融合处理后的顶点及纹理坐标数据传入片元着色器,在片元着色器中运行片元着色器程序,进行上色处理,得到3D帧动画数据。
最后,根据所述3D帧动画数据绘制图像并显示在终端屏幕上,以雄鹰展翅动画为例,在屏幕之中就可以看见一个不停挥动着翅膀的鹰的动画。
本实施例通过上述方案,只需要提供几个关键帧的3D建模数据,得到各关键帧的顶点及纹理坐标数据,在自定义的顶点着色器中,根据传入的融合比例,对相应传入的关键帧的顶点数据进行比例融合,以及上色处理,产生3D帧动画数据绘制图像并显示在终端屏幕上,该方法实现过程简单,不需要对整个动画过程逐帧进行建模制作,可以有效的减少3D UI设计师的工作量,并以较低的成本实现了绚丽的3D动画效果,同时提高了系统性能。
而且,该方案使用的OpenGL ES 2.0是跨平台的,在手机、PDA 和游戏主机等嵌入式设备上都有支持,因此适用于多种嵌入式设备。
本实施例方案可以应用于3D游戏开发以及基于android系统的电视界面launcher 3D动画的实现。
如图2所示,本发明第二实施例提出一种3D帧动画实现方法,在上述第一实施例的基础上,在上述步骤S103:创建及初始化顶点着色器及片元着色器程序的步骤之前还包括:
步骤S106,根据所述关键帧的数量创建相应的顶点着色器及片元着色器的代码。
在具体实施过程中,该步骤S106可以置于上述步骤S101或步骤S102之前,或者置于步骤S101或步骤S102之后,或者与上述步骤S101或步骤S102同时进行,本实施例图2以步骤S106置于上述步骤S101之后进行举例说明。
其中,创建顶点着色器代码及片元着色器代码中,执行顶点融合以产生关键帧动画的部分在顶点着色器部分,具体代码如下(以雄鹰展翅动画涉及的三个关键帧举例):
顶点着色器代码:
片元着色器代码:
本实施例通过上述方案,只需要提供几个关键帧的3D建模数据,得到各关键帧的顶点及纹理坐标数据,并根据关键帧的数量创建相应的顶点着色器及片元着色器的代码;在自定义的顶点着色器中,根据传入的融合比例,对相应传入的关键帧的顶点数据进行比例融合,以及上色处理,产生3D帧动画数据绘制图像并显示在终端屏幕上,该方法实现过程简单,不需要对整个动画过程逐帧进行建模制作,可以有效的减少3D UI设计师的工作量,并以较低的成本实现了绚丽的3D动画效果,同时提高了系统性能。
如图3所示,本发明第一实施例提出一种3D帧动画实现装置,包括:模型创建模块201、解析获取模块202、初始化模块203、处理模块204及显示模块205,其中:
模型创建模块201,用于采用3D建模工具建立多个关键帧的3D模型,生成对应的3D模型数据文件;
解析获取模块202,用于解析所述3D模型数据文件,获取所述多个关键帧的顶点及纹理坐标数据;
初始化模块203,用于创建及初始化顶点着色器及片元着色器程序,在所述顶点着色器及片元着色器程序中对应加载预先创建的顶点着色器及片元着色器的代码;
处理模块204,用于获取当前融合比例值,将所有关键帧的顶点及纹理坐标数据连同所述融合比例值先后传入所述顶点着色器程序及片元着色器程序,产生3D帧动画数据;
显示模块205,用于根据所述3D帧动画数据绘制图像并显示在终端屏幕上。
本实施例使用OpenGL ES 2.0来实现3D帧动画效果。OpenGL ES(OpenGL for Embedded Systems)是免授权费、跨平台且功能完善的2D 和3D 图形应用程序接口API,针对手机、PDA 和游戏主机等嵌入式设备而设计。OpenGL ES是从OpenGL 裁剪的定制而来,去除了glBegin/glEnd、四边形(GL_QUADS)、多边形(GL_POLYGONS)等复杂图元的许多非绝对必要的特性。
目前,OpenGL ES主要有OpenGL ES 1.x和OpenGL ES 2.x两个版本,OpenGL ES 1.x 面向功能固定的硬件所设计并提供加速支持、图形质量及性能标准,OpenGL ES 2.x 则提供包括遮盖器技术在内的全可编程3D 图形算法。
本实施例使用其中的OpenGL ES 2.0来实现3D帧动画效果,该方案不需要对整个动画过程逐帧进行建模制作,只需要提供几个关键帧的3D建模数据,既可以实现像雄鹰不停挥动翅膀的这种连续动画。其主要是运用了OpenGL ES 2.0中的可编程渲染管线技术,在自定义的顶点着色器中,根据传入的融合比例,对相应传入的多个关键帧的顶点数据进行比例融合,得到一套结果顶点位置数据。
具体地,首先,通过模型创建模块201采用3D建模工具建立多个关键帧的3D模型,生成对应的3D模型数据文件。
其中,关键帧的数量可以根据需要设定,比如可以为两个、三个或三个以上。
上述3D建模工具具体可以使用3DsMax等软件建模工具,由此得到多个关键帧的建模数据。以雄鹰展翅动画为例,通过3DsMax等软件建模出雄鹰展翅的三个关键帧的建模数据,生成三个关键帧对应的3D模型数据文件,该3D模型数据文件包含有各关键帧的顶点及纹理坐标数据。
在得到各关键帧对应的3D模型数据文件后,通过解析获取模块202对各3D模型数据文件进行解析,获取各关键帧的顶点及纹理坐标数据;同时,还可以将所述多个关键帧的顶点及纹理坐标数据存入缓存(FloatBuffer)中。
其中,顶点着色器是一个可编程的处理单元,其功能为执行顶点的变换、光照、材质的应用与计算等顶点工作,在每个顶点执行一次。其工作过程为:首先将原始的顶点几何信息及其他属性传送到顶点着色器中,经过顶点着色器程序处理后产生纹理坐标、颜色、顶点位置等后继流程需要的各项顶点属性信息,然后将上述信息传递给图元装配阶段。顶点着色器替代了原有固定管线的顶点变换、光照计算,开发人员可以根据实际需求自行开发顶点变换、光照等功能。
片元着色器是用于处理片元值及其相关数据的可编程单元,其可以执行纹理的采样、颜色的汇总、计算雾颜色等操作,每片元执行一次。片元着色器主要功能为:通过重复执行,将3D物体中的图元光栅化后产生的每个片元的颜色等属性计算出来,送入后继阶段,如剪裁测试、深度测试及模板测试等。
之后,通过初始化模块203创建及初始化顶点着色器及片元着色器程序,同时,在所述顶点着色器及片元着色器程序中对应加载预先创建的顶点着色器及片元着色器的代码。
其中,顶点着色器的代码包括:在顶点着色器中添加根据多个关键帧的融合比例生成最终当前帧的顶点位置的代码。
在具体实施时,可以采用在宿主程序(例如java或者C语言)中创建并初始化着色器。
其中,获取当前融合比例值可以采用以下方案:
在宿主程序中启动一个线程(例如java中的Thread线程);周期性的改变融合比例值,每个融合比例值对应3D帧动画过程中的一帧;然后在所述线程中获取当前融合比例值。
之后,通过处理模块204将所有关键帧的顶点及纹理坐标数据连同所述融合比例值先后传入所述顶点着色器程序及片元着色器程序,产生3D帧动画数据,具体过程如下:
通过调用OpenGL ES 2.0中的glVertexAttribPointer方法(主要是用来传递顶点位置数据、法向量顶点数据及纹理坐标等位置信息至顶点及片元着色器之中),将所有关键帧的顶点及纹理坐标数据传入顶点着色器,以及通过调用glUniform1f方法(用于将单个的一致变量float传入顶点及片元着色器之中)将当前融合比例值传入所述顶点着色器,在顶点着色器中运行顶点着色器程序,进行融合处理。
之后,将融合处理后的顶点及纹理坐标数据传入片元着色器,在片元着色器中运行片元着色器程序,进行上色处理,得到3D帧动画数据。
最后,显示模块205根据所述3D帧动画数据绘制图像并显示在终端屏幕上,以雄鹰展翅动画为例,在屏幕之中就可以看见一个不停挥动着翅膀的鹰的动画。
本实施例通过上述方案,只需要提供几个关键帧的3D建模数据,得到各关键帧的顶点及纹理坐标数据,在自定义的顶点着色器中,根据传入的融合比例,对相应传入的关键帧的顶点数据进行比例融合,以及上色处理,产生3D帧动画数据绘制图像并显示在终端屏幕上,该方法实现过程简单,不需要对整个动画过程逐帧进行建模制作,可以有效的减少3D UI设计师的工作量,并以较低的成本实现了绚丽的3D动画效果,同时提高了系统性能。
而且,该方案使用的OpenGL ES 2.0是跨平台的,在手机、PDA 和游戏主机等嵌入式设备上都有支持,因此适用于多种嵌入式设备。
本实施例方案可以应用于3D游戏开发以及基于android系统的电视界面launcher 3D动画的实现。
如图4所示,本发明第二实施例提出一种3D帧动画实现装置,在上述第一实施例的基础上,还包括:
代码创建模块206,用于根据所述关键帧的数量创建相应的顶点着色器及片元着色器的代码。
其中,在具体实施过程中,该代码创建模块206的功能实现可以在模型创建模块201或解析获取模块202之前完成,或者在模型创建模块201或解析获取模块202之后完成,或者与模型创建模块201或解析获取模块202同时进行,本实施例图4以代码创建模块206的功能实现在模型创建模块201或解析获取模块202之后完成进行举例说明。
其中,在创建顶点着色器代码及片元着色器代码中,执行顶点融合以产生关键帧动画的部分在顶点着色器部分,具体代码如下(以雄鹰展翅动画涉及的三个关键帧举例):
顶点着色器代码:
片元着色器代码:
本实施例通过上述方案,只需要提供几个关键帧的3D建模数据,得到各关键帧的顶点及纹理坐标数据,并根据关键帧的数量创建相应的顶点着色器及片元着色器的代码;在自定义的顶点着色器中,根据传入的融合比例,对相应传入的关键帧的顶点数据进行比例融合,以及上色处理,产生3D帧动画数据绘制图像并显示在终端屏幕上,该方法实现过程简单,不需要对整个动画过程逐帧进行建模制作,可以有效的减少3D UI设计师的工作量,并以较低的成本实现了绚丽的3D动画效果,同时提高了系统性能。
此外,本发明较佳实施例还提出一种实现3D帧动画的终端,包括如上所述的装置。
本发明实施例3D帧动画实现方法、装置及终端,只需要提供几个关键帧的3D建模数据,得到各关键帧的顶点及纹理坐标数据,在自定义的顶点着色器中,根据传入的融合比例,对相应传入的关键帧的顶点数据进行比例融合,以及上色处理,产生3D帧动画数据绘制图像并显示在终端屏幕上,该方法实现过程简单,不需要对整个动画过程逐帧进行建模制作,可以有效的减少3D UI设计师的工作量,并以较低的成本实现了绚丽的3D动画效果,同时提高了系统性能,且适用于多种嵌入式设备。
上述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (11)
1.一种3D帧动画实现方法,其特征在于,包括:
采用3D建模工具建立多个关键帧的3D模型,生成对应的3D模型数据文件;
解析所述3D模型数据文件,获取所述多个关键帧的顶点及纹理坐标数据;
创建及初始化顶点着色器及片元着色器程序,在所述顶点着色器及片元着色器程序中对应加载预先创建的顶点着色器及片元着色器的代码;
获取当前融合比例值,将所有关键帧的顶点及纹理坐标数据连同所述融合比例值先后传入所述顶点着色器程序及片元着色器程序,产生3D帧动画数据;
根据所述3D帧动画数据绘制图像并显示在终端屏幕上。
2.根据权利要求1所述的方法,其特征在于,所述创建及初始化顶点着色器及片元着色器程序的步骤之前包括:
根据所述关键帧的数量创建相应的顶点着色器及片元着色器的代码。
3.根据权利要求1所述的方法,其特征在于,所述解析3D模型数据文件,获取所述多个关键帧的顶点及纹理坐标数据的步骤之后还包括:
将所述多个关键帧的顶点及纹理坐标数据存入缓存中。
4.根据权利要求1所述的方法,其特征在于,所述获取当前融合比例值的步骤包括:
启动一个线程;周期性的改变融合比例值,每个融合比例值对应3D帧动画过程中的一帧;
在所述线程中获取当前融合比例值。
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述将所有关键帧的顶点及纹理坐标数据连同所述融合比例值先后传入所述顶点着色器程序及片元着色器程序,产生3D帧动画数据的步骤包括:
通过调用OpenGL ES 2.0中的glVertexAttribPointer方法将所有关键帧的顶点及纹理坐标数据传入所述顶点着色器程序,以及通过调用glUniform1f方法将当前融合比例值传入所述顶点着色器程序,进行融合处理;
将融合处理后的顶点及纹理坐标数据传入所述片元着色器程序,进行上色处理,得到所述3D帧动画数据。
6.一种3D帧动画实现装置,其特征在于,包括:
模型创建模块,用于采用3D建模工具建立多个关键帧的3D模型,生成对应的3D模型数据文件;
解析获取模块,用于解析所述3D模型数据文件,获取所述多个关键帧的顶点及纹理坐标数据;
初始化模块,用于创建及初始化顶点着色器及片元着色器程序,在所述顶点着色器及片元着色器程序中对应加载预先创建的顶点着色器及片元着色器的代码;
处理模块,用于获取当前融合比例值,将所有关键帧的顶点及纹理坐标数据连同所述融合比例值先后传入所述顶点着色器程序及片元着色器程序,产生3D帧动画数据;
显示模块,用于根据所述3D帧动画数据绘制图像并显示在终端屏幕上。
7.根据权利要求6所述的装置,其特征在于,还包括:
代码创建模块,用于根据所述关键帧的数量创建相应的顶点着色器及片元着色器的代码。
8.根据权利要求6所述的装置,其特征在于,所述解析获取模块还用于将所述多个关键帧的顶点及纹理坐标数据存入缓存中。
9.根据权利要求6所述的装置,其特征在于,所述处理模块还用于启动一个线程;周期性的改变融合比例值,每个融合比例值对应3D帧动画过程中的一帧;在所述线程中获取当前融合比例值。
10.根据权利要求6-9中任一项所述的装置,其特征在于,所述处理模块还用于通过调用OpenGL ES 2.0中的glVertexAttribPointer方法将所有关键帧的顶点及纹理坐标数据传入所述顶点着色器程序,以及通过调用glUniform1f方法将当前融合比例值传入所述顶点着色器程序,进行融合处理;将融合处理后的顶点及纹理坐标数据传入所述片元着色器程序,进行上色处理,得到所述3D帧动画数据。
11.一种实现3D帧动画的终端,其特征在于,包括权利要求6-10中任一项所述的装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013102893726A CN103413344A (zh) | 2013-07-10 | 2013-07-10 | 3d帧动画实现方法、装置及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013102893726A CN103413344A (zh) | 2013-07-10 | 2013-07-10 | 3d帧动画实现方法、装置及终端 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103413344A true CN103413344A (zh) | 2013-11-27 |
Family
ID=49606349
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2013102893726A Pending CN103413344A (zh) | 2013-07-10 | 2013-07-10 | 3d帧动画实现方法、装置及终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103413344A (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107895388A (zh) * | 2017-11-13 | 2018-04-10 | 广州视睿电子科技有限公司 | 图形的颜色填充方法、装置、计算机设备及存储介质 |
CN108010095A (zh) * | 2017-11-14 | 2018-05-08 | 阿里巴巴集团控股有限公司 | 一种纹理合成的方法、装置及设备 |
CN108520491A (zh) * | 2018-04-24 | 2018-09-11 | 上海仪电汽车电子系统有限公司 | 基于qnx操作系统的全屏开机动画驱动方法 |
CN110264554A (zh) * | 2019-06-24 | 2019-09-20 | 网易(杭州)网络有限公司 | 动画信息的处理方法、装置、存储介质和电子装置 |
CN110270089A (zh) * | 2019-06-21 | 2019-09-24 | 上海米哈游网络科技股份有限公司 | 一种模型细节展示方法、装置、服务器和介质 |
CN110543620A (zh) * | 2019-09-03 | 2019-12-06 | 武汉中海庭数据技术有限公司 | 一种基于OpenGL ES2.0绘制图元的方法及系统 |
CN110996087A (zh) * | 2019-12-10 | 2020-04-10 | 腾讯科技(深圳)有限公司 | 视频显示方法、装置 |
CN110989878A (zh) * | 2019-11-01 | 2020-04-10 | 百度在线网络技术(北京)有限公司 | 小程序中的动画展示方法、装置、电子设备及存储介质 |
CN111311716A (zh) * | 2020-02-27 | 2020-06-19 | Oppo广东移动通信有限公司 | 动画播放方法、装置、终端设备以及存储介质 |
CN112102450A (zh) * | 2020-11-18 | 2020-12-18 | 武大吉奥信息技术有限公司 | 一种基于WebGL三维地图的跑马灯特效通用方法 |
CN116703689A (zh) * | 2022-09-06 | 2023-09-05 | 荣耀终端有限公司 | 一种着色器程序的生成方法、装置和电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1604142A (zh) * | 2003-07-14 | 2005-04-06 | 三星电子株式会社 | 基于图像的着色和编辑方法及装置 |
US7746347B1 (en) * | 2004-07-02 | 2010-06-29 | Nvidia Corporation | Methods and systems for processing a geometry shader program developed in a high-level shading language |
CN102306097A (zh) * | 2011-08-12 | 2012-01-04 | 中国科学院光电技术研究所 | 一种在MultiGen-Vega中对场景图进行实时图像处理的方法 |
-
2013
- 2013-07-10 CN CN2013102893726A patent/CN103413344A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1604142A (zh) * | 2003-07-14 | 2005-04-06 | 三星电子株式会社 | 基于图像的着色和编辑方法及装置 |
US7746347B1 (en) * | 2004-07-02 | 2010-06-29 | Nvidia Corporation | Methods and systems for processing a geometry shader program developed in a high-level shading language |
CN102306097A (zh) * | 2011-08-12 | 2012-01-04 | 中国科学院光电技术研究所 | 一种在MultiGen-Vega中对场景图进行实时图像处理的方法 |
Non-Patent Citations (2)
Title |
---|
吴亚峰: "《Android 3D游戏开发技术宝典 OpenGL ES 2.0》", 31 May 2012 * |
黄小凤等: "基于OpenGL ES的移动平台的三维模型绘制", 《工业控制计算机》 * |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107895388B (zh) * | 2017-11-13 | 2022-04-12 | 广州视睿电子科技有限公司 | 图形的颜色填充方法、装置、计算机设备及存储介质 |
CN107895388A (zh) * | 2017-11-13 | 2018-04-10 | 广州视睿电子科技有限公司 | 图形的颜色填充方法、装置、计算机设备及存储介质 |
CN108010095B (zh) * | 2017-11-14 | 2021-06-04 | 创新先进技术有限公司 | 一种纹理合成的方法、装置及设备 |
CN108010095A (zh) * | 2017-11-14 | 2018-05-08 | 阿里巴巴集团控股有限公司 | 一种纹理合成的方法、装置及设备 |
CN108520491A (zh) * | 2018-04-24 | 2018-09-11 | 上海仪电汽车电子系统有限公司 | 基于qnx操作系统的全屏开机动画驱动方法 |
CN110270089A (zh) * | 2019-06-21 | 2019-09-24 | 上海米哈游网络科技股份有限公司 | 一种模型细节展示方法、装置、服务器和介质 |
CN110264554A (zh) * | 2019-06-24 | 2019-09-20 | 网易(杭州)网络有限公司 | 动画信息的处理方法、装置、存储介质和电子装置 |
CN110264554B (zh) * | 2019-06-24 | 2023-12-19 | 网易(杭州)网络有限公司 | 动画信息的处理方法、装置、存储介质和电子装置 |
CN110543620A (zh) * | 2019-09-03 | 2019-12-06 | 武汉中海庭数据技术有限公司 | 一种基于OpenGL ES2.0绘制图元的方法及系统 |
CN110989878B (zh) * | 2019-11-01 | 2021-07-20 | 百度在线网络技术(北京)有限公司 | 小程序中的动画展示方法、装置、电子设备及存储介质 |
CN110989878A (zh) * | 2019-11-01 | 2020-04-10 | 百度在线网络技术(北京)有限公司 | 小程序中的动画展示方法、装置、电子设备及存储介质 |
CN110996087B (zh) * | 2019-12-10 | 2021-04-02 | 腾讯科技(深圳)有限公司 | 视频显示方法、装置 |
CN110996087A (zh) * | 2019-12-10 | 2020-04-10 | 腾讯科技(深圳)有限公司 | 视频显示方法、装置 |
CN111311716A (zh) * | 2020-02-27 | 2020-06-19 | Oppo广东移动通信有限公司 | 动画播放方法、装置、终端设备以及存储介质 |
CN111311716B (zh) * | 2020-02-27 | 2023-05-12 | Oppo广东移动通信有限公司 | 动画播放方法、装置、终端设备以及存储介质 |
CN112102450A (zh) * | 2020-11-18 | 2020-12-18 | 武大吉奥信息技术有限公司 | 一种基于WebGL三维地图的跑马灯特效通用方法 |
CN116703689A (zh) * | 2022-09-06 | 2023-09-05 | 荣耀终端有限公司 | 一种着色器程序的生成方法、装置和电子设备 |
CN116703689B (zh) * | 2022-09-06 | 2024-03-29 | 荣耀终端有限公司 | 一种着色器程序的生成方法、装置和电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103413344A (zh) | 3d帧动画实现方法、装置及终端 | |
CN111145326B (zh) | 三维虚拟云模型的处理方法、存储介质、处理器及电子装置 | |
CN108597014B (zh) | 一种基于可视化编程的跨平台渲染效果的编辑系统 | |
CN107358649B (zh) | 地形文件的处理方法和装置 | |
US20080278482A1 (en) | Method to Render a Root-Less Scene Graph With a User Controlled Order of Rendering | |
CN102306391A (zh) | 基于OpenGL的倒影显示处理装置及方法 | |
US9311749B2 (en) | Method for forming an optimized polygon based shell mesh | |
KR20130131179A (ko) | 메타버스를 활용한 사이버 모델하우스 시스템 | |
CN102915232B (zh) | 一种3d控件的交互方法及通信终端 | |
CN105637563A (zh) | 在屏幕上显示3d场景图的方法 | |
CN110134025B (zh) | 一种小型分布式高超声速飞行器实时仿真系统 | |
CN109102560A (zh) | 三维模型渲染方法及装置 | |
KR20160051155A (ko) | 렌더링 장치 및 방법 | |
CN105069831A (zh) | 一种基于Hook技术获取OpenGL渲染画面的方法和系统 | |
CN105786432A (zh) | 在移动终端上展示虚拟画面的方法及装置 | |
RU2680355C1 (ru) | Способ и система удаления невидимых поверхностей трёхмерной сцены | |
CN111091620A (zh) | 基于图形学的地图动态路网处理方法及系统、计算机设备 | |
CN102306097B (zh) | 一种在MultiGen-Vega中对场景图进行实时图像处理的方法 | |
US10062140B2 (en) | Graphics processing systems | |
JP5864474B2 (ja) | 空間を分割してグラフィックスを処理する画像処理装置及び画像処理方法 | |
CN110930499B (zh) | 一种3d数据处理方法及装置 | |
CN103295181B (zh) | 一种粒子文件与视频的叠加方法和装置 | |
Sloup | WebGL earth | |
CN112102450B (zh) | 一种基于WebGL三维地图的跑马灯特效通用方法 | |
McMullen et al. | Improving platform independent graphical performance by compressing information transfer using json |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20131127 |
|
WD01 | Invention patent application deemed withdrawn after publication |