我在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,
...
Run Code Online (Sandbox Code Playgroud)
我是否只是遍历每个数组索引,在每个点设置一个顶点?如:
glVertex3f(50, 0.1, 50);
glVertex3f(-50, 0.1, 50);
glVertex3f(-50, 0.1, -50);
glVertex3f(50, 0.1, -50);
Run Code Online (Sandbox Code Playgroud)
然后我使用3DWin将其转换为scene.cpp
这样做没有意义.它只会使您的可执行文件膨胀,如果您对模型进行任何更改,则必须重新编译您的程序.
只需直接阅读OBJ文件即可.为它编写解析器相当容易http://www.royriggs.com/obj.html
我很困惑如何将这些数据导入我的代码以渲染房子.
模型由一个索引的顶点列表和一个面列表组成,其中每个面都是顶点列表中的索引元组.您可以相当懒惰,将顶点列表加载到顶点数组中,然后将索引列表提供给glDrawElements,然后根据面部列表绘制顶点.