一种骨骼动画文件的存储方法

文档序号:9668221阅读:885来源:国知局
一种骨骼动画文件的存储方法
【技术领域】
[0001]本发明涉及一种骨骼动画文件的存储方法,属于骨骼动画文件的存储方法领域。
【背景技术】
[0002]随着CPU计算能力与GPU绘制能力的不断增强,实时交互式3D应用及游戏场景中对骨骼动画模型的需求爆发式增长,这也进一步导致需要在自己的应用或游戏中加入骨骼动画的软件开发。
[0003]市面上公开技术标准的骨骼动画文件主要是ms3d文件。ms3d文件不能直接使用主流的模型设计软件(如3dsMax或者Maya)导出,主要是使用比较小众的Milkshape 3D软件制作,而Milkshape 3D软件通用性差、功能较弱;另外ms3d文件也有一些固有的技术缺陷,其中的每个骨骼蒙皮顶点只能受到一个骨骼的控制,这使得骨骼动画在再现某些动作时仿真度差,效果一般。
[0004]本发明中所设计的骨骼动画文件格式包含的信息量全,便于高效地加载及渲染。其中的蒙皮顶点可以最多受到四个骨骼的加权控制,这也是目前主流骨骼动画模型设计工具支持的数量上限,在模拟很多动作的情况下仿真度高,视觉效果优良;并且在设计此文件格式时充分考虑到了与主流设计工具的对接,可以方便的将主流设计工具中的骨骼动画模型数据转化为本文件格式的文件。

【发明内容】

