HULL/code/renderergl2/glsl/greyscale_fp.glsl
Lojjik Braughler 453705553b renderergl2: reimplement greyscale as backend post after all 2D+3D draws
Fixes #654 - HUD/UI previously bypassed greyscale.
r_greyscale now supports partial desaturation [0-1].
Removed unused legacy logic from tr_shade.c
2025-11-11 12:21:15 +00:00

15 lines
450 B
GLSL

uniform sampler2D u_TextureMap;
uniform float u_Greyscale;
varying vec2 var_TexCoords;
// From Rec. 709-1 4.2 "Derivation of luminance signal"
const vec3 LUMA = vec3(0.2125, 0.7154, 0.0721);
void main() {
vec4 color = texture2D(u_TextureMap, var_TexCoords);
if (u_Greyscale > 0.0) {
float y = dot(color.rgb, LUMA);
color.rgb = mix(color.rgb, vec3(y), clamp(u_Greyscale, 0.0, 1.0));
}
gl_FragColor = color;
}