c++ - 将转换后的 .obj 文件更改为 OpenGL 图元

标签 c++ opengl .obj

我在 Blender 中创建了一个房子并将其导出为 .obj 文件。然后我使用 3DWin 将其转换为 scene.cpp。不过,我对如何将这些数据导入我的代码以渲染房屋感到困惑。

我现在有一个网格数组,我的坐标如下所示

static float mesh01_coords[] = {
50, 0.1, 50,
-50, 0.1, 50,
-50, 0.1, -50,
50, 0.1, -50,
...

我是否只是循环遍历每个数组索引并在每个点设置一个顶点? 比如:

glVertex3f(50, 0.1, 50);
glVertex3f(-50, 0.1, 50);
glVertex3f(-50, 0.1, -50);
glVertex3f(50, 0.1, -50);

最佳答案

I then used 3DWin to convert that into a scene.cpp

这样做没有意义。它只会使您的可执行文件膨胀,如果您对模型进行任何更改,您将不得不重新编译您的程序。

直接读取OBJ文件即可。为其编写解析器相当容易 http://www.royriggs.com/obj.html

Im confused as to how I can import this data into my code to render the house though.

您的模型由一个带索引的顶点列表和一个面列表组成,其中每个面都是顶点列表中索引的元组。您可以比较懒惰,将顶点列表加载到顶点数组中,然后将索引列表提供给 glDrawElements,然后它将根据面列表绘制顶点。

关于c++ - 将转换后的 .obj 文件更改为 OpenGL 图元,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8396935/

相关文章:

在行和列中输出数字的 C++ 代码

c++ - 同时将多个十六进制数附加到 QByteArray

c++ - GCC 和 Clang 不同意 lambda 的 constexpr-ness?

c++ - 插入优先级队列时出现段错误

c++ - 我怎样才能在 OpenGL 片段着色器中制作这个球形渐变?

c++ - OpenGL 实现多 channel

c++ - OpenGL 应用程序在其他计算机上崩溃

javascript - OBJ 到 Json 到浏览器不工作

java - 帮助我的 Android obj 加载器上的 UV

c++ - 将简单网格加载到 OpenGL 时遇到问题