【发布时间】:2021-11-28 03:56:58
【问题描述】:
在c++中,数组中有一个值,当我把它传给shader的时候,数据都是0。有没有具体的方法把数组传给shader?
这是我设置常量缓冲区的代码
vector<XMFLOAT4X4> finalTransforms = Animator->GetTransforms(_timeDelta);
BoneTransformBuffer.SetData(GraphicDev->GetDeviceContext(), finalTransforms);
auto Transform = BoneTransformBuffer.GetBuffer();
GraphicDev->GetDeviceContext()->VSSetConstantBuffers(1, 1, &Transform);
这是我在着色器中的常量缓冲区
cbuffer cbSkinned : register(b1)
{
float4x4 BoneTransforms[96];
};
【问题讨论】:
-
finalTransforms不是指向向量数据的指针,所以试试BoneTransformBuffer.SetData(GraphicDev->GetDeviceContext(), finalTransforms.data());