游戏的3D文件格式

时间:2009-07-23 23:08:10

标签: 3d file-format

我开始使用XNABlender,并且正在努力寻找有关游戏开发中使用的各种3D文件格式的高质量,最新信息。

很明显,许多游戏都采用多种自定义3D文件格式开发,但我有兴趣使用更常用的格式选择一个好的解决方案。

最流行的格式是什么?区别于什么?

注意理想情况下,它们应该支持动画,但我也会对可能用于构建地图或静态对象的其他格式感兴趣。

9 个答案:

答案 0 :(得分:10)

在XNA中,尝试自己做任何事情(特别是加载数据格式)的惩罚要远远高于现成的支持不完善的代价,至少这是文档的样子,以及我的内容从那些为了支持他所需要的东西(运行时几何生成)以及我相信他知道自己在做什么的人那里获得了很大的帮助。所以我猜.X和.FBX几乎就是它。它们都支持骨骼动画,我认为也是顶点变形。我不确定Blender能够将哪些功能输出到它们中,但如果你愿意,我可以调查它。

Blender 2.5最终将获得良好的Collada支持(当前的一个没有电枢并且在多种方式中被打破),并且Autodesk为Collada提供了一个很好的工具< - > FBX转换。

如果你环顾一下爱好开发社区,你会发现Id软件数据格式非常受欢迎。一方面是MD2和MD3顶点变形角色动画格式,MD5骨架动画格式,其需求明显包含在上面,另一方面是描述游戏关卡的BSP文件格式。

对于BSP来说,有一件事就是有一个好的编辑器(GTKRadiant和衍生品)。这是一种有效的格式,可以剔除隐藏的几何体。但是,在XNA中构建自定义几何体的运行时成本很高,并且这些格式的限制在整个游戏级别的64k顶点和64k多边形中非常适中,这是你现在可以直接转储到图形卡上的东西而且没有性能下降将是显而易见的。因此,直接支持它不会带来任何好处。

我怀疑有任何强大的,现代的,可用的格式和工具可用于剔除优化级别设计,其性能优势将转化为XNA。

您可能想要查看的几个链接,如果您还没有:

3D World Studio content pipeline

Quake port

所有未维护和过时,不知道如何优化。

答案 1 :(得分:6)

如果你正在使用XNA,那么最好的选择可能就是FBX。我说这个的主要原因是它是内容创建管道中的单个非XNA特定的format supported natively by XNA

答案 2 :(得分:6)

已经提到的COLLADA和FBX是唯一在游戏行业中获得重大采用的标准格式。很少有游戏会直接加载它们 - 它们通常用作从DCC应用程序导出的中间格式,然后进一步处理成更优化的运行时格式,通常是自定义和引擎特定的。

业余爱好者开发人员经常使用热门游戏的文件格式作为起点。 Quake 3模型和地图格式很受欢迎。由于D3DX框架中有许多出口商和加载支持,微软的.X格式也因业余爱好者项目而广受欢迎。

答案 3 :(得分:5)

你可能想看看COLLADA这是3D游戏开发中广泛使用的标准:

http://en.wikipedia.org/wiki/COLLADA

答案 4 :(得分:3)

我选择了MS3D格式,因为它的规格很简单,有意义,有动画和装配(关节),并且有记录。

另请参阅我之前的问题,与此问题非常相似,以及我写给它的答案(奇怪的是,它似乎位于页面的底部):

[SOLVED] Recommended 3D model type for in-game character model, loaded manually?

答案 5 :(得分:2)

值得glTF看看。

还有一个glTF 2.0版本正在添加基于物理的渲染支持。关于Khronos网站的草案。

Assimp对此有“部分”支持。不确定缺少什么。

github上还有一堆用于不同语言(C ++,WebGL / JS,Rust,Go)的加载器。

还有一个COLLADA到gltf转换器。

它使用JSON文件作为一种清单,然后将数据加载到其他文件中,例如.bin用于二进制文件,各种图像和用于着色器的glsl。但是有一个binary extension

当然,因为它是新的(并且仍处于开发阶段)支持不会那么大。上次我看起来COLLADA也很受欢迎。

还有Declarative 3D

请参阅this paper that covers both

这两种格式都有一些网络焦点,但对游戏来说也应该没问题。

答案 6 :(得分:0)

不是专家(远离它,只是玩弄)。

我认为3d studio max格式(.3ds)以及renderman RIB文件都很常用。 我也喜欢AC3D文件格式(它是纯文本)。

答案 7 :(得分:0)

多年来,DirectX file format(。x扩展名)非常受欢迎,Blender包含一个内置导出器。

答案 8 :(得分:0)

PMD文件。它们用于MMD动画等等! 只需在Deviantart.com上搜索" MMD模型"

等内容

PMD和PMX AND OBJ