HDRI saturation


Is there any way to saturate an HDRI without changing the 3D models?
We have different HDRI’s where the HDRI has some color in it, what we want to be able to saturate to a grey scale so you won’t see any color on reflecting models.

What sort of HDRI are you using? Is this a .hdr or .exr file?

It is certainly possible to convert a texture to grayscale using three.js, but I think you’ll find it easier (and better for performance) if you can do that offline in Photoshop or similar software.

For the hdr we use different file types, like .hdr, .exr and even .png.
We could do the grayscale in photoshop, but we want to have different gradations. Is that an option in Three?

Just an idea:

A full or partial grayscaling can be done with a color matrix. However, this will require changing the material shader. Maybe someone experienced with Three.js shaders can suggest what is the best/easiest way to do this.

(Note for developers: I see no problems of supporting color matrices in most materials, it will not break older code. Apart from changing saturation, color matrices can do other beautiful transformations. The implementation could be done with a small shader chunk, that is inserted only when needed. Actually, there is one disadvantage – very few people might use this feature. )

I’ve seen the color matrix technique used in the shader of AnaglyphEffect – it uses color matrices to produce red-tinted and cyan-tinted images: