好吧,我很难将布尔值打包并对齐到hlsl常量缓冲区中,我不确定为什么。
这是hlsl中的缓冲区
cbuffer MaterialBuffer : register(b1) {
float3 materialDiffuseAlbedo;
float materialSpecularExponent;
float3 materialSpecularAlbedo;
bool isTextured;
};
这是用c ++编写的
struct GeometryBufferPass_MaterialBuffer {
XMFLOAT3 diffuse;
float specularExponent;
XMFLOAT3 specular;
bool isTextured;
};
我试图以各种方式移动布尔并填充结构,但是没有运气。正确的方法是什么?