Environment intensity for diffuse and reflection separately for PBR

I have a scene with all PBRMaterials. The goal is to keep everything physically based as much as possible. But we want separate control over how much an environment contributes to diffuse vs. reflection for greater artistic control. Currently, environment intensity affects both diffuse and reflection . Is there a way where I can have an environment contribute to diffuse and reflection separately or does this break the PBR workflow?
here is the functionality on a global scene level:

on a per material level there is this.

but this again seems to scale both diffuse and reflection contribution together.

Lets suppose the ‘correct’ solution is to use a PBR workflow…
if for example I had a HDR environment, and I liked the way it contributed to reflections but it was contributing too much to diffuse. Would the solution be to lower my environment intensity value (thereby creating less diffuse and reflection contribution overall) , and decrease the roughness on the material?

To only scale the specular contribution of the environment you could try to use the environmentTexture level ?

Right, see above. I was thinking about the same solution.

environmentTexture.level is not in your list above and will only impact the rendering of the reflection not the creation of the polynomials thus impacting only the specular.

so you could reduce the overall environmentIntensity dropping diffuse and increase the texture level to bring back the specular only

AH!! You are correct. Very nice trick. I implemented this and seems to get us what we are looking for. Thanks.

1 Like