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