How do I create more than one constant buffer ?
Started by Danisflying, Mar 25 2012 06:46 PM
10 replies to this topic
Sponsor:
#5 Crossbones+ - Reputation: 3548
Posted 26 March 2012 - 12:54 AM
How are you creating your first constant buffer? That said you don't normally create a new constant buffer just to store a cube. Constant buffers are for stuff like camera position, world/view/projection matrices, shader parameters, etc... vertex and mesh data usually goes within the vertex declarations.
#6 Members - Reputation: 1133
Posted 26 March 2012 - 01:12 AM
You create a second constant buffer in the same way as you create the first constant buffer.
Also, you may reuse a single constant buffer for different drawing calls. ie. fill constant buffer for the first cube, draw, re-fill the same constant buffer for the second cube (like with different world matrix and color etc), draw the second cube and so on.
Cheers!
Also, you may reuse a single constant buffer for different drawing calls. ie. fill constant buffer for the first cube, draw, re-fill the same constant buffer for the second cube (like with different world matrix and color etc), draw the second cube and so on.
Cheers!
#8 Crossbones+ - Reputation: 1067
Posted 26 March 2012 - 09:22 AM
I understand creating the second constant buffer, It how do I run both constant buffers at the same time using VSSetConstantBuffers function
Assuming you're using DirectX 11, you can declare two constant buffers in HLSL like this:
cbuffer cbuffer0 : register(b0)
{
//..
}
cbuffer cbuffer1 : register(b1)
{
//...
}
Then use:
ID3D11Buffer** ppCBuffers = {pCBuffer0, pCBuffer1};
VSSetConstantBuffers(0, 2, ppCBuffers);
Tiago Costa
Aqua Engine - my DirectX 11 game "engine" - In development
Aqua Engine - my DirectX 11 game "engine" - In development
#11 Members - Reputation: 1133
Posted 29 March 2012 - 01:00 AM
I'm getting an error when it comes to CreateVertexShader function
Which error do you get?
I am not following exactly what you are trying to accomplish since all the techniques to draw any object multiple times have been presented and you don't give a clue which option you are following. Read my previous post. It is the simplest way to draw the same cube as many times as you wish and you'll only need a single constant buffer for it.
Best regards!