[0005]本发明目的之一是便于高效地加载及渲染3D动画,在模拟动作时提高仿真度,改善视觉效果。
[0006]本发明目的之二是与主流设计工具对接,方便将主流设计工具中的骨骼动画模型数据转化为本文件格式的文件数据。
[0007]本发明的目的是通过下述技术方案实现的:
一种骨骼动画文件的存储方法,其特征在于所述骨骼动画文件的存储方法包括以下步骤:
a.定义存储模型顶点坐标信息的顶点数据;
b.定义存储模型纹理数据的纹理坐标信息;
c.定义存储模型顶点索引信息的索引数据;
d.定义存储模型的顶点权值数据;
e.定义存储模型顶点绑定骨骼索引的顶点与骨骼绑定信息;
f.定义存储模型骨骼索引的骨骼索引信息;
g.定义存储模型骨骼绝对矩阵的绝对矩阵信息;
h.定义存储模型骨骼的相对矩阵和骨骼间的父子关系的相对矩阵和父骨骼信息;
1.定义存储骨骼动画本身数据的骨骼动画信息。
[0008]所述顶点数据开始为占用固定字节的整数,存储的是模型中顶点的坐标数量,若有N个顶点则顶点坐标数量为3N,后面跟着的是指定数量顶点的X、Y、Z位置坐标数据,每个坐标数据为占用固定字节的浮点数。
[0009]所述纹理坐标信息开始为占用固定字节的整数,存储的是模型中纹理坐标的数量,若有N个顶点则顶点文理坐标数量为2N,后面跟着的是指定数量顶点的S、T位置坐标数据,每个坐标数据为占用固定字节的浮点数。
[0010]所述索引数据开始为占用固定字节的整数,存储的是模型中顶点索引的数量,若模型中有N个三角形面,则索引数量为3N,后面跟着的是指定数量顶点索引的indexl,index2, index3的数据,每个索引数据为占用固定字节的浮点数。
[0011]所述顶点权值数据开始为占用固定字节的整数,存储的是模型中顶点权值的数量,若模型中有N个顶点,则权重数据数量为4N,后面跟着的是指定数量顶点权值的weightl,weight2,weight3,weight4的数据,每个权值数据为占用固定字节的浮点数。
[0012]所述顶点与骨骼绑定信息开始为占用固定字节的整数,存储的是模型中绑定骨骼索引的数量,若模型中有N个顶点,则绑定骨骼索引数据数量为4N,后面跟着的是指定数量绑定骨骼■索引的bonelndexl,boneIndex2,boneIndex3,boneIndex4的数据,每个绑定骨骼.索引数据为占用固定字节的浮点数。
[0013]所述骨骼索引信息开始为占用固定字节的整数,存储的是骨骼的数量N,后面跟着N组骨骼索引和骨骼名称id数据,其中骨骼索引为占用固定字节的整数,骨骼名称id数据是由字符串长度和相应字符串长度的字符组成,其中字符串长度是以4个字节存储的整数,字符以1个字节存储。
[0014]所述绝对矩阵信息开始为占用固定字节的整数,存储的是骨骼的数量N,后面跟着N组骨骼名称i d和绝对矩阵,骨骼名称i d数据是由字符串长度和相应字符串长度的字符组成,其中字符串长度是以4个字节存储的整数,字符以1个字节存储,绝对矩阵由矩阵数量和矩阵数据组成,其中矩阵数量为4个字节组成的整数,矩阵数据存储对应数量的矩阵元素,每个元素为4个字节组成的浮点数。
[0015]所述相对矩阵和父骨骼信息开始为占用固定字节的整数,存储的是骨骼的数量N,后面跟着N组骨骼名称id,父骨骼名称id和相对矩阵,骨骼名称id数据由字符串长度和相应字符串长度的字符组成,其中字符串长度是以4个字节存储的整数,字符以1个字节存储,父骨骼名称id与骨骼名称id组织方式相同,相对矩阵由矩阵数量和矩阵数据组成,其中矩阵数量为4个字节组成的整数,矩阵数据存储的是对应数量的矩阵元素,每个元素为4个字节组成的浮点数。
[0016]所述骨骼动画信息开始为占用固定字节整数的骨骼数量N,后面跟着N组骨骼动画数据,包括:骨骼名称id,骨骼动画关键帧数量,关键帧信息,骨骼动画关键帧数量为4个字节的整数,关键帧信息包括关键帧时间,缩放数据,旋转数据和平移数据;所述缩放数据包括缩放数据长度和缩放数据,缩放数据长度为4个字节组成的整数,缩放数据存储的XYZ轴的缩放比,各自是一个4字节浮点数;所述旋转数据包括旋转数据长度和旋转数据,旋转数据长度为4个字节组成的整数,旋转数据存储的是表示旋转的四元数的各个分量,每个分量是一个4字节浮点数;所述平移数据包括平移数据长度和平移数据,平移数据长度为4个字节组成的整数,平移数据存储的XYZ轴的平移量,各自是一个4字节浮点数;最后存储的是骨骼动画关键帧的最大值,为4个字节的整数。
[0017]本发明主要有益效果:本发明中所设计的骨骼动画文件格式包含的信息量全,便于高效地加载及渲染。其中的蒙皮顶点可以最多受到四个骨骼的加权控制,这也是目前主流骨骼动画模型设计工具支持的数量上限,在模拟动作时仿真度高,视觉效果优良。
【附图说明】
[0018]图1为本发明系统流程图。
[0019]图2为本发明顶点坐标数据组织格式示意图。
[0020]图3为本发明纹理坐标数据组织格式示意图。
【具体实施方式】
[0021]下面结合附图和实施例做进一步说明。
[0022]本发明的基本思想是自己设计一套骨骼动画文件的存储方法,定义多种信息,增加蒙皮顶点的骨骼加权控制数量,提高动画仿真效果,同时方便与主流设计工具的对接。
[0023]实施例1:
一种骨骼动画文件的存储方法包括以下步骤如图1所示:
a.定义存储模型顶点坐标信息的顶点数据:如图2所示这部分的一开始为占用固定字节的整数,可以为2个,4个,8个字节,本实施例为4个字节,存储的是模型中顶点的坐标数量(若有N个顶点则顶点坐标数量为3N)。后面跟着的是指定数量顶点的X、Y、Z位置坐标数据,每个坐标数据为占用固定字节的浮点数,可以为4个或8个字节,本实施例以4个字节存储。
[0024]例如顶点数据部分文件内容为:f2 10 00 00 40 7b ef 3f 81 22 93 41 00 15
57 3f......(十六进制)代表首先是顶点坐标数量4个字节f2 10 00 00,字节顺序为
smallEndia相当于十进制的4338,即后面紧跟着的是4338个4字节浮点数,第一个顶点X坐标40 7b ef 3f (即十进制的1.8709488),第一个顶点Y坐标81 22 93 41 (即十进制的18.391848),第一个顶点Z坐标00 15 57 3f (即十进制的0.8401642)。
[0025]b.定义存储模型纹理数据的纹理坐标信息:如图3所示这部分的一开始为占用固定字节的整数,可以为2个,4个,8个字节,本实施例为4个字节,存储的是模型中纹理坐标的数量(若有N个顶点则顶点坐标数量为2N)。后面跟着的是指定数量顶点的S、T位置坐标数据,每个坐标数据为占用固定字节的浮点数,可以为4个或8个字节,本实施例以4个字节存储。
[0026]例如纹理坐标数据部分文件内容为:4c Ob 00 00 37 6c af 3d bO Od a9
3e......(十六进制)代表首先是纹理坐标数量4个字节4c Ob 00 00,字节顺序为
smallEndia相当于十进制的2892,即后面紧跟着的是2892个4字节浮点数,第一个顶点S坐标37 6c af 3d (即十进制的0.08565562),第一个顶点T坐标bO 0d a9 3e (即十进制的 0.33018255)。
[0027]c.定义存储模型顶点索引信息的索引数据:这部分的一开始为占用固定字节的整数,可以为2个,4个,8个字节,本实施例为4个字节,存储的是模
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1