Using Light Vector Maps in Leadwerks 3
After a wild week at GDC 2013, it's nice to be back doing what I do best...writing code!
A new build of Leadwerks 3 is now available. We've added light vector maps so that lightmapped surfaces can display normal mapping effects. This is a fantastic technique because it gives us high quality per-pixel lighting that requires very little processing, so it runs fast on mobile. Lightmapped materials with normal maps should use the texture "Common/lightvectormap.tex" in slot 4. (If you create a new lightmapped material, this will be done automatically.)
This technique works by calculating the average light vector that influences each luxel in the lightmap. Each vector is weighted by the light's intensity and range to get an overall vector representing the direction most light is coming from. The light vectors are encoded in a secondary light map that looks like this:
This effect will even work with specular reflection, as seen in this totally over-the-top screenshot:
We also made about a dozen small fixes to the engine and editor. For more detail on recent issues resolved, visit the bug reports forum. Like any new software, we've had some teething problems, but it's pretty easy to resolve those issues as they arise. Bugs can be fixed as they are identified, but bad design is forever. Fortunately, I think we've got a great design and a good and stable development system.