加载用于OpenGL ES渲染的3D对象和纹理

时间:2012-08-29 06:42:54

标签: android ios opengl-es 3d .obj

我有一些3D对象存储在3D编辑器应用程序特定(Blender / Solid / 3DS)文件格式中,导出到OBJ + MTL文件,PNG / JPG文件中有可选纹理。

我想在手机上的OpenGL ES应用程序中加载这些对象(今天适用于Android,在不久的将来也适用于iOS)。而且我不想编写自己的OBJ + MTL(或任何其他3D格式)解析器。因此,我想使用一些3D引擎来支持加载3D模型(从OBJ + MTL或从我的3D编辑器中导出到3D引擎特定的头/资源文件)来实现这一目标。

我对Min3D框架有一些经验,但它在加载文件时有点错误(也不会加载材质颜色,只有纹理图像),不支持OpenGL ES 2.0,显然不能在iOS上运行

我见过C头文件(http://iphonedevelopment.blogspot.com/2009/06/using-3d-models-from-blender-in-opengl.html)的流行的blender导出脚本,但我相信它不支持素材颜色导出(不使用纹理图像时)。

最近我开始关注Unity 3D,但它似乎比我需要的要多得多。我需要支付我不会使用的功能(动画,游戏特定功能等),而且我还需要将它与我的移动应用程序的其他部分集成。

您会推荐什么3D引擎/框架?

总结要求:

  • 能否从OBJ + MTL(+ PNG / JPG)加载3D模型+纹理或从3D编辑器应用程序导出(使用插件?),支持无纹理的彩色材料
  • 支持Android(非常欢迎额外的iOS支持)
  • 支持OpenGL ES 2.0
  • 免费/便宜
  • 与本机代码轻松集成(Java首选Android)

1 个答案:

答案 0 :(得分:2)

OpenSceneGraph支持大量的模型类型。我还没有尝试使用它构建任何移动应用程序,但是在论坛/邮件列表上有很多关于iOS和Android的聊天和一些教程。开源。

http://www.openscenegraph.com

http://forum.openscenegraph.org/viewtopic.php?t=10076

编辑:作为附注,如果您只想查看模型,并且不介意将它们存储在云中,您只需将它们上传到SketchFab:

http://sketchfab.com/faq

使用Firefox移动版查看。只要iOS浏览器支持完整的webGL,iOS就会支持。

他们在幕后使用osg来阅读模型,我认为OSGjs是前端的。