可能重复:
VBO - 没有索引的索引
这是我的问题,我想渲染一个巨大的模型(一百万张脸),我有一个脸的索引缓冲区。
我已经为这个模型自己生成了一个纹理,纹理的每个区域都必须应用于每个三角形。我无法正确展开模型,因为它会花费太多时间,所以一个顶点可以有多个纹理坐标。
没有 VBO 我的渲染器是这样的:
glBegin(GL_TRIANGLES);
for (unsigned int i = 0; i < g_pModel->GetNbTriangle(); i++)
{
glTexCoord2f(TextCoord[6*i+0],TextCoord[6*i+1]);
glNormal3f(Normal[3*Triangle[i].x],Normal[3*Triangle[i].x+1],Normal[3*Triangle[i].x+2]);
glVertex3f(Vertex[Triangle[i].x].x,Vertex[Triangle[i].x].y,Vertex[Triangle[i].x].z);
glTexCoord2f(TextCoord[6*i+2],TextCoord[6*i+3]);
glNormal3f(Normal[3*Triangle[i].y],Normal[3*Triangle[i].y+1],Normal[3*Triangle[i].y+2]);
glVertex3f(Vertex[Triangle[i].y].x,Vertex[Triangle[i].y].y,Vertex[Triangle[i].y].z);
glTexCoord2f(TextCoord[6*i+4],TextCoord[6*i+5]);
glNormal3f(Normal[3*Triangle[i].z],Normal[3*Triangle[i].z+1],Normal[3*Triangle[i].z+2]);
glVertex3f(Vertex[Triangle[i].z].x,Vertex[Triangle[i].z].y,Vertex[Triangle[i].z].z);
}
glEnd();
使用我的 VBO,我不能使用 glTexCoordPointer,因为它需要与顶点一样多的纹理坐标,这不是我的情况。
有没有办法用 VBO 和我的着色器(我正在使用 GLSL)来做到这一点?