XNA 4:导入 FBX 问题

2024-04-25

我在从 FBX 文件导入 3D 模型时遇到问题。

源模型包含 575 个对象 + 1 个相机,如下所示:http://habreffect.ru/files/23d/542fa7f67/source_model.png http://habreffect.ru/files/23d/542fa7f67/source_model.png

在用内容管道准备的XNA中,模型包含82个网格和576个骨骼。 因此,当我绘制模型时,我只能看到源模型的一部分。结果图如下:http://habreffect.ru/files/28a/6e61c0215/Result_view.png http://habreffect.ru/files/28a/6e61c0215/Result_view.png

我的绘图代码:

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 个网格?

Thanks!

UPD: 我尝试将 FBX 模型导入 3ds max,选择所有网格并使用“导出所选”。结果 FBX 文件增大了 11 倍。然后我将其作为内容添加到 XNA 项目中,加载的模型包含所有 575 个网格,并且它渲染正确。

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

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


So, on MSDN http://msdn.microsoft.com/en-us/library/bb447762%28v=XNAGameStudio.40%29.aspx我发现 FbxImporter 设计用于 2006.11 版本的 FBX 格式。

最近欧特克发布了,其中包含其他工具,例如 FBX Explorer、FBX Viewer。

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

因此,我只需将结果 FBX 添加到我的 XNA 应用程序的内容中,它就可以很好地呈现:)

另一种方法是使用 Autodesk FBX SDK 手动读取模型,并在 XNA 中进行绘制。

结论:

  1. XNA FbxImporter 的正确工作不依赖于 FBX 文件的版本(2006、2011 等)和形式(二进制、ascii)。内部 FBX 数据结构更为重要。
  2. 要使 FBX 对于 XNA 导入器“可读”,您可以使用双重转换,例如 FBX -> Collada -> FBX
  3. 您还可以使用 FBX SDK 手动从 FBX 加载数据
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

