uniform_float uGamma { default = 1.0; step = 0.01; min = 0.0; max = 5.0; display_name = "#{BuiltInShaders:GammaLevelName}"; description = "#{BuiltInShaders:GammaLevelDescription}"; } uniform_float uContrast { default = 1.0; step = 0.01; min = 0.0; max = 5.0; display_name = "#{BuiltInShaders:ContrastLevelName}"; description = "#{BuiltInShaders:ContrastLevelDescription}"; } fragment main { omw_In vec2 omw_TexCoord; void main() { vec4 color = omw_GetLastShader(omw_TexCoord); color.rgb = (color.rgb - vec3(0.5)) * uContrast + 0.5; color.rgb = pow(color.rgb, vec3(1.0 / uGamma)); omw_FragColor = color; } } technique { description = "#{BuiltInShaders:AdjustmentsDescription}"; version = "1.0"; author = "OpenMW"; passes = main; }