1

例如,给定两个具有相似顶点的立方体,例如,

float pVerts[] = 
{
    0.0, 0.0, 0.0,
    1.0, 0.0, 0.0,
    ...
};
glGenBuffer(1, &mVertexBuffer);
glBindBuffer(...);
glBufferData(...);

我可以缓存这组顶点以供以后使用吗?或者,换句话说,如果我想要第二个立方体(具有完全相同的顶点数据),我是否需要生成另一个顶点缓冲区?

对于着色器,同样适用吗?我可以使用相同的程序来绘制这些立方体吗?

4

1 回答 1

4

您可以使用相同的顶点缓冲区来绘制任意数量的对象(着色器与否)。如果要绘制第二个对象,只需更改模型矩阵并重新绘制即可。

着色器也是如此,您可以使用相同的着色器绘制任意数量的对象。只需绑定着色器,然后根据需要触发尽可能多的绘制调用。

于 2012-10-29T19:09:44.770 回答