Transitioning to an sRGB workflow

You might find it saves time to jump directly to r152+. Some names and default settings were changed in r152, making the linear workflow the default.

In any case. It’s very likely that your material.map is sRGB, and in the linear workflow you’ll need to annotate that texture with .encoding = sRGBEncoding, equivalent to .colorSpace = SRGBColorSpace in r152+. With a lightmap, either sRGB or Linear-sRGB are valid choices. Ideally we’d know which was selected when exporting the lightmap, without knowing it might require trial and error.

The settings of your renderer also matter a lot – have you seen the guide at Updates to Color Management in three.js r152 ? That would be good to read through, if not. The ‘correct’ settings for textures will look wrong, if the renderer is not also configured correctly. In r152+ you do not need to change the renderer defaults.

Aside – If you’re using post-processing, you’ll need OutputPass in newer three.js versions, or GammaCorrectionShader in older versions. Ideally sharing a simple demo can help to identify any other pieces of the problem that would matter to your app.

2 Likes