Allow materials to override environment texture with their own

Clearly a scene / engine can have more than one 3D texture. I have found a number of cases when forced to only have one environment texture for the entire scene is a major pain. The workarounds have their own problems:

  • Reduce environment intensity of some materials only works in limited situations.
  • Abandoning an environment texture, environmentIntensity = 0, & using only lights for some PBR materials looks like a bunch of spots no matter which light type I tried. Also time consuming.
  • Using standard materials looks out of place, and cannot be metal, rough, and poorer transparency.
  • Some crude baking process, or changing the colors of some materials to evade issues.

Some use cases:

  • Objects which “magically” generate their own light.
  • Outside looking in through a window.
  • Inside looking outside through a window.
  • Being in a room that can see a corridor that is lit differently.
  • Some objects have a light source, which is blocked from shining on others.
1 Like

You can replace the environment texture per material actually. Just replace the reflectionTExture with your own env texture

Adding @sebavan to keep me honest