ピクセルシェーダーのサンプラーにこの奇妙な問題があります。サンプラーから空のfloat4変数にサンプリングすると、常に黒/透明色が返されます。したがって、これを使用すると、黒い画面が表示されます。
float4 PixelShaderFunction(float2 TextureCoordinate : TEXCOORD0) : COLOR0
{
float2 uv = TextureCoordinate;
float4 pixelColor = tex2D(implicitInputSampler, uv);
//contrast
pixelColor.rgb = ((pixelColor.rgb - 0.5f) * max(Contrast, 0)) + 0.5f;
//brightness
pixelColor.rgb = pixelColor.rgb + (Brightness - 1);
// return final pixel color
return pixelColor;
}
II代わりにこれを使用して問題なく動作します:
float4 PixelShaderFunction(float2 TextureCoordinate : TEXCOORD0) : COLOR0
{
float2 uv = TextureCoordinate;
float4 pixelColor = {0,0,0,1};
pixelColor += tex2D(implicitInputSampler, uv);
//contrast
pixelColor.rgb = ((pixelColor.rgb - 0.5f) * max(Contrast, 0)) + 0.5f;
//brightness
pixelColor.rgb = pixelColor.rgb + (Brightness - 1);
// return final pixel color
return pixelColor;
}
これは、AMD4850GPUを使用する自宅の開発環境でのみ発生します。いくつかのnVidiasまたはAMD5850で試してみると、どのような場合でも機能します...
これの理由は何ですか?デバイスの初期化を見逃しましたか?
乾杯!