我在 HLSL 中有以下像素着色器函数:
float GammaCorrectA(float3 color, float alpha) {
float a = 1 - sqrt(1 - alpha);
float b = sqrt(alpha);
float t = (color.x + color.y + color.z) / 3;
return a * (1 - t) + b^t;
}
这是这样称呼的:
float screen = GammaCorrectA(strokeColor, alpha);
strokeColor
并且alpha
都是浮点数。
这导致“返回”行出现以下错误:
错误 X3082:需要 int 或 unsigned int 类型。
我正在使用 Shader Model 4 Level 9_3 进行编译,禁用了优化并启用了调试信息。
我似乎在 MSDN 或任何地方都找不到此错误。
从广义上讲,有人可以指出我记录此错误的位置吗?我想了解这里发生了什么。更具体地说,有人能发现我的错误吗?