L3DT documentation
Large 3D terrain generator

Development plan: release after next

Due date: 2015.

ZlibWrap

  • TODO Add support for inflate/deflate.

ZMAP

  • TODO Benchmark loading/saving/size against HFZ, PNG, JPEG.
  • TODO Make default for DMF, AMF, and relevant aux maps.
  • DONE Add fully-described design map support (climate list, DM gen params, HF gen params, etc.), to permit direct import (see request).
  • DONE Removed codec option in exporter; always use best.
  • Support codecs:
    • DONE RAW for all map types.
    • DONE RAW+ZLIB for all map types.
    • DONE DIFF+ZLIB for HF.
      • TODO Perform range checking to make sure we don't clip with outrageously steep terrain.
    • TODO (HF2+Aux)+ZLIB for WM/AuxWM.
    • TODO JPEG for RGB maps?
  • DONE Added 'file.ZMAP.PeakHeaderA' function to ZMAP
    • DONE Used 'PeekHeaderA' to allow 'import map layer' to determine map type and map name.
    • DONE Used 'PeekHeaderA' to allow cmdline / open wizard to determine map type and map name.
  • DONE Added full mosaic support.
  • DONE Make loader work with partially unfilled edge tiles.
  • DONE Check DM settings in exporter when exporting sel area.
  • DONE Add progress bars for regular file I/O.
  • DONE Added file association in exporter.
  • TODO Modify L3DTio_Backup to use non-mosaic ZMAP exclusively.
  • TODO Add to ZMESH for textures & bump maps.

ZPROJ

  • DONE Implemented L3DTio_ZPROJ, to permit import/export of packed project files.

ZCLI

  • TODO Create ZCLI, for bundling climates, materials and textures for exchange.

Zeolite API

  • TODO Use shared struct to load all API function handles in one go, to speed up plugin loading.

Script-defined wizard panes

For use with custom algorithm panes. Algorithm specifies panes required (HFSize, <custom page>, etc.)

  • TODO Add algorithm installer.

Generalised batch system

  • TODO Support processing files, not just generating new maps (see request.).
  • TODO Add ability to select multiple input files in UI for processing.
  • TODO Add ability for scripts to perform entire processing routines.

Update manager

  • TODO Modify/test zURL with background thread downloads for binary downloads.
  • TODO Add binary download link to RSS items (always via download gateway).
  • TODO Download updates for L3DT Standard.
  • TODO Download updates for L3DT Professional, with key validation.

Mesh decimator

  • TODO Add 'null' format option to mesh exporter to permit test exports with texcoords but no output images (see request).
  • TODO Implement CSV→mesh converter for loading simple objects in Sapphire (see request).
  • Optimise, optimise, optimise!
    • TODO Make MeshExport option copy selected area mesh before opening dialog, so that the dialog can ignore selection on the un-tiled meshes
    • TODO Use a persistent decimator for un-tiled heightmaps in mesh exporter (requires un-tiled data to use same map (sel area or no), and; remember to reset data when changing tile state/size, as this will change variances &c)
  • File format support:
    • TODO B3D
    • TODO TIN
    • TODO Remove map layer mosaic export flags for formats.
    • TODO Update installer's formats.ini.xml entries for new flags.
  • Do reverse winding of faces automatically for 'XZ plane' in:
    • TODO B3D
    • TODO TIN
  • TODO Add ZFUNCs for new export options, including UI-less option.
  • TODO Add matching coordinate system behaviour in mesh importers.
  • TODO Add detail map exporter (see request.)

Automatic road generation

  • TODO Mark WM, WS, AM, TN, LM, LM_spec, TX, etc. as invalid after applying roads (and HF as changed).
  • TODO Provide progress grid display
  • TODO Check support for multiple waypoint roads.
  • TODO Add mouse support for creating / deleting / renaming points in 2D.
  • TODO Add mouse support for creating / deleting / renaming points in 3D.
  • TODO Store road paths in project path list.
  • TODO Add interface for deleting paths in list.
  • TODO Display paths in Sapphire.
  • TODO Apply roads to attributes map (or 'AM_culture' map).
  • TODO Add 'undo' support (using edit record in atRoads?)
  • TODO Add curved road support to handle turns.
  • TODO Create PointManager DLL, with dialog for creating, importing, exporting, &c points and paths in the project list.

