Change color of shader

Grey colors simply have the same amount of red green and blue in them, there is no filter.

But there are many ways to calculate that amount from the original red green and blue in the colored image. It’s a messy topic that involves many different standards and particulars of human vision.

I made a fiddle some time ago to compare some of those ways to make black & white image or desaturate (which, as it turns out, is not the same thing):

In your case you could try Photoshop desaturate:

vec3 sRGB = normalize( normal ) * colorA + 0.5;
float bw = (min(sRGB.r, min(sRGB.g, sRGB.b)) + max(sRGB.r, max(sRGB.g, sRGB.b))) * 0.5;
gl_FragColor = vec4(vec3(bw), 1.0);