Brighter envmaps since r131

In the migration guide, it says the following:

  • The envMap property of MeshStandardMaterial and MeshPhysicalMaterial is now internally converted to a PMREM. It might be necessary to update the scene’s lighting if no PMREM was previously used.

And I’ve read the conversation in here.

If I understood correctly, prior to r131, standard material did not work as intended regarding the radiance supposedly emitted from envmaps, and users have fixed that either with artificial ambient lighting, or by using the PMREM Generator. Is that correct?

And now, the PMREM Generator is used internally in standard material so there’s no longer a need to do that manually.

But - the modelers I work with haven’t used ambient lighting in their models, and they configured the lighting based on how the models looked in their modeling software, which corresponded with how they appeared in three.js prior to r131. Now we have too much light on the models. How can we get the visual results of standard material pre r131, while still using the newest revisions of three.js? Is there a way other than go over all the models and tweak them manually?

You can see below a comparison of a model rendered in the editor of r130 on the left, and r131 on the right.

Here’s the model:

model.json (793.5 KB)

Help will be very much appericiated.


That is correct. It’s only physically correct to use a pre-processed environment map with PBR materials. The lighting correction with ambient lights was never a proper workflow.

I’m not aware how this can be achieved if there are no other lights in the scene. It seems you have to stick with r131 or use a custom enhancement of one of the PBR materials. Alternatively, you might want to consider to switch to MeshPhongMaterial.

1 Like

Reducing material.envMapIntensity would also be an option, if the environment is too bright or mixed with other light sources.

1 Like

Thank you both!