如何在HLSL中用布尔变量实现逻辑

本文关键字:变量 实现 布尔 HLSL | 更新日期: 2023-09-27 18:00:23

此代码在HLSL ps_2_0中可以正常工作,但在ps_3_0中无法编译。如果我将变量替换为true,它将编译。有人知道怎么做吗?

float4 setBoolToFloat(bool input)
{
    float4 output;
    output.xyzw = (input) ? 1.0f : 0.0f;
    return output;
}

如何在HLSL中用布尔变量实现逻辑

不知道为什么会这样,但当我将三行代码移动到最初调用setBoolToFloat的位置时,错误消失了。我只在几个地方调用这个函数,所以我不会花更多的时间来尝试让它工作。我想知道为什么它没有,但我会接受它。