L3DT development blog
Large 3D terrain generator

February 26

Progress on L3DT 16.0X

Hi Everyone,

This is just a quick post to let you know I'm still alive and still working on L3DT v16.0X.

The current state of play is that v16.0X is feature complete but still in testing. Some major changes were made in December and January in how L3DT manages memory, particularly when using large non-mosaic maps or large tile sizes in mosaic maps, and also when the system is under high memory loads.

The long-running memory allocation problems with large non-mosaic maps and large mosaic tile sizes were addressed in January by switching to scanline-based non-contiguous RAM pages for small maps and mosaic map tiles. This change appears to be working smoothly for small maps (<2k) and for large maps (>16k). However, I have noticed some infrequent odd behaviour when using intermediate map sizes (2k-8k), which corresponds to a size range where L3DT has, since v11.08, used a memory mapped file to load and page map data. I suspect this won't be too terrible to sort out, but if problems persist, I'll just disable the memory mapped files and either use the scanline-based all-in-RAM maps for larger map sizes, use the conventional disk-paged mosaic maps for smaller map sizes, or some combination of the two. We'll see how that goes.

The other problem of using L3DT under high system memory load is the trickier one to test, as it requires the generation of huge datasets (circa 32k x 32k pixels or larger) whilst stating and stopping other memory-intensive applications, just to see if L3DT chokes or sheds memory and suspends threads as it's supposed to. I'm not entirely convinced it's all working perfectly yet, so lately I've been running big multi-day map builds and batches to see if I can provoke or reproduce errors. [Incidentally, I've improved the batch system to be slightly more intelligent and user friendly, but more on that later, if I remember.]

Anyhow, the take home message is that I intend to be testing and tinkering for a couple of more weeks at minimum. I want to convince myself that the memory management is rock-solid before I let this one out the door.

If you're using the latest developmental build (v16.01 build 3), please let me know if you find any bugs, either by using the forum, or by e-mailing aaron@bundysoft.com.

Best regards, Aaron.

2016/02/25 14:21 · aaron
2016/02/25 14:25 · aaron

November 6

L3DT Standard Edition 15.11 is available!

Hi All,

The free Standard Edition of L3DT v15.11 is now available for download. Although many of the improvements in L3DT 15.11 are only available in the Professional and Torque editions (e.g. performance improvements for extremely large maps), the Standard Edition still benefits from a number of significant upgrades, as listed below:

Sapphire 3D Viewer / Editor

A number of users reported frustration with the mesh optimisation in the Sapphire 3D viewer, which made it very difficult to visualise and control heightfield tools during fine-scale editing. In this release, Sapphire now does a so-called 'brute force' render of the triangles around the brush tool, so that you can see every single raw vertex and triangle that you edit. You can see this in the image below, where dark line-drawn triangles are visible, showing every vertex.

Brute force triangle rendering

The heightfield tool window also now has a new tabbed interface, which allows users to more easily flip between tools and change brush settings. While I was at it, I also added 'strength' settings to all the applicable brush tools, which was a fairly common request.

Tool selection Tool settings

Other little tweaks include the ability to set the movement speed ('Position→Speed', in Sapphire menu), and keys for zooming in and out (PGUP/PGDN) for when you don't have a scroll wheel at hand.

Selected area generation

Over the years, many users have complained, quite rightly, that when editing the design map, it's too difficult to predict what what the final heightmap will look like. Previously, the only way to find out what the heightmap will look like after you edit the design map was to actually generate the full heightmap.

You can of course generate the full heightmap, but that takes a long time, especially for large maps. Worse still, if the heightfield doesn't turn out exactly as you liked, you have to go back and edit the design map, then re-generate the whole heightfield again. This could be a painfully slow cycle on large maps. In this release, you can now select an area of the design map using the select area tool, then select the 'Operations→Heightfield→Preview area from DM' menu option. This will generate the heightfield for just the selected area of the design map.

For example, I have selected the central valley in this design map:

…and then selected the magic menu item…

…whereon L3DT quickly generated the heightmap of only the valley that was selected:

2D 3D (from SW corner, looking NE)

Note that this option also allows you to generate the heightfield at different resolutions, so you can for example generate an extremely fast preview of a selected area (or the whole map) at 1/2 or 1/4 the normal heightfield resolution.

For more information, please have a look at the documentation.

Bug fixes

The major bug fixes in this release related to the usage of memory and CPU in the Professional and Torque editions. There were however an assortment of bugfixes that also applied to the Standard Edition, which you can read about in the release notes. If you find any new bugs or think I've overlooked fixing an old bug, please file a bug report in the forum or by e-mail to aaron@bundysoft.com, and I'll get right onto fixing it.

How to download

To download the update, please visit the downloads page. Please note that both v15.11 and the previous v11.11 are currently available for download, just in case there are incompatibility issues or bugs that require users to temporarily downgrade to v11.11 whilst I fix the problem. Should no problems be identified, I expect to drop v11.11 from the downloads list in a month or two.

What about L3DT Professional and Pro for Torque?

The Professional and Torque editions are not yet officially released and available for download, principally due to the extra documentation that must still be written for the new features. It should all be ready within a week or two, weather permitting, but if you can't bear to wait for the official release, you can head over to the Pro downloads page1) and grab a copy of the latest development build (v15.10 dev build 1). It is exactly the same as L3DT release v15.11, except for the version number.

Feedback & suggestions

Please let me know what you think of the new release. Comments, requests and bug reports are all welcome, as well as suggestions for the next release. Please feel free to make use of this forum thread.

End transmission

Best regards, Aaron.

2015/11/05 11:19 · aaron
2015/11/05 14:06 · aaron

August 30

Bugfix for ZeoGraph

Hi Everyone,

It seems that ZeoGraph has been broken for a little while in the Pro developmental builds. As of today, it is unbroken. Please see v15.08 build 1, which on the Pro downloads page now.

Cheerio, Aaron.

2015/08/29 14:55 · aaron
2015/08/29 14:57 · aaron

July 16

Progress on L3DT 15

Hi Everyone,

It’s been a very long time since I've posted on the progress of L3DT's next stable release. The good news is there have been a lot of bugs fixed recently, and we appear to be on track for a release later this year.

Recent bug fixes

The most recent build, L3DT Pro 15.07 build 2, has fixed what I had considered to be the last of the blocking bugs, specifically:

  1. There was a bug in the mosaic heightfield inflation algorithm that produced empty tiles in the heightfield for specific large map sizes (see bug report by Kulzarn). Surprisingly, this bug had been 'live' and seemingly unreported since 2012, when I added a correction to the heightfield generator to fix an offset with respect to the design map (see here). For heightfields of the order of 50,000 pixels in height or width, a mistake in this correction caused an offset counter to wrap around, resulting in an incorrect coordinate offset that nulled out some tiles.This did not occur at all large map sizes, so perhaps that’s why we’d all missed it until now.
  2. Whilst I was fixing the above bug, I also noticed that when saving mosaic maps at the end of large calculations, L3DT would appear to lock up. It was still running, but the user wouldn’t know that, as the application wouldn’t respond until the save completed, which could have been tens of minutes for large maps. With some digging I realised that this was due to the memory compactor (which runs in the user interface thread) having to wait on a lock held by the mosaic saving algorithm (which runs in a worker thread). Since the user interface thread was stuck and unable to process messages until the save completed, the application would appear to freeze. The fix was to add a flag to abort the memory compactor when long, lock-protected mosaic operations were in progress (mostly saving, exporting). This seems to work nicely, but we really should give it a good run of testing to make sure.
  3. There was a fault in the backup/undo plugin that threw error messages when you use a brush tool. This had been reported sporadically, but could not be reproduced. This time, with a rather late night, some good luck, and most importantly, a log file kindly provided by Kiwi-Hawk, I was able to reproduce, diagnose, and fix the fault. It occurred when the brush radius was larger than 64 and the brush was applied near to the edge of the map, such that the farthest extent of the brush was equal to or more than 64 pixels off the end of the map. Very specific, no?

Status of L3DT 15

With the above bugs fixed, I’m now cautiously optimistic that all the major features of L3DT 15 are now working as intended, including the previously troublesome dynamic memory manager. However, I think it prudent to still run for another few months of community testing to make sure there are no other problems before compiling the release build.

The log of bug-fixes since the last release back in November 2011 is now really huge, so I’d encourage any users still working with v11.11 to give the latest build a try. It should be much more stable and better performing than 11.11, and it will be better still with more users downloading and using it. If you do happen to find any more bugs, please send me an e-mail or post in the forum. Even if it’s only just a little annoyance, I’d love to hear about it. Of course, I am also most grateful to the users who have already reported bugs, especially those who took the time to provide logs or example map files, which have been most helpful in allowing me to reproduce, diagnose and fix bugs.

How to download?

To download this v15.07b2 update, please consult your sales/registration receipt for the download instructions. This is a free update to anyone with a L3DT Pro license purchased since the last release (i.e. after November 2011). If you have an older license, you can always try the new version using a free 90 day trial license.


Cheerio, Aaron.

2015/07/16 12:33 · aaron
2015/07/16 12:43 · aaron

<< Newer entries | Older entries >>

start.txt · Last modified: 2017/08/31 06:35 (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