c++ - 解析的一些技巧

标签 c++ opengl sfml windows-vista wavefront

<分区>

我一直在尝试使用几个库将我的 .obj 模型加载/解析到我的 opengl 程序中。

这是其中的一些:

  • nate 知更鸟,GLM

  • heiko 的 obj2opengl(最远的一个)

还有一些其他加载程序无法正常工作。

我的主要问题是未定义的错误。由于我从许多不同的人(原始代码的编辑者)那里尝试了 GLM,所以也许这是我做错了什么。

所以我的问题是:

  • 我应该为 opengl(PC 类型)使用什么 obj 加载器?

  • 如果我自己解析obj文件,那么我应该如何保存顶点?(最快/最有效)也有优缺点的选择更好

我在 Windows 32 位(7 和 vista)上使用 Code Blocks/MinGW。

最佳答案

您可能对(不幸命名)Assimp 感兴趣图书馆。虽然它本身并不是一个(快速)解析器,但您可以使用它来生成一种易于解析的格式,该格式仅包含您正在使用的数据,并且它可以加载多种格式。

如果您想自己解析文件,OBJ 文件格式非常简单,这对您很有帮助。我建议采用同样简单的方法——只需将所有顶点放入顶点缓冲区并创建一个索引缓冲区以供使用。然后使用 Vertex Buffer Objects/Index Buffer Objects 渲染并绘制索引三角形。

关于c++ - 解析的一些技巧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5249671/

相关文章:

c++ - GLSL 语法错误 : "in" parse error

c++ - 这是使用点积求两个 vector 之间角度的正确方法吗? C++ SFML

c++ - 在 GLM 中旋转模型

c++ - 有没有办法在 map 中流式传输?

c++ - IPC 消息队列如何发送成对的 vector

c++ - QGLWidget 拒绝绘制任何东西

OpenGL 透明度做了奇怪的事情

c++ - 无法解决 C2660 和 C2065 错误

c++ - 从持有对象指针的列表中删除

c++ - 我可以将字符串附加到文件的特定行吗?