一直以来。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能力有了更大的信心。

下一步,我将继续努力。

相关文章:

  • 2021-11-17
  • 2021-08-09
  • 2021-12-09
  • 2022-02-09
  • 2021-08-30
  • 2022-12-23
  • 2021-12-13
  • 2021-05-24
猜你喜欢
  • 2021-11-28
  • 2022-12-23
  • 2021-12-17
  • 2021-12-18
  • 2021-12-09
  • 2022-12-23
  • 2021-09-22
相关资源
相似解决方案