2009-06-03 2 views
8

明るさとコントラストを適用する単純なピクセルシェーダスクリプトエフェクトとは何ですか?明るさとコントラストのピクセルシェーダ効果に関するヘルプ

私はこの1つを見つけたが、正しいとは思われない:

sampler2D input : register(s0); 
float brightness : register(c0); 
float contrast : register(c1); 

float4 main(float2 uv : TEXCOORD) : COLOR 
{ 
    float4 color = tex2D(input, uv); 
    float4 result = color; 
    result = color + brightness; 
    result = result * (1.0+contrast)/1.0; 

    return result; 
} 

感謝!

+1

きっとあなたの例の最後の行に2つ目に、 '1.0'で割ることは効果がありません... –

答えて

22

これはあなたが探しているものですか?

Shazzamシェーダエディタでテスト
float Brightness : register(C0); 
float Contrast : register(C1); 

sampler2D Texture1Sampler : register(S0); 

float4 main(float2 uv : TEXCOORD) : COLOR 
{ 

    float4 pixelColor = tex2D(Texture1Sampler, uv); 
    pixelColor.rgb /= pixelColor.a; 

    // Apply contrast. 
    pixelColor.rgb = ((pixelColor.rgb - 0.5f) * max(Contrast, 0)) + 0.5f; 

    // Apply brightness. 
    pixelColor.rgb += Brightness; 

    // Return final pixel color. 
    pixelColor.rgb *= pixelColor.a; 


return pixelColor; 
} 

--- http://shazzam-tool.com

+0

うーん。私はこの質問が今週からだと思っていましたが、今年は1年前に尋ねられました。 –

+0

...そして、2013年には依然として貴重な答えです。私は飽和を追加することがどれほど難しいかを迷っています。:) – Cesar

+2

@Cesar damn、私も! (私はあなたがスムースなら掲示しておきます) – mlvljr

関連する問題