mirror of
https://github.com/libretro/bsnes-libretro.git
synced 2024-11-23 08:59:40 +00:00
32 lines
673 B
GLSL
32 lines
673 B
GLSL
// Gamma Adjustment Shader
|
|
// Written by Themaister - based on byuu's bsnes gamma ramp code
|
|
|
|
#version 150
|
|
|
|
uniform sampler2D source[];
|
|
|
|
in Vertex {
|
|
vec2 texCoord;
|
|
};
|
|
|
|
out vec4 fragColor;
|
|
|
|
const float saturation = 1.0;
|
|
const float gamma = 1.0;
|
|
const float luminance = 1.2;
|
|
|
|
vec3 grayscale(vec3 col)
|
|
{
|
|
// Non-conventional way to do grayscale,
|
|
// but bSNES uses this as grayscale value.
|
|
return vec3(dot(col, vec3(0.3333)));
|
|
}
|
|
|
|
void main() {
|
|
vec3 res = texture(source[0], texCoord).xyz;
|
|
res = mix(grayscale(res), res, saturation); // Apply saturation
|
|
res = pow(res, vec3(gamma)); // Apply gamma
|
|
|
|
fragColor = vec4(clamp(res * luminance, 0.0, 1.0), 1.0);
|
|
}
|