gpt4 book ai didi

c++ - D3D10 常量缓冲区不工作

转载 作者:行者123 更新时间:2023-11-28 03:23:32 25 4
gpt4 key购买 nike

我正在使用常量缓冲区将数据传输到我的像素着色器

问题是在运行时,对于 float4 成员的 x、y、z 和 w,缓冲区在着色器中包含 0,无论什么数据更新到缓冲区

结构定义如下:

// (C++)
struct Buffer
{
XMMATRIX mvp_;
XMFLOAT4 rgba_;
int usemvp_;
};


// HLSL
cbuffer Buffer : register( b0 )
{
matrix mvp_;
float4 rgba_;
int usemvp_;
};

非常感谢任何帮助

最佳答案

您需要填充结构以使其 16 字节对齐。

// (C++)
struct Buffer
{
XMMATRIX mvp_;
XMFLOAT4 rgba_;
int usemvp_;
float padding[3];
};

此外,您还必须确保将常量缓冲区设置到正确的着色器阶段,即 VSSetConstantBuffers 与 PSSetConstantBuffers。

关于c++ - D3D10 常量缓冲区不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14782061/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com