1

我正在使用带有很多骨骼的大型模型,SkinnedEffect 说最大支持的骨骼数量是 72,而我有 143,有什么可以解决的吗?

4

4 回答 4

1

我假设您使用的是 .X 模型,因为我也遇到了这个问题。我改用 FBX,它似乎没有这个问题。

如果您使用的是 .fbx,请忽略我!

于 2012-05-01T23:25:52.297 回答
1

它与位于 SkinningData.cs 中的 if 语句有关:在该文件中搜索

if (bones.Count > SkinnedEffect.MaxBones)
{
                throw new InvalidContentException(string.Format(
                    "Skeleton has {0} bones, but the maximum supported is {1}.",
                    bones.Count, SkinnedEffect.MaxBones));
 }

并将其注释掉,并重建 skinnedmodelpipeline.dll

于 2012-08-19T16:29:19.740 回答
0

快速谷歌产生:

http://en.wikibooks.org/wiki/Creating_a_Simple_3D_Game_with_XNA

本教程包括搅拌机方面,但应涵盖您需要的内容

http://en.wikibooks.org/wiki/Creating_a_Simple_3D_Game_with_XNA/Rendering_Your_Model

这就是您可能要查找的确切页面。

于 2012-05-01T21:03:45.233 回答
0

我认为你有两个选择:

  1. 划分网格......(明显更简单)

  2. 以其他方式将骨骼变换传递给着色器。也许使用纹理......也许效率不高......我不知道......应该进行测试。

于 2012-05-02T07:07:15.603 回答