我在 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/