diff --git a/data/shaders/color_levels.frag b/data/shaders/color_levels.frag new file mode 100644 index 000000000..6de49ca71 --- /dev/null +++ b/data/shaders/color_levels.frag @@ -0,0 +1,26 @@ +uniform sampler2D tex; +uniform vec3 inlevel; +uniform vec2 outlevel; + +void main() +{ + vec2 texc = gl_TexCoord[0].xy; + texc.y = 1.0 - texc.y; + + + vec4 col = texture2D(tex, texc); + + //col = col / (1 - col); + + float inBlack = inlevel.x; + float inWhite = inlevel.z; + float inGamma = inlevel.y; + + float outBlack = outlevel.x; + float outWhite = outlevel.y; + + col.rgb = (pow(((col.rgb * 255.0) - inBlack) / (inWhite - inBlack), + vec3(1.0 / inGamma)) * (outWhite - outBlack) + outBlack) / 255.0; + + gl_FragColor = vec4(col.rgb, 1.0); +} diff --git a/data/shaders/flip.frag b/data/shaders/flip.frag index 363427c5c..7ed45f0a2 100644 --- a/data/shaders/flip.frag +++ b/data/shaders/flip.frag @@ -5,23 +5,6 @@ void main() vec2 texc = gl_TexCoord[0].xy; texc.y = 1.0 - texc.y; - - vec4 col = texture2D(tex, texc); - - //col = col / (1 - col); - - - float inBlack = 0.0; - float inWhite = 137.0; - float inGamma = 0.65; - - - float outWhite = 255.0; - float outBlack = 0.0; - - - col.rgb = (pow(((col.rgb * 255.0) - inBlack) / (inWhite - inBlack), - vec3(1.0 / inGamma)) * (outWhite - outBlack) + outBlack) / 255.0; - gl_FragColor = vec4(col.rgb, 1.0); + gl_FragColor = vec4(texture2D(tex, texc).rgb, 1.0); }