C++ 顶点着色器-常量缓冲区数组
我在数组中使用常量缓冲区时遇到问题,目前我正在为顶点着色器发送一个大小为100的数组,如下所示:C++ 顶点着色器-常量缓冲区数组,c++,directx,game-engine,hlsl,vertex-shader,C++,Directx,Game Engine,Hlsl,Vertex Shader,我在数组中使用常量缓冲区时遇到问题,目前我正在为顶点着色器发送一个大小为100的数组,如下所示: ///////////// // DEFINES // ///////////// #define MAX_NUMBER_INSTANCES 100 ///////////// // STRUCTS // ///////////// struct InstanceInfo { matrix InstanceWorldMatrix; uint CurrentFrame;
/////////////
// DEFINES //
/////////////
#define MAX_NUMBER_INSTANCES 100
/////////////
// STRUCTS //
/////////////
struct InstanceInfo
{
matrix InstanceWorldMatrix;
uint CurrentFrame;
uint TotalFrames;
uint AnimationType;
float DeltaTime;
};
/////////////
// BUFFERS //
/////////////
cbuffer InstanceBuffer
{
InstanceInfo Instance[MAX_NUMBER_INSTANCES];
};
我在着色器中得到了错误的结果。。。这里是我的C++缓冲区:(几乎相同)
缓冲区初始化正确:大小:siZeof(StimeSnFipe)* Max SybNoMyBug实例(我的C++代码中的Max值)也正确复制了数据。(我仔细检查了一下)
我知道有包装规则,但我找不到哪里是我的错误(可能在我面前,但我看不到它…)如果有人能帮我 好的,我解决了这个问题,如果有人遇到同样的问题,记得先看看前一个缓冲区是否正常工作(这可能会对所有即将到来的缓冲区造成连锁反应)
struct InstanceInfo
{
D3DXMATRIX worldMatrix;
unsigned int currentFrame;
unsigned int totalFrames;
unsigned int animationType;
float deltaTime;
};