【问题标题】:How to convert .obj file to openGL?如何将 .obj 文件转换为 openGL?
【发布时间】:2014-04-09 09:50:34
【问题描述】:

我在将 .obj 文件转换为 openGL 时遇到了困难。我找到了我的模型,在这里我附上了 main.cpp 文件供您参考。我不确定如何运行这些文件。 当我在 openGL 中调用所有这些文件时应该运行哪个文件。 最初,当我在 Visual Studio 中打开 OpenGL 时,我调用了 main.cpp 文件并运行该文件。但它显示了许多错误。错误说找不到 PDB 文件。那是什么?

【问题讨论】:

  • 你需要自己解析它们,有几个教程可用(这里还有几个问题(比如this one关于它的具体问题)

标签: opengl


【解决方案1】:

我只是抛出我的答案来澄清导致这样一个问题的误解:

如何将.obj文件(人头)转成openGL?

答案是:你不知道。

OpenGL 是从程序调用的绘图 API。它有一个程序来调用绘制点、线和三角形。 OpenGL 不是一种文件格式

.OBJ 实际上并不是一个文件格式的很好定义的名称(实际上有数百种以 .OBJ 结尾的文件格式)。但我认为你的意思是 Wavefront OBJ。无论如何,文件包含数据。虽然程序也是数据,但 Wavefront OBJ 文件不是程序,无法执行。因此,即使尝试制定 OBJ 到 OpenGL 的转换也是没有意义的。

您需要编写一个程序,读取 Wavefront OBJ 文件中的数据,并使用该数据对 OpenGL 进行正确调用。您已经获得的其他答案链接到此类教程。

【讨论】:

    【解决方案2】:

    这是 obj 的小型解析器 https://github.com/syoyo/tinyobjloader

    你需要:
    1.解析数据
    2. 使用数据创建缓冲区对象
    3. 绘制缓冲对象

    【讨论】:

      【解决方案3】:
      【解决方案4】:

      您需要解析 .obj 文件,然后(取决于 OpenGL 版本)将解析后的数据加载到 array/element_array 缓冲区中,然后使用 glDraw[Elements/Arrays] 在 glsl 中使用或使用固定函数绘制所有顶点。

      但我认为这里真正的答案在于更多的学习,而不是当你几乎无法小狗划桨时跳入深水中。您应该做更多的基本练习并了解 API。

      哦,还有一个 .pdb 文件用于在 Visual Studio 中进行调试;我认为它代表程序数据库。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-09-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-04-23
        相关资源
        最近更新 更多