I’m working on adding an option to turn off realtime lighting for low-performance machines. I was going to add simple baked lighting in all the scenes which I could turn on as needed, but I figured there must be a simpler way that didn’t require baking. For this mode, I just want every pixel to be uniformly lit, no shadows, just like an omnidirectional directional light.
I figured I could accomplish this with a skybox or a gradient sky. However, when I use either of those, applying white light, everything is just grey, with none of its actual color.
Is there a different way to get uniform lighting in a scene for cases where I was high-performance, low-quality light?
Hi,
everything is just grey, with none of its actual color.
I expect it is the exposure/tonemap that do this.
If you want to have exactly your color, you must either use unlit (without any tonemap/exposure), or use only a directional or a sky with an intensity of PI.
Lit material use Disney diffuse BRDF, but you can think of it like Lambert. The BRDF divide by PI, so providing a directional light with PI intensity (in lux) will give you your color. And use a fixed exposure a bit above 1 (we use EV100 for exposure and not a power of two).
hope this help
Thanks for the information. It really sounds like I should be approaching this from the shader side. I’m trying to create a super efficient, low-quality mode, for bad hardware, because even a bit of lighting causes significant framerate drops. But it sounds like I really just need to be able to swap my material for unlit materials, though I don’t assume that will work for static objects at runtime. I was just trying to achieve the lowest-cost possible for “very low” settings. Your ideas have helped.