2009-06-03 11 views
8

¿Qué es un efecto de script de sombreado de píxeles simple para aplicar brillo y contraste?Ayuda con el efecto Pixel Shader para brillo y contraste

me encontré éste, pero no parece ser correcta:

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

gracias!

+1

Seguramente dividiendo por '1.0' en la penúltima línea de su ejemplo, no tiene ningún efecto ... –

Respuesta

22

¿Esto es lo que estás buscando?

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

--- Probado con Shazzam Shader Editor http://shazzam-tool.com

+0

Hmmm. Pensé que esta pregunta era de esta semana, ahora veo que se hizo hace un año. –

+0

... y sigue siendo una respuesta valiosa en 2013. Estoy deambulando lo difícil que es agregar también la saturación ... :) – Cesar

+2

@Cesar maldita sea, yo también! (Los mantendré informados si fuera poco) – mlvljr

Cuestiones relacionadas