Optimisations

  • Multithread:
    • TODO Channelling erosion :!:
    • TODO Water table flooding (use four threads to raster simultaneously).
    • TODO Alpha calculation.
    • TODO Perlin generator.
  • TODO Revise atCalc_AM_image to use direct access writing of AMimg (requires mipmap update).
  • TODO Fix multithreading in atCalc_AM_image, which was disabled b/c it caused crashes.

Zeolite plugin API

  • TODO Document API (ongoing!).
  • TODO Allow plugins to set menu states, bitmaps, etc.
  • 'Direct' interface for in-RAM maps
    • TODO Write extensive list of warnings in docs.
    • Implement in plugins:
      • TODO L3DTio_HF2 (for large maps &c)
      • TODO Sapphire
      • TODO atCalc_AM_Image
      • TODO atCalc_FFT
      • TODO atSpherialDistort
    • TODO Retrofit into L3DT core.

3d anaglyph rendering

  • TODO Implement in Sapphire viewer.

Tools

  • TODO Modify status bar to include water height / depth when viewing the water map (see request.)
  • TODO Added radius edit/spin control to heightfield brush (see request).
  • TODO Add curved bulldozer brush.
  • TODO Add pathfinder brush.
  • TODO Modify design map brush to allow users to change scheme during editing (see link).

Pending requests

  • TODO More heightfield display options (see request).
  • TODO Add automatic beach generation (see request).
  • TODO Add vertical scaling to merge import (see see this thread.)
  • TODO Update 'export type list' option to include colour and bump map texture (see request).
  • TODO Fix unoptimised north/east edges in atMeshDecimator (see request, and possible fix).
  • TODO Support wrapping in perlin maps (see request).
  • TODO Add SunBurn TER import/export support.
  • TODO Add low-pass filter for heightfield (see request).
  • TODO Write script to bake water surface map on to texture map (see request).
  • TODO User-defined grid overlay in display, and T3D region exporter for single and multiple files (see request).
  • TODO Limited 'export selected area' option for Torque TER, where users set west & south extents, and then pick tile size (256, 512, 1024, 2048, etc.), before running regular TER exporter (see request).

64-bit version

  • DONE Compile 64-bit version of L3DT Pro.
  • TODO Compile 64-bit version of L3DT Pro for Torque (requires 64-bit Ignition lib).
  • DONE Recompile plugins for 64-bit.
  • DONE Modify installer for 64-bit.
  • TODO Test and debug everything.

Plugins

LibJPEG plugin

  • DONE Add reader / writer / mosaic support.
  • TODO Verify InvertY and Quality options.
  • TODO Benchmark.
  • TODO Add WM support (export only).
  • TODO Build x64 version.
  • TODO Include in installer, and formats ini.

libtar plugin

  • TODO Bundle whole climates (with materials and textures) as '.cli.tgz' files to permit easy distribution.

File I/O plugins

ZeoScript

  • TODO 'sgetc' and 'sputc', plus str[0] and list[0] notation.
  • TODO Add 'import' keyword to include namespaces.

ZeoGraph

  • New filters:
    • TODO Switch (running selected downstream path based on cur value).
    • TODO ColourMap.ConvertToHF
    • TODO ColourMap.ConvertToGreyscale
    • TODO ColourMap.Balance (takes R/B/G offset/scale values)
    • TODO ColourMap.Gamma (takes R/B/G values)
  • TODO Add ability to export whole graphs as macro filters (called '.zmacro' file), using special import/export pins.
    • TODO Demonstrate using complex script in graph as a filter.

Spring plugin

Other plugins

  • DONE Added ZlibWrap plugin, for zlib compression/decompression.
  • TODO Add T3D plugin extension func for generating material map (for scripting).
  • TODO Add a plugin for packing and unpacking whole climates, materials and dependencies (probably as .7z archives).
  • Update L3DTio_TIFF:
    • TODO GeoTIFF UTM handling.
    • TODO Exporter.
    • TODO Mosaic handler.
  • Update atFuncBrowser:
    • TODO Add search option.
  • TODO L3DTio_DMZ (compressed data file), to replace WMF/DMF.
    • TODO Square func.
    • TODO Normal calc func.
    • TODO Remove calc from L3DT core.
    • TODO DM filtered func.
    • TODO Remove calc from L3DT core.
  • TODO atMipManager, for managing mipmaps of project maps (see this thread).
  • TODO Update Spring plugins to store settings in 'spring.ini.xml', which is stored in 'all versions' settings.
  • Updated plugins to use new menu contexts.
    • TODO L3DTio_Spring (FIXME: update plugin page)
    • TODO atExportToTV3D (FIXME: update plugin page, download package)
    • TODO L3DTio_WMPro (FIXME: update plugin page, download package)
    • TODO atTcpSock, zChatClient, atNetClient, atNetServer (FIXME: update plugin pages)