XNA 4:导入 FBX 问题 的相关文章

  • 在 Mathematica 中导入 Google Sketchup 模型

    Google 的 Sketchup 是一个漂亮 简单的 3D 对象建模器 此外 谷歌还拥有巨大的3D 对象仓库 http sketchup google com 3dwarehouse 因此 如果您在这方面不是特别有天赋 实际上您不必自己做
  • 将Python源代码拆分到单独的目录中?

    以下是我的公司 foo com 使用的一些各种 Python 包 com foo bar web com foo bar lib com foo zig web com foo zig lib com foo zig lib lib1 co
  • “无法解析导入 java.util.function”错误

    我正在尝试运行这个练习脚本 http docs oracle com javase tutorial java javaOO examples RosterTest java来自标准 Oracle Java 教程 http docs ora
  • 你可以为 React 组件使用 es6 导入别名语法吗?

    我正在尝试执行类似以下操作 但它返回 null import Button as styledButton from component library 然后尝试将其呈现为 import React PropTypes from react
  • __import__ 与 imp.load_module

    我在尝试使用 IronPython 安装 autopep8 时遇到错误 ImportError No module named logilab 失败的代码片段是 def load module self fullname self reop
  • 当我的项目有同名模块时,如何从标准库导入? (如何控制 Python 寻找模块的位置?)

    我的项目文件夹中有一个名为calendar 在代码的其他地方 我想使用标准库Calendar班级 但是当我尝试导入此类时 使用from calendar import Calendar 这会从我自己的模块导入 从而导致稍后出现错误 我怎样才
  • 将 DBF 文件导入 Sql Server

    我需要一些帮助来解决这个问题 因为我是存储过程的新手 我正在尝试使用此存储过程将 DBF 表导入到 Sql Server 2008 中 CREATE PROCEDURE spImportDB Add the parameters for t
  • Scala 中的通配符导入对于增量编译是否不好?

    在 Scala 中 从增量编译器 sbt Eclipse 中的 sbt IntelliJ 的功效和速度的角度来看 使用通配符导入是否不好 它是否会对这些增量编译器在发生更改时决定重新编译内容的方式产生不利影响 例如 如果对于一个新班级X 我
  • Doctrine - 如何在 postSave() 事件中获取 SQL INSERT 查询?

    我想获得当调用对象的 save 方法时 Doctrine 生成的确切 SQL INSERT 查询 最好 我想在模型的 postSave 事件中获取它并将其记录在 txt 文件中 例如 我想获取 记录以下 SQL 查询 INSERT INTO
  • 如何在Android中渲染OBJ或FBX? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我有几个 obj 和 fbx 格式的 3D 对象 其中包含 mtl 和纹理文件 我想知道哪个是在 An
  • 如何将带有嵌套节点(父/子关系)的 XML 导入 Access?

    我正在尝试将 XML 文件导入 Access 但它创建了 3 个不相关的表 也就是说 子记录被导入到子表中 但无法知道哪些子记录属于哪个父记录 如何导入数据来维护父子节点 记录 之间的关系 以下是 XML 数据的示例
  • 如何在 MS Access 中填充字段描述

    当通过 ODBC 尤其是 AS 400 链接到外部数据源时 我经常会在另一端遇到神秘的字段名称 而数据字典不可用 在极少数情况下 我能够从其他数据库获取字段描述 我希望能够一次导入它们 而不是一次将每个描述复制 粘贴到表设计表单中 我无法在
  • 如何确定通过“from m import *”导入了什么?

    我正在对导入语句进行一些修补 我需要确切地知道哪些成员是由from m import 该文档似乎表明 当 all 不存在时 将导入所有不以下划线开头的成员 这在所有情况下都是正确的吗 我知道inspect getmembers dir an
  • 编译 XNA 项目时,无法执行请求的操作错误

    第二次编译项目时 出现以下错误消息 我必须关闭 VS 2010 重新加载时它会编译 如果我做出改变 那么问题又回来了 无法复制文件 obj x86 Debug MyFile dll 无法对打开的用户映射部分的文件执行请求的操作 我因为另一个
  • 在eclipse中的另一个项目中使用一个项目的包

    如何在定义包的主项目之外使用包的类 例如 假设 people 包中有一个属于 ProjectOne 的 Employee 类 假设另一个具有相同功能的项目 ProjectTwo 需要 Employee 我应该在那里做什么 在 Package
  • Python导入Django管理命令的问题

    不管出于什么原因 当我刚接触 Python 和 Django 时 我在 models py 文件的顶部编写了一些像这样的导入语句 from django contrib import auth 我会这样使用它 class MyModel m
  • Golang 中的“相互”包导入

    是否可以在 Golang 中执行 相互 包导入之类的操作 举例来说 我有两个包 A 和 B 分别具有 AFunc 和 BFunc BFunc2 函数 package A import B func AFunc do stuff but al
  • 检查系统是否有声音 C#

    我们目前正在使用 XNA 开发一款游戏 但我们偶然发现了一个小声音问题 当系统没有插入声音设备 扬声器等 当 Win7 在扬声器图标上显示红十字时 它在尝试播放 加载声音时崩溃 因此 我们想检查系统是否具有输出声音的能力 在C 中可以吗 您
  • 将 CSS 导入 HTML 不起作用

    我正在尝试将 CSS 文件 import 导入 HTML 但它不起作用 我确实尝试过链接路径 但它也不起作用 但这种格式似乎工作为 http U5 L ttJS http 127 0 0 1 54149 assets pages U5 JS
  • com.google.android.gms.games.GamesClient 无法解析

    我正在尝试使用 google play 游戏服务开发实时多人游戏 并下载了示例 ButtonClicker2000 但 Eclipse ADK 一直抱怨 com google android gms games GamesClient 无法

