首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XNA 4:进口FBX问题

XNA 4:进口FBX问题
EN

Stack Overflow用户
提问于 2011-05-05 17:19:27
回答 3查看 7.8K关注 0票数 2

我有一个从FBX文件导入3D模型的问题。

源模型包含575个对象+1摄像机,如下所示:model.png

在用内容管道模型制作的XNA中,包含82个网格,576块骨头。所以,当我画我的模型时,我只看到了源模型的一部分。结果图片如下:view.png

我的绘图代码:

代码语言:javascript
复制
GraphicsDevice.Clear(Color.CornflowerBlue);

Matrix[] transforms = new Matrix[_model.Bones.Count];
_model.CopyAbsoluteBoneTransformsTo(transforms);

foreach (var mesh in _model.Meshes)
{
    foreach (BasicEffect effect in mesh.Effects)
    {
        effect.LightingEnabled = true;
        effect.EnableDefaultLighting();
        effect.World = transforms[mesh.ParentBone.Index] * _world;
        effect.View = _view;
        effect.Projection = _proj;
    }
    mesh.Draw();
}
base.Draw(gameTime);

如何在XNA中获得模型实例中的所有575个网格?

谢谢!

UPD:我尝试将我的FBX模型导入到3DSmax,选择所有网格并使用"Export“。结果FBX文件大11倍。然后将其作为内容添加到XNA项目中,加载模型包含所有575个网格,并正确呈现。

不幸的是,这种手动转换方法不适合我--我需要从可变存储库呈现各种fbx模型。

那么,对于XNA内容处理器(我使用XNA 4)来说,什么FBX文件是“好的”?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-05-11 03:49:11

因此,在MSDN上,我发现FbxImporter设计用于2006.11版本的FBX格式。

最近,Autodesk发布了FBX转换器2012.1,它包含其他工具,如FBX、FBX。

FBX资源管理器可以显示FBX文件的结构,并比较了从3D MAX文件导出的FBX文件和源文件FBX。它们有不同的内部格式。我试图进行以下转换: FBX -> Collada -> FBX,结果FBX文件包含类似于从MAX数据结构导出的内容。

因此,我简单地将结果FBX添加到我的XNA应用程序的内容中,并且它呈现得很好:)

另一种使其工作的方法是使用Autodesk手动读取模型,并在XNA中绘制。

结论

  1. XNA FbxImporter的正确工作不依赖于FBX文件的版本(2006、2011等)和表单(二进制,ascii)。内部FBX数据结构更为重要。
  2. 若要使XNA导入程序的FBX“可读”,可以使用双转换(如FBX -> Collada -> FBX )。
  3. 您还可以使用FBX SDK手动从FBX加载数据。
票数 2
EN

Stack Overflow用户

发布于 2012-08-08 10:13:32

打开最新的3DXmax 2012 3d模型,并以.fbx格式导出它。这个.fbx与xna模型加载器一起正确加载。在导出时,您甚至可以嵌入资源,因此您不必通过XNA向其添加纹理。

票数 0
EN

Stack Overflow用户

发布于 2012-11-10 08:04:44

你在3DS MAX中使用实例。XNA不直接支持这一点。你必须自己画出每个实例的网眼。理想情况下,您可以使用DirectX实例来在一个call ()调用中为每个骨头绘制一次网格。但是你必须通过将骨头转换成实例顶点来滚动你自己的代码。默认情况下,XNA只支持最基本的操作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5901709

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档