I’m working on a 3d performance friendly game intended to run in webGL. In the level I’m working on, players defend an electrical generator and repair it when it goes down. When the generator fails, I want the lights to flicker off and dim to emergency lights. Similarly, when the generator is brought back up, I want the lights to flicker back on. What I’m having trouble with is doing this in a way that is as performance friendly as I want.
I don’t want to use real time lights, as I’m trying to keep the pixel light count to 3 (the 2 players’ flashlights and the moon). I could use vertex lights, but they aren’t free to render and I can only have 8.
I’ve considered having three static pieces of scene geometry (powered on, emergency lighting, and powered off) but that looks bad in-game because there is no transition between states.
In Unreal, it’s possible to have a baked stationary light change intensity and color as long as it has no indirect lighting (my understanding is this works because none of the shadows move position, so you can change “brightness” by just tweaking properties of a baked light map.) I think I could replicate this behavior in Unity by having all of the level geometry share one emission map that I could change the intensity of to simulate lights powering on and off, but that requires a lot of work by baking lighting in Blender and requires unique UVs for every piece of geometry in the level.
I feel like I must be missing something here. I’m using the old render pipeline. Any tips or ideas are appreciated.