如何导出3D“截图”XNA 3.1中的模型

本文关键字:模型 XNA 何导出 3D 截图 | 更新日期: 2023-09-27 18:14:28

我的程序使用XNA 3.1生成静态3D场景。场景是使用输入参数创建的,每次都是不同的。

我需要将最终场景导出为各种3D对象,以便我们的合作伙伴可以在他们的系统上本地查看它。他们是开放的任何格式,只要有一个足够小的浏览器(不是全套的3dMax或Maya!)他们希望能够放大、缩小和旋转场景。

在XNA中有像SaveMesh()一样简单的东西吗?我应该使用什么文件格式(OBJ?)FBX吗?X ?)

VS2008, c#, XNA 3.1

如何导出3D“截图”XNA 3.1中的模型

据我所知,XNA在处理游戏中的模型方面非常有限。在Content Pipeline导入模型之后,这就是您所得到的。你可以翻译,缩放和旋转模型到你的核心内容,但这就是全部。

我认为我们需要更多关于这个项目目标的细节。你是否有任何理由不能编译程序并将其提供给他们,使用游戏本身作为你的场景的观察者?如果导出场景到模型文件是不必要的(即,如果这纯粹是为了检查),那么这似乎是最简单的解决方案。你甚至可以保存你想要的特定场景的状态,这样你的合作伙伴就不必重新输入适当的输入值。

然而,如果你试图编译模型网格的不同结构,并将其导出为3D模型文件格式,XNA是不是你的选择工具。这是为了制作游戏,而不是3D建模。

如果你想在游戏中操纵模型,你可以看看这个关于自定义模型结构的教程来覆盖XNA的模型类,但是,我警告你——我之前已经读过了,没有办法导出。老实说,我不认为XNA设计师曾经考虑过以模型数据格式导出场景(再次强调:游戏框架,而不是建模框架)。

最后,如果你的结构足够简单,可以考虑使用顶点声明将模型程序化地拼接在一起。我要警告你——这并不有趣,特别是如果你没有在图形设备上直接使用原语的经验。如果您设法使用顶点和索引缓冲区创建结构,您可能能够想出一种方法来序列化并将其保存为。x或。fbx文件格式。在这一点上,你基本上是在写自己的3D建模程序。这将非常困难。