"Suppose you were an idiot, and suppose you were a member of congress; but I repeat myself."
- Mark Twain

Modern LightMapping
Tuesday, October 11, 2016 | Permalink

Well, it's been a while, but it's time for a demo again!

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



Michael
Tuesday, 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 ? Thanks

Humus
Thursday, 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.

Aaaaaa
Saturday, November 19, 2016

Very nice I really like your demos