57 lines
1.4 KiB
GLSL
57 lines
1.4 KiB
GLSL
|
|
#extension GL_ARB_texture_rectangle : enable
|
|
|
|
uniform sampler2DRect baseMap;
|
|
|
|
uniform float brightness;
|
|
uniform float contrast;
|
|
uniform float saturation;
|
|
uniform float alpha;
|
|
uniform float red;
|
|
uniform float green;
|
|
uniform float blue;
|
|
uniform float shadowIntensity;
|
|
|
|
void main(void)
|
|
{
|
|
// Extract colors from baseMap
|
|
vec4 baseColor = texture2DRect( baseMap, gl_TexCoord[0].st );
|
|
|
|
vec3 baseColor3 = baseColor.rgb;
|
|
|
|
|
|
// Brightness, contrast and saturation
|
|
const float AvgLumR = 0.5;
|
|
const float AvgLumG = 0.5;
|
|
const float AvgLumB = 0.5;
|
|
const vec3 LumCoeff = vec3(0.2125, 0.7154, 0.0721);
|
|
vec3 AvgLumin = vec3(AvgLumR, AvgLumG, AvgLumB);
|
|
vec3 brtColor = baseColor3 * brightness;
|
|
vec3 intensity = vec3(dot(brtColor, LumCoeff));
|
|
vec3 satColor = mix(intensity, brtColor, saturation);
|
|
vec3 conColor = mix(AvgLumin, satColor, contrast);
|
|
|
|
baseColor.rgb = conColor;
|
|
|
|
|
|
|
|
|
|
// colour, alpha, lighting
|
|
//vec3 normal = normalize( v_normal );
|
|
vec3 colourVec = vec3(red, green, blue);
|
|
baseColor.rgb *= colourVec;
|
|
//float ndotl = max(dot(normal, v_light_dir), shadowIntensity);
|
|
//baseColor.rgb *= ndotl;
|
|
//baseColor.a = alpha;
|
|
|
|
|
|
vec4 result = clamp(baseColor, 0.0, 1.0);
|
|
|
|
//result.r += v_colour.r;
|
|
//result.g = 1.0;
|
|
//result += v_colour;
|
|
//result.a = v_colour.a;
|
|
|
|
gl_FragColor = result;
|
|
|
|
} |