L3DT development blog
Large 3D terrain generator

News for March 2009

March 17

Design map brush update

Hi Everyone,

In the latest developmental build of L3DT Professional (v2.7.0.2, dated 16th of March 2009), I have re-designed the design map brush. In previous releases, it was a huge tool window containing no less than 28 controls, buttons, sliders, etc. It took up a lot of screen real-estate, and wasn't particularly easy to use.

:l3dt:2009:mar:dmbrush_old.png
The old 'all at once' design map brush

In the new build, the design map brush only shows you the controls for one layer at a time. For example, below left shows the tool layout for editing the design map altitude layer, below middle shows the layout for editing the erosion layer, and below right shows the layout for the special type layer. Note how the controls in the window change to give you only those that are appropriate for the layer being edited.

:l3dt:2009:mar:dmbrush_new.png :l3dt:2009:mar:dmbrush_new2.png :l3dt:2009:mar:dmbrush_new3.png
Altitude layer Erosion layer Special overlay layer

As an added bonus, this tool also now automatically selects the appropriate design map display scheme for the layer being edited. For example, when you're editing the altitude layer, it will use a greyscale scheme to show just the design map altitude, and when you're editing the cliffs layer, it will use a scheme that shows the cliffs mask layer of the design map.

If you prefer the old design map brush tool, you can revert by opening the extension manager and disabling the 'atDesignBrush' plugin. However, at some point in the future I will remove this old brush code. Thus, if you prefer the old brush or would like to see some changes in the new tool, please drop by the forums and let me know. Otherwise I'll just keep doing what I'm doing…

Cheerio, Aaron.

2011/01/13 07:35

March 9

Version 2.7 dev build 1

Hi All,

The first new developmental build of L3DT Professional following release 2.7 is now available on the Pro downloads page1), and is entitled v2.7 dev build 1. This release includes some improvements to the Sapphire 3D renderer (UI tweaks, faster lighting calc, some minor bugfixes), but the major change is the vastly improved shadow ray-casting algorithm that I blogged about last month. I've tested the improved raycast algorithm against that included in release 2.7, with the following results:

  • At 45 degrees sun elevation, the new build was 3.4 times faster.
  • At 30 degrees sun elevation, the new build was 7 times faster.
  • At 15 degrees sun elevation, the new build was 30 times faster.

Taking the example of the 15-degree sun angle above, a calculation that took 40 minutes in release 2.7 now takes only one minute and twenty seconds in this dev build. That's a huge improvement! The implications of this change are pretty clear: If you update to the latest dev build, you'll be able to save substantial amounts of time in map building.

For the sake of completeness, I include the calculation times for the benchmarking tests between release 2.7 and the new dev build in the chart below:

l3dt:2009:mar:shadowcalctimes.png

[These figures represent the total time taken to generate a 4096×4096 pixel shadow map for a 1024×1024 pixel heightmap, using 512×512 pixel mosaic tiles and an Intel Q6600 processor, over a range of sun elevation angles.]

Happy ray-casting!

Cheerio, Aaron.

2011/01/13 07:35

March 3

Vale 'global' plugins

Hi All,

Quite some time ago, a user requested an easy way to share plugins across different versions of L3DT. The idea was to make it possible to install a plugin once, and then use it thereafter in all subsequent versions of L3DT. Quite a reasonable idea [although, hindsight shows it was not a feature users ever touched. But that's beside the point…]

The approach I took to making these shared plugins was to have two classes of plugins, 'local' and 'global'. Local plugins would only be installed for each specific version of L3DT, whereas 'global' plugins would be stored in some agreed place that was accessible to all installed versions of L3DT. You could toggle a plugin to be local/global using the 'make global' / 'make local' toggle button in the extension manager. When you did this, the plugin DLL would be moved from (or to) your current L3DT version's local plugin directory, which was something like:

C:\Program Files\Bundysoft\L3DT [version]\Extensions\

…to (or from) L3DT's global plugin directory, which was something like:

C:\Documents and Settings\[username]\Application Data\Bundysoft\L3DT\Extensions\

This system worked OK, up until the arrival of Vista. With Vista, any program requires administrative privileges to touch anything stored under 'Program Files' because any program that can play around with DLLs in 'Program Files' can replace a legitimate DLL with a malicious Doppelgänger. This obviously creates a problem for the global/local plugin idea, as L3DT won't be able to shuffle the plugins around without first having admin rights. L3DT is a terrain generator, it's not an antivirus program, a system restore tool, nor a network configurator — it shouldn't ever need admin rights! Vista's more strict security policies also highlighted the other problem with the local/global plugin idea: Any DLLs stored outside of 'Program Files' (e.g. the global plugins stored in your profile) having no such UAC protection, are thus easy prey for hacking by non-admin processes.

So, in conclusion, the previous implementation of 'global' (shared) plugins was unworkable in Vista unless L3DT was granted admin rights, and if L3DT was granted admin rights, it was then potentially unsafe. Thus, the 'global' plugin feature has been removed from the next release, and all plugins hereafter will always be stored under 'Program files', and thus safely under Window's aegis.

Cheerio, Aaron.

2011/01/13 07:35
1) Please refer to your reg/sales receipt e-mail for the link
 
l3dt/2009/mar.txt · Last modified: 2017/08/31 06:33 (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