User interface

3d anaglyph rendering

  • TODO Implement in Sapphire viewer.

Alpha maps in Calc wizard

  • TODO Add alpha maps checkbox to calc wizard; enabled if AM is generated, and disabled if DM/HF/WM/AM are being modified.

Script Editor

  • TODO Rebuild with Scintilla.

Walkthrough tutorial

  • TODO Rebuild with WebKit or similar.

Unified project load/save progress

  • TODO Implement a single project-wide progress control that is passed to all load/save operations when loading or saving a project, so that there's no flicker of several progress dialogs.
  • TODO Add a cancel button.

Update manager

  • TODO Add option to download update installers (requires version numbers in update feeds).
  • TODO Add option to download plugin updates.

Script-defined menu options

  • TODO Add support in Zeolite zmenu_AddItem/etc for OnUpdate callbacks.
  • TODO Add support for menu item bitmaps.

Unified resource manager

  • Apply to:
    • TODO Materials
    • TODO Overlays
    • TODO Climates
    • TODO etc…
  • TODO Create tabbed tabbed resource manager window for the above.
    • Tabbed window will speed up work involving both climate and material editing.

Tools

Design map tools

  • TODO Deprecate DM scheme editor; use preset official schemes instead.
  • TODO Implement in 3D viewer (?)
  • TODO Add 'sample' button, like with AM/TX brush (see request).
  • TODO Blur brush for design map.
  • TODO Eyedropper and palette modes for DM tool.
  • TODO Enable new atDesignBrush plugin, to replace old 'design map brush' tool.
  • TODO Update user guide.

Heightfield tools

  • TODO Thresholded smoothing tool, to smooth only terrain with a gradient greater than X (see request.)
  • TODO Finish 'Sculptor' tool window for Sapphire, to replace current (terrible) HF tools window.
  • TODO Use 3D HF brushes in 2D interface.
  • TODO Blending brush tool, to blend from one heightfield to another.
  • TODO Allow HF tool to edit other float maps.

Selected area

  • TODO Mask application area of all brush tools using 'select area' tool (see request.)
  • TODO Allow selected area to mask brush application; preventing tools from bleeding outside selected area.

Other tools

  • TODO Use edit button on toolbar to bring focus back to brush tools, rather than toggle open/close (see request).
  • TODO Add brush tool for WORD maps.
  • TODO Disable application pop-to-top when editing HF brush settings.
  • TODO Square + Spraycan brush modes for BYTE, WORD, 24bit, DWORD maps.

Sapphire

  • TODO Document path recording / playback.
  • TODO Fix clip distance range checking (see post.)
  • TODO Implement wrapping and mirrored wrapping (see request).

Sapphire

User interface / tools

  • TODO Add hotkey for sampling altitude under mouse cursor and applying to current tool.
  • TODO Enable the 'select area' tool in Sapphire (this requires L3DT to handle selected areas across different maps).
  • TODO Add alpha map painting in Sapphire.
  • TODO Add fluvial erosion brush in Sapphire.
  • TODO Add interface for changing brush diameter in Sapphire.
  • TODO Add interface for changing strength of raise/lower brushes.

Renderer

  • TODO Disable backface rendering on CsMesh objects, unless object is transparent, or flagged to use backfaces.
  • TODO Add static mesh renderer option, using atMeshDecimator.
  • TODO Add brute force renderer option (see request).
  • TODO Resolve transparent mesh object render order issue with water map and army man.
  • TODO Fix 'out of memory' event in ROAM patch allocation on large heightfields.
  • TODO Debug ultra-large textures in Sapphire (see request).

Extension features

  • Add extension functions for:
    • TODO Setting callbacks.
      • TODO OnLButtonDown/Up/DblClick
      • TODO OnRButtonDown/Up/DblClick
      • TODO OnChar/OnSysKey/etc
      • TODO OnMouseWheel
      • TODO BeginFrame/EndFrame
      • TODO ObjBeginRender/ObjEndRender
    • TODO Get/set cursor mouse position.
    • TODO Projecting and unprojecting.

