Last time I asked a question on this forum, I left with the understanding that:
-r.gammaFactor = 2.2 and r.outputEncoding = THREE.sRGBEncoding is now all you need to apply gamma correction on sRGB color space;
-using an effect composer with some passes (such as FXAA) will ignore the previous fact, which means you need to do the gamma correction in a custom shader pass.
But recently in my project, I had to remove the effect composer and rely on the “native” gamma correction to do what my shader was doing. And everything looked correct, except for anything that had transparency in the scene.
I could reproduce what happens in a codepen, and though the difference here is quite minimal, it makes me wonder: how is the shader function LinearTosRGB doing a different job than the native gamma correction?
Hope I’m not being too off the point. The whole subject was completely new to me a month ago.