|
|
发表于 2006-1-10 18:17:00
|
显示全部楼层
Re:SkinMesh中Frame transformation matrix 和 mesh里boneoffset matrix 有
frame里的orginal matrix是相对与父frame的变换矩阵
bone的offset matrix是将定点变换到该bone空间的矩阵,也就是说是相对于bone的
mesh本身的顶点坐标使用的是mesh的本地坐标,相对于mesh的原点
做skinning时,对于每块bone,要先计算使用该bone将mesh中受其影响顶点从mesh本地坐标transform到骨骼体系空间的矩阵(即相对于root frame)
update mesh matrix = bone offset matrix * frame transform matrix
这里的frame transform matrix当不使用动画时就等于一串original matrix相串联的矩阵(从子到父到根),当用动画时,是关键帧插值得到的。(一般情况下original matrix基本没用)
得到update mesh matrix后,在dx8中,直接将它传给updateSkinnedMesh,用软件方法计算mesh顶点的新位置。如果用硬件的vertex blending,就调用几次transform就可以了,让硬件替你按照skin weight插值。
-----------
skinned mesh里面东西多且散乱,有时间自己整理下:)
|
|