Geometry

  • Convert to have base class of CsMesh, with quadric-like generation method:
    • TODO CsSphere (as a mesh: ??)
  • Add vertex normals to primitives:
    • TODO CsCone
    • TODO CsSphere
  • Test CsMesh in following modes:
    • TODO GL_LINES
    • TODO GL_LINE_STRIP
    • TODO GL_LINE_LOOP
    • TODO GL_TRIANGLE_STRIP
  • TODO Add virtual IsVisible() method to CsObject, to exclude invisible objects.
  • TODO Add colour coordinate support to CsMesh
  • TODO Set scene lighting to match light settings in L3DT light map.
  • Convert to have base class CsBox:
    • TODO CsSkybox
  • TODO Object matrix maths, for nested objects. — done already?
  • TODO Add 3D markers for teleport points (transparent cones with axes shown.)
  • TODO Add 3D trees (and grass?)

File I/O

Importing attributes maps

  • TODO Add AM importer extension functions, for UI-less use.
  • TODO Add AM import overlay (see request).
  • TODO Add AM import from alpha maps.

Other file I/O changes

  • TODO Create dedicated JPG and PNG plugins to avoid mem issues.
  • TODO Add PRJ file importer/exporter so that ASC plugin can correctly read georeferencing coordinates / modes / etc.
  • TODO Add support for EXR file format (see request).
  • TODO Add export WM as TIN to VTP plugin.
  • TODO Add 'origin at centre' option for X and OBJ plugins.
  • TODO Clone formats for new project maps.
  • TODO Export selected area for Atlas. (umm…may not work; atlas maps must be powers of two in size.)
  • TODO Add 'Local settings→File→Export→Image→SpanGreyscaleRange' option to match import (see request).
  • TODO Make mosaic maps default in HF, AM, TN, LM and TX wizard presets.
  • TODO SHP support for rivers, roads, etc.
  • TODO Export land type textures along with alpha maps.
  • TODO Implement mosaic georeferencing (see request).

Spring support

  • TODO Added s3o and DDS files for an object to installer.
  • TODO Add example map definition to Spring tutorial.
  • TODO Import SMD option.

Bug fixes

Linux compatibility

  • TODO Fix toolbar display in Sapphire (is over-rendered by window).
  • TODO Fix texture rendering (cannot get AM pixel in TX_GenTile for L3DT SE).
  • TODO Fix SD7 export in Linux.
  • TODO Fix resource path problems (see this thread.)
  • TODO Fix material image preview.

Other bugfixes

  • TODO Fix alignment of drape when zoomed (see this thread).
  • TODO Fix water mapping bug (see this thread).
  • TODO Fix light mapping bug (see this thread).
  • TODO Modify L3DT/ZeoGraph so that InitProject is not called from worker thread (it triggers breakpoint in debug mode due to SetTitle calls, etc.)
  • TODO Fix GeoTIFF plugin so that it loads plain TIFFs too.
  • TODO Fix resampling offset (see this post).
  • TODO Investigate dup borders option (see this thread, a bit down).
  • TODO Fix zoom weirdness in main window display when map size changes (see this post).
  • TODO Fix busy flag when cancelling mipmapping/rendering.
  • TODO Fix black rendering of first tile in main display (see this post).
  • TODO Fix shadow-casting to take into account LM res when setting near-distance casting cutoff.
  • TODO Correct lightmapping at 1x resolution (it's different to 2x, 4x, 8x, 16x, etc).
  • TODO Fix LM/HF = 31 bug (see this thread).
  • TODO Fix 'hung thread' bug (see thread)
  • TODO Fix bug in WMF plugin that gives “CL3DTio_WMFApp::LoadTileFile error - mismatch in horiz scale (ignoring file value)” error when loading large mosaic maps (via e-mail from Leon).
  • TODO Fix dodgy frustum test in Sapphire (see forum thread).
  • TODO Fix autoexit bug (infinite loop?) when exiting material, climate managers (only affects some users).
  • TODO Fix unrecoverable minimisation of Sapphire when L3DT is minimised (see this thread).

Documentation

  • TODO Fix design map brush documentation, which links to DM algo page for DM params (including 'feature scale', which isn't avail. in brush) (see request).
  • TODO Provide index of climates with screenshots (see request).
 
l3dt/plan/plus_one.txt · Last modified: 2014/06/03 06:30 by aaron
 
Except where otherwise noted, content on this wiki is licensed under the following license:CC Attribution-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki