我正在学习 OpenGL 课程,我们可以选择使用 3D 建模应用程序(例如 Maya 或 Blender)创建模型以在我们的作业中使用。
我不期待手动输入坐标,所以我很好奇我应该寻找哪些资源来编写 OpenGL 代码和导入模型。 (纹理稍后推出)。我也担心我的进口规模,但也许现在担心这个是愚蠢的。
感谢您提供任何资源建议。 OpenGL 有太多东西,当我在谷歌上搜索我需要的东西时,有时我会不知所措。
Blender 可以以 .obj 格式保存文件,简单的 google 搜索就会找到几个将其加载到 OpenGL 中的库。 这里就是其中之一。
可用于导出网格的最简单格式之一是 Wavefront OBJ(请在维基百科上搜索它,因为我目前只允许发布 one 链接)。它基本上是一个文本文件,应该不会太难解析。
或者实际上,如果您被允许使用 GLUT,您可以尝试使用它的加载器(如 OpenGL FAQ 24.040 中的回答)
暂时不用担心对象的比例,以后您可以随时缩放对象。只需确保使用本地坐标而不是全局坐标导出它(例如 [0,0,0] 应该是对象的中心,而不是您正在建模的世界)。
我建议暂时不要担心物体的大小。
现在,您要做的就是确定 3D 文件的格式。从 Maya 或 Blender 等 3D 程序导出时有很多选项。
我建议尝试一个简单的 COLLADA 导入器。规格信息在这里: http://www.khronos.org/files/collada_spec_1_4.pdf
我最近使用的另一个规范也可能适合这个,那就是 OBJ。
OBJ 的规范位于此处: http://local.wasp.uwa.edu.au/~pbourke/dataformats/obj/
此外,还有几个免费的 3D OBJ 文件示例位于此处。这将使您能够查看文件的格式并真正了解它们是多么容易解析。
请记住,OBJ 不支持动画,并且渲染大场景效率相当低。
我想说,如果你想自己解析 Obj 格式,它在可读性和功能性方面是一个很好的平衡。
http://en.wikipedia.org/wiki/Obj
最简单的方法是找到一个库来为您完成此操作,但可能性仅限于您选择的语言。
您不应该担心规模。 OpenGL 的矩阵可以轻松地重新缩放顶点。