本章主要讲解了如何解析和渲染Doom3引擎中的MD5骨骼蒙皮动画。首先通过扩展本书的姊妹篇《TypeScript图形渲染实战2D架构设计与实现》最后一章的2D骨骼层次Demo,使其支持不支持权重合成的、简化版的2D骨骼蒙皮动画效果,目的是了解骨骼蒙皮动画的各种坐标系以及蒙皮顶点的转换流程。
在有了父子层次关系、骨骼坐标系、模型坐标系、绑定姿态等这些概念后就进入Doom3引擎的.md5mesh文件格式的解析与渲染流程。通过本节,你会了解.md5mesh文件格式中的各个重要的数据结构,利用.md5mesh的这些数据结构,最终的目的是计算各个MD5Vertex对象的finalPosInModelSpace坐标值,这些坐标值就是绘制.md5mesh的绑定姿态的关键数据。
然后继续来了解.md5anim文件格式的解析和渲染。通过本节,你会了解.md5anim文件格式中各个重要的数据结构,最后利用.md5anim的这些数据结构,最终的目的是计算出当前动画序列某一帧中所有蒙皮顶点MD5Vertex对象的animatedPosInModelSpace坐标值,通过这些坐标值,我们就可以绘制出该帧的姿态。只要你不停更新帧号,不停计算animatedPosInModelSpace的坐标值进行绘制,就获得了动画播放的功能。
本章最关键的一节是: 10.1.3 骨骼蒙皮动画数学关键点的问答