"You cannot strengthen the weak by weakening the strong. You cannot help the wage-earner by pulling down the wage-payer. You cannot help the poor by destroying the rich. You cannot help men permanently by doing for them what they could and should do for themselves."
- Abraham Lincoln

This time it's a sort of hybrid between Clustered Shading and LightMapping, which essentially forms a lightmapping solution that's compatible with normal mapping, and while the lights need to be stationary, allows most other attributes other than position to be dynamically changed. In this demo you can interact with all the lights, turn them on and off, change color, or switch to an animated mode.

Head over to the 3D section and give it a try!Name

Comment

Enter the code below

MichaelTuesday, October 18, 2016

Hi, I see each light produces one .dds for the lightmap, does that mean if you have 100 lights this method ends to 100 .dds ? How this method scales for a real application ? ThanksHumusThursday, October 20, 2016

Yes, a real game engine wouldn't want to do global lightmaps for the entire level with all lights everywhere. For say a typical indoor shooter, you could just subdivide it into chunks, such as a room. But yes, even with a decent subdivision strategy, you will still consume a factor X greater amount of memory than an old-school lightmap. In the best case, X would approach something like the average number of lights hitting an average texel, but likely a bit higher than that. On the other hand, this technique only stores a single 8-bit channel, which could easily compress to BC4. And compared to some recent lightmapping techniques where they store SH or SG coefficients, the storage for this in a typical application would probably be less than that. But with that said, I don't think this technique is for every game, but it could certainly be useful for some.AaaaaaSaturday, November 19, 2016