1

我做了一个常量缓冲区定义为

cbuffer MatrixBuffer : register(b1) {
float4x4 aMatrixTransforms[24];
float aMatrixWeights[24];
uint UsedMatrices;
float3 Unused;  
}

在 HLSL 和

struct stMBuffer {
D3DXMATRIX aMatrixTransforms[24];
float aMatrixWeights[24];
unsigned int UsedMatrices;
D3DXVECTOR3 Unused;
};

在 C++ 中

现在所有矩阵以及aMatrixWeights 数组的前5 个元素都成功交付,但之后就什么都没有了,它只是0。有人知道发生了什么吗?谢谢。

4

1 回答 1

0

检查您正在创建的缓冲区的大小。您也可以使用调试层 - 它会向您显示这种情况下的警告。

于 2012-04-10T18:39:26.443 回答