2009-06-03 26 views
8

Hiệu ứng tập lệnh đổ bóng pixel đơn giản để áp dụng độ sáng và độ tương phản là gì?Trợ giúp với hiệu ứng Pixel Shader cho độ sáng và độ tương phản

tôi thấy thế này, nhưng nó không có vẻ là đúng:

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; 
} 

cảm ơn!

+1

Chắc chắn chia bởi '1.0' trong lần thứ hai để dòng cuối cùng của ví dụ của bạn không có tác dụng ... –

Trả lời

22

Đây có phải là những gì bạn đang tìm kiếm không?

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; 
} 

--- Thử nghiệm với Shazzam Shader biên tập http://shazzam-tool.com

+0

Hmmm. Tôi nghĩ câu hỏi này là từ tuần này, bây giờ tôi thấy rằng nó đã được hỏi một năm trước đây. –

+0

... và vẫn là một câu trả lời có giá trị trong năm 2013. Tôi đang lang thang như thế nào là khó khăn để thêm cũng bão hòa ... :) – Cesar

+2

@Cesar damn, tôi cũng vậy! (Tôi sẽ giữ cho các bạn đăng nếu smth) – mlvljr

Các vấn đề liên quan