随机推荐

  • OpenCL 矩阵乘法应该更快?

    我正在尝试学习如何使 GPU 优化 OpenCL 内核 我以使用本地内存中的方形图块进行矩阵乘法为例 然而在最好的情况下 我只得到了约 10 倍的加速 约 50 Gflops 与 numpy dot 相比 5 Gflops 它使用的是 BL
  • 如何使这两个事件的代码简短

    我有以下代码 我怎样才能使它简短 以便它可以通过单击并输入来工作 这样我就不必重复它 document ready function document keypress function e if e which 13 form myfor
  • 如何将存储值分配给隐藏字段

    我有一个模型和商店 我需要为商店中的隐藏字段分配一个值 Ext define loginUser extend Ext data Model fields name id mapping Provider id name name mapp
  • 这个计算Code128条码校验位的代码正确吗?

    根据我对 Code128 条形码 与大多数其他标准条形码类型截然不同 的校验位计算的理解 我下面的代码是正确的 然而 我希望那些可能更了解 有一些经验观察 来自附着在风衣 或实验室 外套上的战壕泥的人进行 健全性检查 这是我的理解 条形码中
  • AngularJs 和 ASP.NET MVC 5 - ng-model 覆盖文本框值

    我有一个使用 ASP NET MVC 5 构建的表单 Html TextBoxFor用我的模型填充表单 例如 在表单导航或服务器端验证失败之后 我现在引入了使用 Angular 的客户端地址查找 这意味着一些表单字段现在用ng model启
  • 如何在R中的approxfun()之后根据y值输入估计x值[重复]

    这个问题在这里已经有答案了 我想用approxfun或类似的方法来估计曲线的函数 然后估计x一个点的值将被赋予一个已知的y value 这是一个简化的示例 y lt seq from 1 to 10 by 1 x lt seq from 0
  • 实体框架的审计跟踪

    我在每个表中都有审计跟踪字段 InsertedBy InsertedDate UpdatedBy 和 UpdatedDate 我构建解决方案以通过覆盖 savechange 来减少冗余 public override int SaveCha
  • 我应该把我的 Hugo 网站图标放在哪里

    我正在使用 Hugo 生成静态站点 我应该把我的favicon ico file 将图标放入静态目录中 静态目录位于hugo 站点的根目录中 当您生成网站时 网站图标将被复制到public 生成站点的根
  • 使用 ffmpeg 转换真实媒体

    我有许多旧的硬壳真实媒体文件需要转换 并希望编写一个脚本来批量处理它们 我可以使用 FFMpegX 进行 Real Media gt AVI 转换 但是当我尝试使用 ffmpeg 复制转换时 它总是会出现如下错误 avi 0x10084fa
  • 用户状态(秒差距)

    我正在使用秒差距解析一个表达式 并且我想使用秒差距中的用户状态来跟踪这些表达式中的变量 不幸的是我真的不知道该怎么做 给出以下代码 import Data Set as Set inp x y z data Var V String var
  • django 在我的机器上非常慢

    我全新安装了 django 1 0 并提供了一个简单的页面 需要 5 秒才能加载 在我同事的计算机上几乎不需要时间 我使用启动服务器 python manage py testserver 我可以看到每个 GET 请求 PNG 和样式表 大
  • NodeJS 获取承诺回调挂起

    我有这个代码 fetch url then response gt const json response json console log simplest possible fetch json json where 在控制台中我得到
  • Visual Studio 中用于在 Windows 文件资源管理器中打开解决方案的快捷方式?

    Visual Studio 当前使用2013 中是否有键盘快捷键可以在Windows文件资源管理器中打开解决方案 或项目 目前 我通常必须打开解决方案资源管理器 右键单击我的解决方案或项目 然后向下滚动到 在文件资源管理器中打开文件夹 但这
  • 如何使用 printf 自定义自定义类型的输出?

    我已经阅读了很多内容专家 F 并正在致力于构建一个实际的应用程序 在调试时 我已经习惯了传递这样的 fsi 命令 以使 repl 窗口中的内容清晰可见 fsi AddPrinter fun x myType gt myType ToStri
  • 为什么叫彩虹桌呢?

    有人知道为什么叫彩虹桌吗 刚刚记得我们已经了解到有一种称为 字典攻击 的攻击 为什么不叫字典呢 因为它包含了整个可能性的 范围 字典攻击是一种尝试可能性的暴力技术 像这样 python伪代码 mypassworddict dict for
  • 如何在oracle中的字母数字列中使用order by

    在我的表的一列中 我有一个如下所示的值 Y 1 Y 2 Y 3 Y 4 Y 5 Y 6 Y 7 Y 8 Y 9 Y 10 Y 11 Y 12 Y 13 Y 14 当我按此列排序时 如果该行的值高达 Y 9 则它工作正常 否则我的结果是错误的
  • 使用objectid解析ios wherekey

    In my Message Parse 中的表有一个名为对话的字段 它是一个pointer to a Conversation 我的数据库中的另一个表 查询一个Message 我可不可以做 PFQuery messageQuery PFQu
  • MVC 6 中的捆绑和缩小

    看起来捆绑和缩小不再内置于 MVC 6 中 因为不再有App Start and Bundle Config 最终版本发布后会出现这种情况吗 我猜应该使用 Grunt 因为它似乎已融入 Visual Studio 2015 中 UPDATE
  • UIWebView 和 NSURLConnection 共享 cookie 存储吗?

    我正在构建一个使用 Google App Engine 作为后端的 iOS 应用程序 Google 提供了一个存储身份验证 cookie 的 HTML 登录站点 如果我在 UIWebView 中访问该站点并且用户登录 那么这些 cookie
  • XNA 4:导入 FBX 问题

    我在从 FBX 文件导入 3D 模型时遇到问题 源模型包含 575 个对象 1 个相机 如下所示 http habreffect ru files 23d 542fa7f67 source model png http habreffect