我正在尝试在openGL中开发3D游戏,我需要创建许多3D对象..我是openGL的初学者。我尝试过许多3D软件,如Blender,MODO,Unity 3D和Cheetah。
我可以轻松地使用这些对象创建我的对象并导出为Wavefront .OBJ,并使用perl脚本将其转换为头文件。这个头文件被添加到我的openGL项目..
可以看到3D物体,但它并不完美。我使用的脚本是使用TRIANGLES将.OBJ转换为.h。然后用三角形看到对象。它不完整..当我使用TRIANGLE STRIP,FAN时没办法..?顶点问题..
我的脚本有问题还是我走错了路?或者还有其他最好的方法可以直接将3D对象导入openGL .. ??
以下链接是您可以获得的3D对象打开GL的最佳链接..我从这些脚本中获取了脚本..
http://www.heikobehrens.net/2009/08/27/obj2opengl/
请帮助..
答案 0 :(得分:1)
你不想要这样做。在OpenGL中,直接绘图模式(使用TRIANGLE和朋友)非常慢。
相反,你应该选择一个不错的格式并为它编写一个加载器(或使用在网络上找到的一个)。好格式是3ds,obj如果gzipped,collada。
这是从Milkshape文件加载的example tutorial。
以编程方式加载对象后,可以使用Vertex Arrays,甚至更好的VBO来显示它们。这更快。
谷歌为你最喜欢的格式mesh loader,或自己写一个。
答案 1 :(得分:1)
我为AC3D文件编写了一个阅读器/渲染器,可以在iPhone(OpenGL ES)上正常工作
随意查看here。
Jeff Lamarche在google code还有一个obj加载器。
AC3D可以减少三角形数量非常好,作为替代方案,我将QVis移植到mac。我的读者/渲染器也尝试构建三条带。
关于VBO。在iPhone中使用它时,我没有看到任何获得的性能。 I'm not the only one.