存档

2009年10月 的存档

3ds max 导出插件开发后记

2009年10月26日 没有评论

              一直以来。3ds max 导出插件的开发这部分对我都是神秘的黑盒子。直到一个月前,不得不去做这个事,我才开始一步步走近他。通过网络上的只言片语和代码揣摩。终于在两周的时间搞定了导出插件和骨骼动画的查看器。

         

             我用的VS2005进行开发。

             对应 3ds max 2008sdk,3ds max 2009 sdk。

             下图为3ds max 2009中刺蛇的skin骨骼动画模型及导出文件在查看器中的演示。

 

 

              整个工作分为两个部分:

            1。3ds max 导出插件。

 

            这部分网上有可参考的代码。关键的难题是矩阵。

            骨骼的矩阵在3ds max 中是存于4*3矩阵中,要先搞清楚如何计算每一块骨骼的相对矩阵,逆矩阵算法。

 

            我在导出矩阵时直接导出了骨骼的世界矩阵变化。去掉了骨骼父子关系。

            导出的信息包括:

            1。 顶点信息 2。面索引 3。纹理坐标,3。材质信息。4。每一帧的每个骨骼矩阵(我还没有找到关键帧信息)。

            5。 每个顶点受哪个骨骼影响及权重。

 

 

 

3ds max 导出插件开发后记

 

           

 

 

 2。导出查看器

 

                3ds max 导出插件部分相对好做,但查看器的开发需要对骨骼动画的原理进行掌握。

                我的实现还是基于固定管线的。

                1。读入数据创建D3DFVF_XYZB4模型。

                2。设置顶点混合
  m_pd3dDevice->SetRenderState( D3DRS_VERTEXBLEND,D3DVBF_3WEIGHTS );
  m_pd3dDevice->SetRenderState( D3DRS_INDEXEDVERTEXBLENDENABLE, TRUE );

                3。每一帧设置骨骼的矩阵到对应的MATRIX

                4。渲染

 

 

3ds max 导出插件开发后记

 

 

 

             3ds max 导出插件的完成,让我对自已的D3D能力有了更大的信心。

             下一步,我将继续努力。

分类: 未分类 标签: