c / c ++应用程序在运行时从建模软件导入3d模型

时间:2012-01-14 09:04:43

标签: opengl graphics 3d augmented-reality .obj

我是一名openGL初学者。我需要构建一个在增强现实中显示3d模型的c / c ++应用程序。对于AR我正在使用ARToolkit。在应用程序中,它必须导入使用建模软件(如blender,sketchup等)构建的3d模型。模型可能是.obj,.3ds,.collada(如果有的话,建议我使用其他任何文件?)。

ARToolkit主要使用opengl渲染(AFAIK),将3d对象渲染为摄像头。

  • 是否可以动态加载运行时的3d模型/对象。存在哪些库(如果有的话)?

我想与模型进行键盘交互,我也可以移动模型的特定部分(例如:汽车的轮子)

这里的模型可能就像一个简单的房子到人物(男人/女人)一样简单。请告诉我我需要的资源以及我错过的任何技术细节。我希望我的代码可以使用opengl 1.4

2 个答案:

答案 0 :(得分:0)

您需要一些导入机制才能将各种格式的网格导入到运行时格式中。 OpenGL(或DirectX)没有指定网格在磁盘上的外观,并且磁盘上存储了各种不需要渲染的东西。基本上,您需要一种方法来从文件中获取顶点位置和属性,以及可选的索引列表(如果使用索引三角形列表进行渲染,您可能应该这样做。)

最容易确定的是.obj,这是一种ASCII格式,您可以轻松解析,并且许多应用程序都支持这种格式。否则,请查看Open Asset Import等库。

但是,我认为你正在寻找一个基于OpenGL的渲染系统,它为你做渲染以及鼠标交互。您可以使用许多现有引擎,例如Ogre3DIrrLicht。 IrrLicht易于使用,并提供您提到的support for a bunch of the formats。您必须坚持使用ARToolkit进行渲染,然后您可以轻松地将格式从引擎转换为ARToolkit所期望的任何格式。

答案 1 :(得分:0)

我非常推荐你试试http://assimp.sourceforge.net/lib_html/ 它支持许多开放/非常开放的数据格式,骨架动画,仿射传输动画等。