我正在写一个游戏引擎,我想知道我应该使用什么3D模型格式/加载/导出?Obj看似普遍且容易,但它似乎也不可靠,因为那里的大多数模型都包含错误,并且它不存储任何接近其他格式的地方.
似乎有专门用于MD2/3/5等游戏的格式,但我不确定,如果我建模我会使用wings3d,而且我不知道除了纯粹加载我需要的内容以及格式ID必须支持的其他细节实现,比如我需要实现IK?我可以使用脚本化的每片动画而不是反向运动学和骨骼绑定吗?
Collada是一种基于XML的开放式格式,适用于Khronos集团拥有的3d模型(OpenGL标准组织)
来自Collada.org FAQ:
COLLADA 1.4.x功能集包括:
网格几何
变换层次结构(旋转,平移,剪切,缩放,矩阵)
效果
着色器(Cg,GLSL,GLES)
物料
纹理
灯火
相机
剥皮
动画
物理学(刚体,约束,布娃娃,碰撞,卷)
实例化
技术
Multirepresentations
资产
用户数据
在担心您想要支持的3D格式之前,我认为您应该关注您计划在引擎中实现的功能.将这些作为要求写下来,并从列表中选择支持最多功能的格式......因为您要展示您的引擎(我假设您计划将引擎公开提供).如果您的引擎具有特定功能(对于游戏引擎来说总是一件好事),您甚至可能想要推出自己的格式.
在那之后,支持尽可能多的流行格式(.X,.3DS,.OBJ,.B3D)......您的引擎越容易访问,人们就越想使用它!
Collada是一种很好的通用格式,但是像Nils提到的那样,它不是最终部署的理想格式.