我正在编写一个游戏引擎,我想知道我应该使用/加载/导出什么 3D 模型格式?Obj 看起来通用且简单,但它似乎也不可靠,因为大多数模型都包含错误,而且它的存储量不如其他格式。

似乎有专门针对 MD2/3/5 等游戏的格式,但我不确定,如果我建模,我会使用wings3d,并且除了纯粹加载我需要的内容和格式 Id 的支持之外,我不知道还有哪些其他细节实施,比如我需要实施 IK 吗?我可以使用脚本化的每件动画而不是反向运动学和骨骼索具吗?

有帮助吗?

解决方案

科拉达 是 Khronos 组织(OpenGL 标准机构)拥有的基于开放 XML 的 3D 模型格式

来自 Collada.org 常见问题解答:

COLLADA 1.4.x 功能集包括:

  • 网格几何形状
  • 变换层次(旋转、平移、剪切、缩放、矩阵)
  • 效果
  • 着色器(Cg、GLSL、GLES)
  • 材料
  • 纹理
  • 相机
  • 剥皮
  • 动画片
  • 物理(刚体、约束、布娃娃、碰撞、体积)
  • 实例化
  • 技巧
  • 多重表示
  • 资产
  • 用户数据

其他提示

担心什么3D格式要支持之前,我想你应该专注于什么功能,你计划在你的引擎来实现。这些写下来,要求,并选择支持列表中的大多数功能......因为你要展示你的发动机(我假设你打算为你的发动机是公开的)的格式。你甚至可能要推出自己的格式,如果您的发动机具有特定功能(它总是有一个游戏引擎是一件好事)。

在此之后,支持尽可能多的流行的格式,你可以(.X,.3DS,OBJ,.B3D)......更接近你的引擎,更多的人会想用它工作!

的Collada是一个很好的和通用的格式,但像尼尔斯提到,它不是最终部署的理想格式。

我用我自己的二进制格式。我试图利用现有的格式,但总会遇到这样的限制。有些可以围绕工作过,其他人在那里搅局者。

的Collada可以是值得期待。我不认为它是好于用3D引擎可以读取的格式。它的优良如同一般的数据交换格式。

http://www.collada.org/mediawiki/index.php/Main_Page

1为的Collada。您可能还需要为真正快速加载自定义本地二进制格式(通常只是顶点/索引缓冲数据的二进制转储,加上材料和骨骼的数据,并在适当的碰撞数据)。

在游戏行业的一个趋势是支持加载像发动机的开发版本COLLADA格式,但也有出口的优化版本的发布工具链。显影剂版本可以动态地更新了网格,以便艺术家保存的变化,自动重新加载文件允许他们的(几乎)实时WYSIWYG他们的模型的视图,但仍然提供完全优化的释放形式。

支持的Collada孔中,然后提供良好的转换器向/从其他格式(这可能是困难的部分)。这会给你最大的灵活性。看一看 C4发动机

Collada的是伟大的,但生活更加对事物的3D应用程序方面。即它是最适合用于从游戏引擎中传输3D数据的应用程序之间,没有加载3D数据。你有没有到Lua的?它广泛应用于游戏,因为它是一种脚本语言,既可笑快(完美的游戏)和非常灵活的(可以用来表示你需要为你的发动机的任何数据)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top