L3DT development blog
Large 3D terrain generator

Optimisations ahoy!

Hi All,

A new developmental build of L3DT Professional is now available on the downloads page (L3DT v11.09 build 2, dated 6th of Sept). This build includes as a number of performance optimisations and a couple of bug fixes. The changes are described below:

More RAM, more speed

L3DT 11.09 now uses more RAM to cache map tiles so as to improve the speed of calculations on large maps. This new scheme allows L3DT to grow its cache size until 80% of the system RAM is consumed. If other programs need more memory, L3DT will 'play nice' by dumping its extra cache and releasing the memory back to the operating system. All this is done seamlessly, and you’ll never notice it happening1).

The performance boost from this change is most evident with large maps (>4k x 4k pixels) for calculations that reparse the maps several times. For instance, a 3x speed-up was observed for water table flooding on a 8192×4096 pixel map.

Further improvements to calculation speed have been achieved by ending the previous practice of automatically purging mosaic maps to disk between calculation stages. This was unnecessary and slow.

Multithreaded attributes map calculation

The attributes map calculation is now multi-threaded, and was clocked at running ~3.6x faster when using four cores compared to a single core. When compared to the previous release (11.08), the new build was observed to be more than 4 times faster at generating an attributes maps.

Optimised texture and normal vector interpolation

More modest speed improvements have been achieved by optimising the linear interpolation routines for RGB images and normal maps. The normal map generation calculation now runs about 20% faster, and the texture map calculation runs up to 80% faster when generating a high-resolution texture maps without anti-aliasing2).

Mesh exporter bugs

The mesh exporter included with L2DT 11.08 had a couple of issues that have been fixed in this build.

  • The previous release produced subtle seams in the textures of tiled mesh files. These seams occurred at the north/east edges of the texture tile images, where two rows/columns of pixels were duplicated from their neighbours instead of one. This has now been fixed.
  • When exporting un-tiled meshes, the previous mesh decimator would only fully optimise the geometry at the north and east edges if the map size conformed to a ‘magic’ formula. This has now been fixed, so that the edges of un-tiled mesh files are always fully optimised.

Please note that the exporter currently leaves the edges of tiled mesh files fully unoptimised. This will be addressed in a future release, after much thinkering and development.

Display problems

Some users are still experiencing graphical display problems in Windows 7, even when using the latest drivers. This was previously fixed in L3DT 2.9 by disabling the smooth halftone blending in the 2D display window, but this had the undesirable effect of making the maps appear more pixellated. In version 11.09, halftone blending is on by default, but it may be disabled by selecting the 'Settings→Local settings' menu option, and double-clicking on the 'View→HalftoneFlag' option to set the value to false. Alternatively, you can disable halftone blending by downloading this patch file and dropping it on the L3DT 11.09 desktop icon. To re-enable halftone blending, use this patch file.

Because patch files are text, your browser may display their contents rather than download the files. To download the files, right-click on the text file contents, select the 'save page' option, and give the file a filename that ends with '.patch.txt'.

If you still experience display glitches with halftone blending disabled, please let me know. You can post your bug reports in the forum, or by e-mail (aaron@bundysoft.com.)

Bug fixes

There are also a few other miscellaneous bug fixes, including:

  • The installer script was updated to fix those annoying 'This installer did not complete properly' error messages in Windows Vista and 7.
  • Sapphire previously did not allow fine control over the brush radius; this has been partially fixed (see here.)
  • The L3DTio_BigBitmap plugin now logs more descriptive errors when attempting to load compressed bitmaps.

That's all

Cheers, Aaron.

1) Unless you’re watching the RAM chart.
2) With anti-aliasing enabled, the improvement is less dramatic due to the slowness of AA. YMMV.
l3dt/2011/sep/08.txt · Last modified: 2017/08/31 04:24 (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