我正在尝试使用顶点数组来绘制一个相当大的网格,其中包含大量顶点。纹理已经从这些中确定,并且很容易在立即模式下沿着以下线绘制:
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();
然而,为了可读性、速度和其他方面,我想使用顶点数组(以期转向 VBO)。有没有办法绕过将单个顶点多次放入数组中?
据我目前了解,有必要指定网格的每个顶点,因为它出现在网格的面上,因为每个顶点都标识多个纹理坐标(纹理是从真实世界的图像中捕获的)对象网格近似),即我的顶点/ tex 坐标数组读起来就像我在立即模式下填充它一样。
有没有办法使用顶点数组,同时指定纹理坐标,而不使用冗余(我的意思是重复)顶点?