弄了差不多4天了,终于搞出来了。太坑爹了,网上很多都没说清楚,最终要的是,一些坑点一定要注意,否则模型会像畸形了一样,再者,写代码时手千万不可以手残,否则会增加很多修改错误的时间,这个时间还不如想好了再写。所以写代码一定要清晰了再去写。
开始说说吧。首先网上很多都说了,MD5后缀名是.md5mesh和.md5anim。这两个文件前面是静态的,后面是动态的。我也就不多说了
对于D3D的学习,可以看这一个http://blog.csdn.net/lunweiwangxi3/article/details/44151085,写的很好的。然而对于openGL,里面还有不少坑点。
对于.md5mesh中,格式什么的都可以看别人写的博客,里面最难看懂的是解释,全是什么位置,四元数。都没说清楚是什么位置,为什么这么多位置。
joints 中两个()中的向量,第一个是对于模型的绝对坐标,不是对于父骨骼的。因为在3Dmax中我特意对比了一下,就是在姿态模式下的坐标。
第二个向量是单位四元数的x,y,z。w需要自己算出来。(我就是忘了,开根号,找了很久)w2 = 1 - x2 - y2 - z2 ; w = sqrt(w2) ; 但是这里特别注意,如果w2 < 0那么,
w直接等于0,一定要判断,否者会莫名其妙!!!而且,我的里面w = -sqrt(w2) ;!!!!这也是奇诡的地方,什么时候等于