DubyaDubyaDubyaDot
DubyaDubyaDubyaDot

Reputation: 1274

Do I need multiple vertex buffers for similar objects in openGL?

For example, given two cubes with similar vertices, e.g.,

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

Can I just cache this set of vertices out for later usage? Or, in other words, if I wanted a second cube (with the exact same vertex data), do I need to generate another vertex buffer?

And with shaders, does the same apply? Can I use the same program for drawing these cubes?

Upvotes: 1

Views: 259

Answers (1)

Tim
Tim

Reputation: 35923

You can use the same vertex buffer to draw as many objects as you want (shaders or not). If you want to draw a second object, just change the model matrix and draw it again.

Same for shaders, you can use the same shader to draw as many objects as you want. Just bind the shader and then fire off as many draw calls as you need.

Upvotes: 3

Related Questions