L3DT development blog
Large 3D terrain generator

Light map calculation benchmarks

Hi All,

Yesterday I posted some benchmark results comparing the speed of texture generation in with the current release (v2.5c) against the forthcoming release (v2.6). Today, I'm going to compare the speed of lightmap generation.

Benchmark conditions

The conditions for this test were the same as those used yesterday, except that instead of generating the texture map, I was generating the light map.

Please note that these benchmarks are for the lighting calculation only, and do not include the shadow-casting calculation. One calculation at a time.

Part 1: L3DT v2.5c mosaic vs. non-mosaic

The graph below shows the performance of the previous release of L3DT Professional, version 2.5c, for both mosaic and non-mosaic light map generation.


As appalling as the benchmarks were yesterday for texture generation with L3DT 2.5c, these results for light-mapping are worse. As before, you can see that the mosaic map calculation in v2.5c is much slower than the non-mosaic calculation. What makes these results worse than yesterday's was that the mosaic light mapping algorithm in v2.5c threw errors and aborted when run with three or four active cores, and thus the three and four core mosaic results are missing. These errors in the mosaic light map system were related to the mosaic map cache manager, which as I described yesterday, was very poor at handling concurrent requests from multiple threads. This has been fixed in v2.6.

Part 2: L3DT v2.6 mosaic vs. non-mosaic

Now fore the results from the forthcoming release, version 2.6. The graph below shows the performance v2.6 for both mosaic and non-mosaic light map generation:


Here you can see that the light map performance scale up linearly with the number of cores (as it should), and that the mosaic map and non-mosaic light map calculations are now about the same speed (as they should be). So, whilst version 2.5c couldn't handle multi-core generation of mosaic light maps, version 2.6 has no such problems.

Part 3: L3DT v2.5c vs. L3DT 2.6

I apologise in advance if this is a little gratuitous, but as I did yesterday, I'm now going to directly compare the results for the old release (v2.5c) with the forthcoming release (v2.6).

First up is the comparison of non-mosaic light map generation:


There wasn't much wrong with the non-mosaic calculations in v2.5c, so the improvements here are fairly modest. These results show that version 2.6 (light green) is about 10% faster than v2.5c (dark green) for non-mosaic lgiht map generation. This improvement is partly due to a compiler upgrade (now using MSVC 2008), and partly due to some minor optimisations in the light mapping algorithm.

As with yesterday, the big news remains the improvements in mosaic light map generation:


The results show that for single-core mosaic light maps, version 2.6 is ~700% faster than v2.5c, and for dual-core, it's 1500% faster.

No direct comparison can be made for triple and quad-core calculations, because release 2.5c simply didn't work with more than two cores. However, if you take the fastest speed achieved with version 2.6 (which was for quad core) and compare it with the fastest working speed from v2.5c (which was for single core), you get a speed increase of two thousand four hundred percent.


If you like to make big maps, upgrading to L3DT v2.6 will save you a lot of time. It your computer happens to be multi-core, the time savings could be tremendous*.

The release date for L3DT 2.6 is mid-September.

* Your mileage may vary. The actual time savings depends on how you're using L3DT, your choice of settings, and how your computer is configured.

l3dt/2008/aug/29.txt · Last modified: 2017/08/31 04:22 (external edit)
Except where otherwise noted, content on this wiki is licensed under the following license:CC Attribution-Share Alike 3.0 Unported
L3DT Development Blog RSS Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki