v,vn和vt的数量在.obj模型中是否相同?我问,因为我只能用每绘图一个索引,所以我有使用VBO关于.obj 3d模型格式和VBO
struct VertexCoord
{
float x,y,z,w;
float nx,ny,nz;
float u,v;
};
,所以我可以通过跨越偏移使用一个索引所有的缓冲区。
v,vn和vt的数量在.obj模型中是否相同?我问,因为我只能用每绘图一个索引,所以我有使用VBO关于.obj 3d模型格式和VBO
struct VertexCoord
{
float x,y,z,w;
float nx,ny,nz;
float u,v;
};
,所以我可以通过跨越偏移使用一个索引所有的缓冲区。
不,v,vt,vn的数量可以不同。
通知,有“V”的列表,然后选择“VT”,“VN”等列表...
在年底有脸的列表:1/2/3, 4/5/4等 表面索引顶点pos,纹理坐标,法线,但由于这些索引彼此不相关,这也意味着vers的数量可能不同。
只有当脸部列表看起来像“1/1/1”,“4/4/4”时,我们才会有相同的属性。
这是一个有点棘手解释,但我希望你能:)
所以一般不能直接OBJ数据映射到您的VBO结构的地步。 在OpenGL中,您当然可以使用索引几何,但这意味着每个特定顶点的所有属性都有一个索引。你不能分别索引位置,纹理坐标。你必须以某种方式重新排列数据。
这里有一些链接:
http://en.wikibooks.org/wiki/OpenGL_Programming/Modern_OpenGL_Tutorial_Load_OBJ
http://xiangchen.wordpress.com/2010/05/04/loading-a-obj-file-in-opengl/
为什么要回事?您应该自己从.obj加载的数据构建一个VBO。 – 2013-02-19 11:12:56