And in the meantime, Unity-Users are bathing in sweet warm GI water while we’re struggling (No offense, but they some nice GI cake, eh?)
At the moment, as an Level Artist i’m building quite advanced Asteroid Cavern Systems with sort of 1:1 scale (f* big). I am using some sort of fake-GI methods to enlighten rooms with movable dynamic lights and secondary lights to give these maps some “sort of” GI look while keeping all things dynamic. Baking lights is not an option for us since it takes too much time to bake. Occurring data is way too high for the number of maps we’re going to have and we’re looking into procedural generation as well. There’s not a single day i’m not watching at my glowing Ore materials and wish i could find an solution to enlighten the surrounding areas. Maybe, there might be some ideas we could collect to find ways to circumvent the need for GI by using existing features.
My current ideas:
Using an “negative” Ambient Occlusion on objects that features emissive materials.
This AO method should work side by side with the regular AO, maybe through ID’s.
It should take the color from emissive data and could be tweaked by radius and strength to lit up surrounding areas.
Upside: Back in the days, i used this technique in offline post productions. Was not looking that bad at all.
Downside: Just usable inside smaller areas, not sure about bigger ones. (Example: glowing stone on ground)
Fake GI light object
Extends the regular light object by adding an spherical/box raytrace that “shoots” secondary lights into all directions. (~6 lights)
The more one secondary light moves away from the initial light object the more it’s radius should grow and shrink its intensity at the same time.
If one light hits a wall/ground, it just sticks to it. The secondary light should not have any reflection on other objects.
Upside: At the moment i am using an similar technique. If i have an lamp object to light up a wall, i create a second light that is being used between the initial wall light and the dark wall on the other side to create some feeling of global illumination. It works in bigger rooms. Animation might be possible if raytrace is updating in realtime?
Downside: Probably takes a lot of draw-calls? Secondary lights should not use shadows because of performance but may cast their light into other nearby rooms if there’s no math method to prevent it. (like shadows do)