推荐的文件格式和图形库,用于将3D模型导入OpenGL/C++项目?

Sim*_*one 28 c++ opengl 3d graphics file-format

如果你想:

  • 在3D编辑器中建模对象,例如Blender,Maya等
  • 将模型导出为数据/文件格式
  • 使用OpenGL和C/C++将模型导入项目

然后:

  • 您建议导出哪种文件格式,即简单性,可移植性和兼容性(即普通/流行)?
  • 您建议使用哪些图形库将模型导入OpenGL C/C++项目(即最好是开源)?
  • 另外,是否存在也捕获动画的数据/文件格式,即"动画模型"格式,使得动画可以在3D编辑器中建模并且以某种方式在代码内部调用(例如,动画序列中的帧的可访问性或其他一些用于保存/加载与随时间变化相关的详细信息的范例?

一般来说,我正在寻求简单性作为优先事项,即帮助开始结合我在艺术和计算机科学中的背景.我是麻省大学的计算机科学专业,同时,在我的大学选修平面设计课程,以及在夏季/冬季课程期间在波士顿艺术学院上课,这是一种"伪"的双学位艺术.换句话说,我不是一个完整的新手,但与此同时我并不是真的想要那些因疯狂的高级配置而过度使用的选项,这使得开始使用基本的示范项目变得非常困难; 即作为理解如何弥合这两个世界之间差距的第一步,例如创建一个具有用户可以与之交互的3D角色的节目.

Mar*_*cia 14

COLLADA(我最后说的是"啊")和 Assimp(就是那样).

那么,为什么COLLADA呢?简单:

  • COLLADA是由Khronos(索尼专门)制作的开放标准.开放标准格式的美妙之处在于它是一个标准!您可以放心,符合标准的产品的任何输出也可以由另一个符合标准的产品正确读取.不幸的是,一些3D建模产品在他们的COLLADA标准一致性测量中并不是那么特别.但仍然可以放心:Blender,Maya,3ds Max以及3D建模中的所有其他大牌都对该格式有很好的支持.
  • COLLADA使用XML.如果您计划创建自己的读者或作者,这会使您更加简单.
  • 附加:我认为COLLADA是唯一一种与特定公司无关的格式.你知道,这对我们来说是件好事.
  • 附加2:众所周知,COLLADA解析起来很慢.确实如此.但想一想:所有其他非二进制格式(如fbx)也有同样的问题.为满足您的需求,COLLADA应该足够了.
  • 附加3: COLLADA支持动画!

对于进口商库,我强烈推荐Assimp.为什么?

  • Assimp支持您可以想象的任何流行格式.它具有适用于所有格式的统一界面,因此切换到另一种格式不那么痛苦.
  • Assimp是可扩展的.因此,您可以导入专有格式,但仍然不能修改代码.
  • 附加4: Assimp是开源的!我们支持开源软件!


Mic*_* IV 5

首先,在这里 你可以阅读建议的模型加载lbs.Lib Assimp真的很好,并支持许多格式.对于首选格式.Collada - 我不建议,因为这是基于XML(文本)的格式,解析速度慢.Obj格式也很普遍,但是遇到了和Collada一样的问题.如果你想编写自己的解析器,因为它的结构非常简单,它仍然很好.但是我建议使用二进制的3D.它虽然不支持动画今天最流行的支持静态网格和动画的格式是FBX.你可以免费下载来自Autodesk的FBX SDK并将其连接到您的引擎.我选择FBX的原因是因为SDK和格式都非常强大.例如,在FBX中,您不仅可以嵌入几何和动画,还可以嵌入场景对象作为灯光,相机等.Autodesk的文档也非常好.希望能帮助到你.

  • FBX推荐的+1.我在工作中使用它,其他游戏工作室也使用它.SDK非常好,支持很多东西. (3认同)