Released on the 28th of March, 2016 (see announcement)
Note many changes listed here were also included in release v15.11, which was only the (free) Standard Edition.
Modified mosaic caching to use memory less aggressively (target = 70, threshold = 75), to avoid memory allocation problems due to fragmentation.
Yield one core in threaded calculation manager when app is inactive.
Suspend calculation threads when low memory (primary thread remains active, but as many threads are released as required to get below memory threshold).
Warn user when low memory.
Reduced fragmentation by ensuring mosaic memory table does not free a tile just before allocating another.
Modified submap to allocate RAM in non-contiguous scanlines (typically for tiles larger than 513×513, but size may vary without notice.)
Modified Zeolite accordingly.
Updated atConvertWaterToHeight, Sapphire, atCalc_AM_Image, atCalc_MaskOverlay and L3DTio_HFZ to support non-contiguous scanline-based map and tile allocation modes.
-
New HF tool window:
Changed radius→width for Bulldozer, Leveller, and LevelAt
Added tools / settings tabs, with settings list control.
Added radius edit in tool window.
Update window brush radius when using scroll wheel (including inline edit)
Fix focus/foreground/etc to get correct click behaviour.
Range validation, and edit box colouring
-
Added brute force rendering for 3×3 patch of terrain surrounding cursor when in heightifeld editing mode.
-
-
Changed window instance from static to dynamic (new/delete), to prevent errors when destructor is called after API pulldown.
When re-opening window, resume at previous camera position, unless map is different height/width/scale ( see request.)
-
Added ability to set walking, flying speeds, and turbo boost ( see request).
Used CzPointList for storing camera paths and teleport points.
Added rendering of camera paths and teleport points.
Fixed misalignment of HF tool and mouse cursor.
Disabled texture rendering when TX tile size is not divisible by TX res ratio (i.e. tex tile doesn't contain integral number of heightfield pixels.) This change ensures there is no texture streaking.
Add support for detail textures.
Automatically resize texture DDSs to nearest power of two.
Add support for multiple terrain blocks.
Add support for tiled TER files.
Fix 'CzVar::Delete' error in exporter.
Spawn on land if centre of map is under water.
Change T3D material manager to include 'reset' and 'reset all' buttons, which when pressed restore settings directly from L3DT materials, not via alpha map list (this is so that we can change the detail map in an L3DT material and have it reflected in T3D materials without having to re-gen alphas.)
Added explicit splat settings to materials (and material editor), to more easily support export to T3D or other engines.
-
Add zeofunc for custom blending.
Implemented WrapX, WrapY, and WrapXY menu options.
Implemented tile blending menu option.
Added linear regression mode to correct mismatches in tile vertical scaling (includes edge blending too).
-
Implemented asymptotic weighting of blend function.
-
Added support for single-axis tiling.
-
Removed requirement for AM and WM from mask generator ( see request).
Added 'Operations→Heightfield→DesignInflate→DesignInflate64 step by step' option.
Added 'Heightfield.ConvertToU16' filter and 'calc.HF.ConvToU16' functions.
Added 'General.Branch' filter to ZeoGraph
Modified progress display to not be topmost.
Modified atImportMap to support design map.
Modified atImportMap to peek at mosaic type to get name, type, &c.
Modified 'export selected area' option to use export wizard and 'nice' coordinate selection dialog box.
Export wizard was changed from threaded to inline.
Modified 'Import custom map layer' option to peek map name & type when loading mosaic maps.
Modified ' Operations→Heightfield→Resize heightfield' menu option to (optionally) re-calculate the horizontal scale to maintain the same physical map area ( see forum post).
Modified atScriptEditor to allow non-modal script editing, which is now used for new/edit script menu options in L3DT. Also prevents z-fighting with function browser.
Modified HF size wizard to not use UpdateData function.
Added 'Image drape' to toolbar.
Added map long names to image drape window.
Moved 'Extensions→atCalc_AM_Image' menu option to 'Operations→Attributes map→Convert to RGB image'.
Move 'Extensions→atLightMapSequence' menu option to 'Operations→Light map→Generate sequence'.
Modified ' Select area' window to display sizes (in addition to coordinates), and allowed users to type plus sign before x2/y2 coordinates to enter the size (e.g. if x1 = 100, and x2 = ”+200”, then x2 is automatically recalculated as 300, and the size is then displayed as 301, since sizes are inclusive of start and end coordinates).
Add greyscale range export options to bitmap export ( see request, also here.)
Added material name to alpha map XML export ( see request.)
Added G16 file format support for 8-bit images for Unreal alpha map support.
Added 'File→Export→Export to OpenSim' menu option, for saving r32 files with arbitrary sea levels.
-
Re-engineered GetDirectInterface to use non-contiguous memory in CzMap
Re-engineered GetDirectInterface to use non-contiguous memory in CzMapTile
Added void* map_GetScanlinePtr(long j) and void* * map_GetScanlineArray() to core API, for use with non-contiguous submaps.
Added void* tile_GetScanlinePtr(long j) and void* * tile_GetScanlineArray() to core API, for use with non-contiguous tiles.
Added bool map_IsContiguous and bool map_MakeContiguous to core API.
Added bool tile_IsContiguous and bool tile_MakeContiguous to core API.
Modified map_GetDataPtr and tile_GetDataPtr to warn caller if map is non-contiguous, and automatically convert by calling MakeContiguous.
Added zmap_InitMap2 to core API.
Added bool CzMap::AsContiguous and bool CzMapTile::AsContiguous to get maps/tiles as contiguous maps, without converting original map/tile (as with MakeContiguous).
Added 'zeoUnloadAPI' to plugin API, called after shutdown to unload all function handles.
Added 'CzMaterial' wrapper class & functions.
Added map.Init2 , map.GetAllocMode , map.GetTileSize , map.GetTileCountX , map.GetTileCountY , map.GetFormat , format.GetExt (via ZeoWrap).
Fixed mosaic map memory allocation error for 2M x 2M pixel maps ( see bug report).
Fixed coordinate mapping and optimised CMapWrap::ZeroMap.
Modified L3DTio_FI to load 32-bit heightfield PNGs as RGBA ( see bug report.)
Fixed tile cache problem when generating 19-layer alpha maps on 41k x 41k pixel map ( see bug report.)
Fixed deadlock problem when running multi-core calculations (e.g., large light map, seems to occur when compactor is in state 0.)
Fixed bug in L3DT, Sapphire and atAttribBrush, which crashed when sub-unity fractional TX_in_HF values were used ( see bug report). Fixed in L3DT 12.12 build 0 (with new Sapphire & atAttribBrush. Uses new params for calc.TX.GenTile function).
Fixed bug in texture generator that produced undefined output colour when a land type had no assigned material ( see bug report.)
-
Made attributes map brush (and attributes map calc) mark alpha map settings as dirty after edits so that alpha map list can be re-calculated ( see this thread.)
Fix enable state of ' Operations→Design map→Generate from HF' ( see this thread.)
-
-
-
Fixed automatic refreshing of main window after Sapphire closes ( see bug report).
Fixed crash in function browser when re-opening window.
-
Fixed atMergeMap plugin to support virtual mosaic maps ( see bug report.)
Fixed offset in inflation algorithm that caused features in the HF to be shifted 1/2 a DM pixel to the southwest.
Fixed flickering redraw in main window when viewing single map (odd conditions required to trigger this one.)
Fixed CurvFilter and GradFilter to work with irregular sized maps (bug was introduced in v11.11)
Fixed lake flooding for small maps, which was looking for subsampled HF mipmaps that did not exist (now generates subsampled map if required mipmap not found).
Fixed 'mask.LoadMask' filter, which had syntax error in script.
Fixed app (and about box) to get copyright date from compiler build date.
Fixed app to get version number from EXE file info.
Fixed saving of water body list. Was saving with null file name. Is redundant anyhow, as WBL is saved in project, but kept for backwards compatibility.
Modified XML writer to replace non-print characters (<0x20) with '?'. Non-print chars were sometimes in Author field of climate XML files, which then became unreadable.
Fixed plugin error messages with zvar_Delete (was due to SetVarRef clearing parent handle of CVar)
Fixed fault with coordinate range validation in edit record of L3DTio_Backup.
Fixed various bugs in ZeoGraph
Fixed crashing bug in Save project.
Fixed crashing bug in Sapphire when viewing controls PDF.
Fixed parentage of progress box display, so pop-to-top behaviour is now normal.
Fixed 'IsAbsolutePath' function to recognise network drive paths beginning with '\\'.

|