所以大家好,
现在我只是想将一个值传递给 hlsl 着色器。现在是着色器中的常量缓冲区:
cbuffer ConstantBuffer
{
float4x4 final;
float4x4 rotation; // the rotation matrix
float4 lightvec; // the light's vector
float4 lightcol; // the light's color
float4 ambientcol; // the ambient light's color
float3 SPACE;
float alpha; // <-- Variable trying to recieve, the first 5 works!
}
在 C++ 中:
struct CBUFFER
{
public:
D3DXMATRIX Final;
D3DXMATRIX Rotation;
D3DXVECTOR4 LightVector;
D3DXCOLOR LightColor;
D3DXCOLOR AmbientColor;
D3DXVECTOR3 SPACE;
float Alpha;
};
因此,我尝试对齐变量,以便能够以 16 位的形式发送它们。但由于某种原因,它不起作用,因为着色器中的变量 alpha 未设置。
那么我做错了什么?(PS.我在shader的初始化中设置bufferwidth为:192)
谢谢你