====== L3DT release 2.5 ====== Released on the 20th of April, 2007 ([[bundynews>l3dt:ann:v2.5|see announcement]]) ===== Changes ===== ==== User interface ==== === Tools === * Added heightfield editing tools to [[bundywiki>plugins:sapphire|Sapphire 3D renderer]]. * Added brush size/shape to DM paint tool (last used value is remembered). * Added copy, paste, select all, and deselect area to edit menu. * Added 'Edit->Select area' option (for copy, paste, export). * Enabled water flood tool and water body delete tools for mosaic maps. === Display === * MipMapped main window display, for faster rendering of large mosaics. * Threaded map rendering, with cancel button. * Added view shortcuts (1=DM, 2=HF, etc. '~' for cycle.) * Added 'View->Show map area' option. * Added '3D' toolbar option, for opening the '[[bundywiki>plugins:sapphire|sapphire]]' 3D renderer. === Menu options === * Added 'Operations->Heightfield->Edit heightfield in 3D' * Added 'Operations->Heightfield->Filter (diffusion)' * Added 'Operations->Heightfield->Fractal inflate' * Added 'Operations->Alpha maps->Alpha express' * Added 'Operations->Design map->Resize design map' * Added all installed climates to 'climates' menu, allowing direct edit. === Other === * Added more [[l3dt:userguide:accelerator|keyboard shortcuts.]] * Made cancel button in progress box turn to 'Really?' button after 1st click, requiring 2nd click. This avoids accidental cancellation. * Added 'Export to Atlas' menu option and dialog (note: requires [[bundywiki>plugins:fileio:l3dt_atlas|Torque plugin]].) * Added move up/down buttons to plugin manager. * Checked for changes in extension dialog before asking for reset. * Enabled wizard presets in standard edition. * Beeps when calc queue is completed (off by default, enabled 'Settings->Local settings', then 'Calc->AutoComplete->BeepWhenDone'). * Remembers last used settings in image drape. ==== Algorithm changes ==== * Improved accuracy of shadow mapping with light divergence & multi-casting (L3DT Pro only). * Allowed re-sizing of mosaic heightfield. * Added stronger heightfield erosion. ==== Parallel multithreading ==== * Created thread manager. * 'Basic' parallel multithreading: * calc_LM_lighting --- //to be revised in v2.5a// * 'Better' parallel multithreading (via threadman): * calc_TN_GenMap * calc_TX_GenMapPro * Used CCriticalSection lock for Get/SetPixel in CMosiacMap when tile allocation is changed. * Used CCriticalSection lock for loading of textures/bump maps in CTexLayer (needs more testing). ==== File I/O ==== * Made re-size on export create a temp mosaic (uses less RAM.) * Added option to nuke temp directory on close ('Local->File->DeleteTempDirOnExit') - on by default. * Switched L3DT's temp dir to subdir of TEMP environmental variable (by default, can be changed). * Made option to force MinAlt/MaxAlt in HF image import to apply to 0->255 greyscale range, rather than Imin->Imax range from image. Option is at '//Settings->Local settings->File->Import->Image->UseGreyscaleRange//'. * Allowed other file types to open from MRU (RUN, DEF.XML, HFF, etc - like proc cmd line). * Changed summary file extension back to HTML. * Removed RLE from WMF. * Re-used WMF for TWM (//that's one less format!//) * Removed mosaic sub-sample code (replaced by mipmapping). * Added georeferencing support for BT and HF2/HFZ formats. ==== Bug fixes ==== * Debugged prog display on erosion routine for odd sizes (256x163 design maps, with mosaic HF tile size of 1536.) * Fixed bug in resize code that called GetMinMaxScale on non-HF/WM maps ([[http://www.bundysoft.com/phpBB2/viewtopic.php?p=2202#2202|see thread]].) * Fixed overlay of plateaux on map edges. * Fixed resizing of non-square maps. * Fixed path handling when land type textures are on a different drive. * Fixed displayed map size in light/texture wizards. * Fixed lininterp pixel access in shadow calc ([[http://www.bundysoft.com/phpBB2/viewtopic.php?t=391|see this post]]). * Fixed high-res mipmapped drape (thanks: Leon.) * Fixed preservation of extents HF resizing (was preserving scaling instead.) * Redraw design map after 'Operations > Design map > Generate from HF' * Fixed mip-map bounds checking in CMapWrap::SetPixel. * Fixed tool view-mode checking (DM, WM, etc.) * Fixed split to mosaic. * Fixed bug in mosaic wizard pane (see [[http://www.bundysoft.com/phpBB2/viewtopic.php?t=401|this thread]].) * Debug atFilterAM on climates other than temperate. * Add more hacks to make mosaic HF/WM work in L3DTVi2. * Fixed offset and null x-max, y-max edges in import DM. * Fixed refresh DM of when using design map schemes dialog. * Fixed DM resize ([[http://www.bundysoft.com/phpBB2/viewtopic.php?t=445|see this thread]]) * Fixed shadow offset with high-res normals/light-map. * Fixed slow speed when generating AM with a DM ([[http://www.bundysoft.com/phpBB2/viewtopic.php?p=2973#2973|see this post]]) * Fixed incorrect climate selection when no AM present ([[http://www.bundysoft.com/phpBB2/viewtopic.php?p=2973#2973|see this post]]) * Fixed black lines in light map/texture ([[http://www.bundysoft.com/phpBB2/viewtopic.php?t=508|see this post]]). * Fixed alpha layer depth selection in L3DT SE. * Fix bump-mapping of flat terrain (thanks Ryan!)((Note to self: this is papered over; bug still occurs in matrix transform.)) ==== Other ==== * Moved settings to %APPDATA% (for non-admin privileges) . * Made settings more easily transferable between versions. * Added logfile link in start menu. * Added shell file associations for PROJ, MMF, ZEO, HFF, HF2, HFZ, TER (optional), BT (optional). * Made 'L3DT for Torque' version. ==== Plugins ==== === API === * Allowed plugins to add functions to L3DT. * Allowed plugins to add menu options to L3DT. * Allowed L3DT to dynamically add zeolite functions. * Added ExtGetApiVersion to CExtAPI.h. * Added various API functions (see [[zeolite:changes|change log]].) * Caught exceptions thrown in plugin functions. * Removed MFC dependence of CExtAPI (not derived from CObject, doesn't use AfxMessageBox) * Threading: * Allowed plugins to call zeofuncs in worker threads, using [[zeolite:functions:zeofunc_ExecuteThreaded]]. * Allowed plugins to determine whether their menu items should fun in threads, using [[zeolite:functions:menu_InsertItemEx]]. * Made VarID_Climate, VarID_LandType and VarID_vector3f editable by var_EditUI === C++ wrapper classes === * CzVar * CzList * CzStr * CzMap * CzFormat * CzComboSel * CzProgBox * CzBuffer * CzFunc * CzColour === File format plugins === * [[bundywiki>plugins:fileio:L3DT_Atlas|L3DT_Atlas]]. * [[bundywiki>plugins:fileio:L3DTio_FI|L3DTio_DMF]] * Made mosaic-compatible (for mipmapping.) * [[bundywiki>plugins:fileio:L3DTio_FI|L3DTio_HFF]] * Fixed scale checking in LoadMapFile/LoadTileFile (allows zero range.) * [[bundywiki>plugins:fileio:L3DTio_FI|L3DTio_FI]] * Update for TGA. * Fixed byte ordering on DWORD/RGBA maps (FI assumes BGRA, apparently.) * Fixed colour-mapped AM. * [[bundywiki>plugins:fileio:L3DTio_TER|L3DTio_TER]]. * [[bundywiki>plugins:fileio:L3DTio_HFZ|L3DTio_HFZ]]. * [[bundywiki>plugins:fileio:L3DTio_RAW_HF|L3DTio_RAW_HF]]. * [[bundywiki>plugins:fileio:L3DTio_BT|L3DTio_BT]]. * [[bundywiki>plugins:fileio:L3DTio_WMF|L3DTio_WMF]]. * [[bundywiki>plugins:fileio:L3DTio_AMF|L3DTio_AMF]]. * [[bundywiki>plugins:fileio:L3DTio_PCX|L3DTio_PCX]]. * [[bundywiki>plugins:L3DTio_WMPRO|L3DTio_WMPRO]]. === Calculation / other plugins === * [[bundywiki>plugins:Sapphire|Sapphire]] rendering/editing plugin. * [[bundywiki>plugins:atExportToTV3D|atExportToTV3D]]. * [[bundywiki>plugins:general:CopyPaste|CopyPaste]]. * [[bundywiki>plugins:general:atGrowTilesByOne|atGrowTilesByOne]]. * [[bundywiki>plugins:calc:SphericalDistort|SphericalDistort]]. * [[bundywiki>plugins:general:atExportArea|atExportArea]]. * [[bundywiki>plugins:calc:atFilterAM|atFilterAM]]. * [[bundywiki>plugins:general:atFuncBrowser|atFuncBrowser]]. * [[bundywiki>plugins:calc:atLightMapSequence|atLightMapSequence]]. * [[bundywiki>plugins:calc:ZeoScript|ZeoScript]]. * Updated [[bundywiki>plugins:general:atExportArea|atExportArea]] to work with mosaics. * Updated [[bundywiki>plugins:general:atGrowTilesByOne|atGrowTilesByOne]] to work with non-mosaics. === Installation === * Allowed plugins to be installed by drag-n-drop on L3DT icon (parse shell commands). * Allowed plugins with '.zeo' extension to be installed by double-clicking (shell file association)