MD5格式利用了骨骼系统(也称为关节系统)来做动画效果,因此在本章节会介绍如何遍历存储在md5anim文件中的动画以及如何将动画应用在模型上。骨骼系统(也称为关节系统)优点在于比直接存储关键帧动画要占用更少的内存,因为关键帧动画相当于给每个动画帧赋予一个全新的模型,而关节系统仅仅在每帧存储骨头的方向以及位置信息。
简介:
在上一章节介绍了加载md5模型,并使用骨骼系统计算顶点位置和法线。在本章节会介绍如何导入md5动画文件.md5anim并使用存储在内的数据让模型动起来。整体的思路如下:
1.导入动画文件.md5anim,导入方法会在后面讲到
2.计算当前时间动画中的骨骼,也就是当前时间下在两帧间(也就是已过去的帧与将到来的帧之间)插值两幅骨骼
3.在创建完插值骨骼后,需要通过权重来重新计算顶点位置和法线
4.最后,在得到顶点位置和法线(得到切线和副切线的方法和法线一样)后,需要更新顶点缓冲
跳过第1步导入动画以及第2步,直接介绍第3步,创建插值骨骼。
创建插值骨骼
在导入动画时,就为每个动画帧创建了骨骼。随后就在这些帧(比如帧1和帧2之间)之间插入这些骨骼以得到动画的当前帧。当然可以仅仅使用动画帧本身而不用为每帧创建插值骨骼来得到动画,但是这会让动画