c++ - 顶点着色器 - 常量缓冲区数组

标签 c++ directx game-engine hlsl vertex-shader

我在对数组使用常量缓冲区时遇到问题,目前我正在为我的顶点着色器发送一个大小为 100 的数组,如下所示:

/////////////
// 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++ 缓冲区:(几乎相同)

struct InstanceInfo
{
     D3DXMATRIX worldMatrix;
     unsigned int currentFrame;
     unsigned int totalFrames;
     unsigned int animationType;
     float deltaTime;
};

缓冲区的大小正确初始化:sizeof(InstanceInfo)*MAX_NUMBER_INSTANCES(我的 C++ 代码中的 MAX_NUMBER_INSTANCES 也是 100)并且数据也被正确复制。 (我仔细检查了它们)

我知道有打包规则,但我找不到我的错误在哪里(可能就在我面前,但我看不到...)

如果有人能帮助我...

最佳答案

好的,我解决了这个问题,如果有人遇到同样的问题,请记住先查看之前的缓冲区是否正常工作(这可能会对所有即将到来的缓冲区造成链式 react )

关于c++ - 顶点着色器 - 常量缓冲区数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15503591/

相关文章:

c++ - 如何在 wt(c++) 创建后更新网页

c++ - GeneralizedEigenSolver 不在特征库中给出特征向量

c++ - DX10+ 多顶点缓冲区,单索引缓冲区

c++ - IDXGISwapChain::存在内存泄漏

python - 恒定的键输入可以不断地移动 Sprite 吗?

java - 最大限度地减少 gme 中的 AI 使用

java - 用 Java 创建瓦片 map

c++ - C++重载解析-模糊匹配

c++ - 我可以使用覆盖非虚拟方法的方法吗?

c++ - C++ 中的 DirectX 10 HUD