我一直在搅拌器里面塑造一些物体,就像一个灯泡。 我完成了灯泡,在出口的时候我有一个问题。
我想以波前格式(.obj)输出灯泡,但灯泡是由不同的网格形成的,我的意思是,它不是以一个网格连接的。 如果我导出将作为不同的网格在.obj内的obj
我的最后一个问题是,为了在OpenGL C ++中导入它,最好把所有的网格物体(顶点)连接起来,还是把它们作为分离的对象? 如果他们没有join,翻译…resize等等,不会有任何麻烦。
例如,一个立方体,它看起来像一个对象,并包含12个三角形。 我会称之为网格。
我想指出,这个定义并不完全正确,但是我将会使用它,所以最好知道我的意思。
例如:
请注意,只有一个对象只能作为一个整体来select。 这是一个搅拌器对象。
当您以.obj文件格式导出时,它会导出整个搅拌器对象,包括所有网格。
.obj文件具有简单的语句。 在他们最简单的forms(顶点和面,没有法线),他们看起来像这样:
v 1.0 5.0 1.0 v -1.0 2.4673 -12.06
要么
f 1 5 3 f 5 1 5
v
代表描述顶点的顶点。
f
代表face
它描述了一个三角形,例如:
f 1 5 3
意思是:有三角形由顶点1,顶点5和顶点3组成
顺序与它们在文件中声明的顺序相同
v 1.0 -1.0 -1.0 # 1st vertex v 1.0 -1.0 1.0 # 2nd vertex v -1.0 -1.0 1.0 # 3rd vertex v -1.0 -1.0 -1.0 # hmm...
要实现的重要一点是,我称之为“网格”的概念在OpenGL中不存在,在.obj文件中也不存在。 这是一个特殊的概念,以上是Blender的事情。
因此,将这些数据加载到合适的parsing器中应该会得出正确的结果,这仅仅是因为OpenGL并不要求每个顶点数组只有一个网格,因为这样做会是令人难以置信的速度减less和废话时间开发商。
因此,可以将以前定义的混合器对象导出到.obj文件。 一旦这个文件被加载到你的程序并阅读,如果正确完成,应该产生正是你期望的。 是多个网格。
希望这有助于,如果不是,我会试着进一步解释。