1

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、どちらもフロートです。

これにより、「return」行で次のエラーが発生します。

エラー X3082: int または unsigned int 型が必要です。

最適化を無効にし、デバッグ情報を有効にして、Shader Model 4 Level 9_3 でコンパイルしています。

このエラーが MSDN やどこにも文書化されていないようです。

大まかに言って、このエラーが文書化されている場所を教えてもらえますか? ここで何が起こっているのかを理解したいと思います。より具体的には、誰かが私のエラーを見つけることができますか?

4

1 に答える 1

2

b^tHLSL pow関数を使用する代わりに:

return a * (1 - t) + pow(b, t);
于 2013-01-22T00:37:42.397 に答える