CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

求助.net下绘制骨骼动画的问题

楼主d3ddx()2006-05-01 21:29:39 在 .NET技术 / C# 提问

我的源代码和directxSDk上的动画实例基本一样但运行时会在  
    private   void   DrawMeshContainer(AnimationMeshContainer   mesh,   AnimationFrame   parent)  
                  {  
                          //   first   check   for   skinning  
                          if   (mesh.SkinInformation   !=   null)  
                          {  
                                  if   (mesh.NumberInfluences   ==   1)  
                                          device.RenderState.VertexBlend   =   VertexBlend.ZeroWeights;  
                                  else  
                                          device.RenderState.VertexBlend   =   (VertexBlend)(mesh.NumberInfluences   -   1);  
   
                                  if   (mesh.NumberInfluences   >   0)  
                                          device.RenderState.IndexedVertexBlendEnable   =   true;  
   
                                  BoneCombination[]   bones   =   mesh.GetBones();  
   
                                  for   (int   iAttrib   =   0;   iAttrib   <   mesh.NumberAttributes;   iAttrib++)  
                                  {  
                                          //   first,   get   world   matrices  
                                          for   (int   iPaletteEntry   =   0;   iPaletteEntry   <   mesh.NumberPaletteEntries;  
                                                  ++iPaletteEntry)  
                                          {  
                                                  int   iMatrixIndex   =   bones[iAttrib].BoneId[iPaletteEntry];  
                                                  if   (iMatrixIndex   !=   -1)  
                                                  {  
                                                          device.Transform.SetWorldMatrixByIndex(iPaletteEntry,  
                                                                  mesh.GetOffsetMatrices()[iMatrixIndex]   *  
                                                                  mesh.GetFrames()[iMatrixIndex].  
                                                                  CombinedTransformationMatrix);  
   
                                                  }  
                                          }  
   
                                          //   Setup   the   material  
                                          device.Material   =   mesh.GetMaterials()[bones[iAttrib].AttributeId].Material3D;  
                                          device.SetTexture(0,   mesh.GetTextures()[bones[iAttrib].AttributeId]);  
   
                                          //   Finally   draw   the   subset  
                                          Mesh   x   =   mesh.MeshData.Mesh;  
                                          x.DrawSubset(iAttrib);  
                                  }  
                          }  
                          else  
                          {  
                                  //   Standard   mesh,   just   draw   it   using   FF  
                                  device.RenderState.VertexBlend   =   VertexBlend.Disable;  
   
                                  //   Set   up   transforms  
                                  device.Transform.World   =   parent.CombinedTransformationMatrix;  
   
                                  ExtendedMaterial[]   materials   =   mesh.GetMaterials();  
                                  for   (int   i   =   0;   i   <   materials.Length;   ++i)  
                                  {  
                                          device.Material   =   materials[i].Material3D;  
                                          device.SetTexture(0,   mesh.GetTextures()[i]);  
                                          mesh.MeshData.Mesh.DrawSubset(i);  
                                  }  
                          }  
  }的   Mesh   x   =   mesh.MeshData.Mesh;  
                                          x.DrawSubset(iAttrib);处抛出异常,望高手指教 问题点数:20、回复次数:0Top

相关问题

关键词

得分解答快速导航

  • 帖主:d3ddx

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo