- 最后登录
- 2013-6-17
- 注册时间
- 2013-5-10
- 阅读权限
- 20
- 积分
- 385
- 纳金币
- 385
- 精华
- 0
|
综合常用的几种Flash3D加载的模型动画格式为MD2与MD5;
Flare3D又有f3d和现在的zf3d;
Away3D又有awd;
其中MD5与awd则不支持位移动画;
zf3d和awd只支持普通骨骼;
如果你想使用Ik,则要在导出时删除Ik;
MD2导出使用时模型不会显示贴图,这时需要插件辅助。
MD2:
MD2文件格式分析及显示
本文介绍MD2文件的格式,并介绍使用OpenGL显示MD2文件的方法。、
首先,我们必须要搞清几个问题:
1、动画的实现原理
2、MD2文件的数据存储格式
3、OpenGL显示动画的方法
一、动画的原理
动画就是连续出现的画面,在3D动画中,在一个在两个差别很大的动作之间进行插值,使得3D模型的各个部分连续运动而得到动画的效果。比如:将手臂在左边时的3D模型和手臂在右边时的3D模型进行保留,然后根据时间在这两个模型之间进行插值,让其在某个时刻显示其在中间的模型,如此连续的显示便构成了动画的效果。
因此,MD2文件中便存储了动画的各个关键帧,只不过可能某些动作的完成需要多个关键帧,另外,我们了解了动画的原理,我们便知道,在动画的运动过程中,模型的顶点个数和纹理是相同的,只是在某个时刻模型的顶点坐标有差异。
二、MD2文件数据的格式
要搞清楚MD2文件的格式必须要知道其中都存储了那些数据,MD2动画由两个文件组成,一个是以.MD2为后缀的文件,其中保留了动画模型的各个点的信息,包括:顶点坐标、纹理坐标、纹理名称、三角形索引等信息。另一个是一个图片文件,可以是多种格式的图片,本文中使用的是BMP文件。
MD5文件格式分析及显示
MD5模型是ID公司第一款真正意义上的骨骼格式模型,在04年随着Doom3一起面世,经过几个版本的变更,现在在骨骼模型格式中依然有其重要地位。本文记录一下ZWModelMD5中的一些细节,先是稍微笔记一下骨骼模型的基本概念和MD5文件的格式与导入。
骨骼的这个概念与我们人体的骨骼还是类似的。我们可以把自己看做一堆骨骼,然后外面蒙上一层肌肉啊皮啊什么的,然后这些肌肉啊皮肤啊的就跟随骨骼的运动而运动。当然了,重要的是我们体内还有那么多器官,那些MD5人体和怪物模型就没有了(笑)。骨骼与骨骼之间是用骨骼节点连接的,我们称骨骼为Bone,称骨骼节点为Joint,一根bone的一端或两端连着两个Joint,而一个Joint可能连着数条Bone。骨骼模型的描述也分为以Bone为主和以Joint为主,MD5是后者。你可以认为Joint就是控制点,通过控制Joint的位置和旋转,可以控制整个骨骼,而整个骨骼也就影响模型的外皮(顶点网格),于是动画模式建立了。Joint的集合可以用一个树的数据结构描述——跟MD3一样,有一个总的父节点,总的父节点下连着一个或多个子节点,这些子节点本身也作为父节点下连一个或多个子节点……父节点的移动直接先作用到子节点上(抬动肩关节时手臂节点也跟着作同样的运动,之后手肘节点跟着手臂节点作同样移动……类推到指尖节点),再叠加上子节点本身的移动(手臂节点本身可以再那基础上作移动,其影响共同作用到手肘节点……用身体摆摆姿势,这其实是很形象的),于是这个前向的驱动模式建立了。每个Joint的运动信息可以抽象成一个变换矩阵M,这样这个驱动模型可以看做是每个时刻给予每个节点一个变换矩阵,变换节点的位置和旋向以驱动骨架。
|
|