我想使用顶点数组来绘制一个相当大的网格,其中包含大量的顶点。纹理已经从这些决定,这是很容易在即时模式下绘制的线沿线:在OpenGL中结合顶点数组和纹理
glBegin(GL_TRIANGLES) {
for (int faceIdx = 0; faceIdx < nFaces; ++faceIdx)
glVertex3fv(&vertexArray[vIdx]);
glTexCoord2fv(&texCoord[vIdx++]);
glVertex3fv(&vertexArray[vIdx]);
glTexCoord2fv(&texCoord[vIdx++]);
glVertex3fv(&vertexArray[vIdx]);
glTexCoord2fv(&texCoord[vIdx++]);
}
}
glEnd();
但是为了可读性,速度和我想用顶点数组(以期剩下的移动到维也纳组织)。有没有办法多次将单个顶点放入数组中?
据我了解,目前有必要指定网格的每个顶点的次数,因为它出现在网格的一个面上,因为每个顶点都标识为多个纹理坐标(纹理是从实时图像中捕获的,网格近似的对象的世界图像),即我的顶点/ tex坐标数组读取就好像我在即时模式下填充它。
是否有任何方式使用顶点数组,同时指定纹理坐标,而不使用冗余(我指的是重复的)顶点?
几天前我问了一个(远程)类似的问题:http://stackoverflow.com/questions/7232915/fewer-colors-than-vertices –
我在上面的代码中看不到您的问题。顶点位置和纹理坐标可以共享索引,但是您正在使用每个顶点前进索引。顺便说一句,我认为你得到的调用顺序搞砸了:在所有其他属性设置完成后调用glVertex。在glBegin中... glEnd块最后一个OpenGL命令应该是glVertex – datenwolf