Landscape LOD generator
C++ Batchfile C
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
game
include
merged
src
.gitattributes
.gitignore
README.txt
REFERENCE_MANUAL-tes4ll.odt
REFERENCE_MANUAL-tes4ll.pdf
Readme-TES4qLOD.rtf
tes4ll.sln
tes4ll.vcxproj
tes4ll.vcxproj.filters

README.txt

Overview
========
This tool creates LOD meshes, color and normal maps based on landscape heightmaps as generated by esp/esm files. Therefore, it can be used to replace the meshes of Oblivion/FalloutNV (Fallout3 is under preparation) including all the additional changes added by landscape and texture mods. 

A configuration file (*.mpb, multi purpose batch file) with a command list allows to control the behaviour of vertex setting and calculation completely, up to the placement of single vertices. The mpb file can be used via the Windows shell (using *.bat's) or in a more elegant way via MPGUI (separate download). MPGUI allows to select options and starts tes4ll.exe, and can be downloaded here: http://www.nexusmods.com/oblivion/mods/41447/?


Author
======
gruftikus@nexusmods, @github, ....


Features
========

* Highly configurable script language with iterators and pattern match search
* Map handling (heightmaps and color maps)
* Import and export od bmp and dds files (based on crunch, see credits below)
* Terrain creation (for testing purpose)
* Equation analyzer (for all kind of calculations and filtering)
* Several scaling algorithms (based on imageresampler, see credits below)
* BSA reader
* Heightmap reader for esp/esm files
* Normal map generator
* Heightmaps with discontinuities and polygon keepouts (e.g. for water planes)
* Several algorithms for vertex densities
* Multi-level quad support
* Exporters to standard mesh files and nif format


Source code and further documentation
=====================================
The source code should be freely available from Github (https://github.com/Gruftikus/tes4ll.git). You can check out the repository and compile tes4ll from scratch. Please follow the instructions on Github.

tes4ll is based on the Landscape and Heightmap Editing Tool and Library (https://github.com/Gruftikus/lltool). 


Version and changelog
=====================
Version 1 (02 Oct 2011):    
              Initial version for Oblivion.

Version 1.01 (09 Oct 2011): 
              3GB flag for larger worldspaces, 
              Crash fixed which appeared when nif meshes were empty.

Version 1.10 (12 Oct 2011): 
              Added option for the pedestals.
              Re-calibrated the x,y-position of the bitmap.
              Removed distance keeper for the contour to the grid.

Version 1.20 (15 Oct 2011): 
              Added option for the data files.
              First data files for some segments (north of Weye, 
              way to Cheydinhal)
              Data file for UL Rolling Hills.

Version 1.21 (16 Oct 2011): 
              Fixed bug.

Version 2.00 (30 Oct 2011): 
              Support for different wordspaces.
              Call TESAnnwyn now internally.
              Support for flags.

Version 2.10 (01 Nov 2011): 
              Added option for tri shapes.

Version 2.20 (06 Nov 2011): 
              Added wall remover.

Version 2.30 (22 Nov 2011): 
              Decreased memory usage by a factor of 2.
              Decoupled "hardcoded" TESAnnwyn and moved its call to 
              the batch file. Added TES4qLOD call to the list of 
              commands.

Version 3.00 (13 Jan 2012): 
              Changed a lot here and there to make tes4ll compatible
              with MPGUI.

Version 3.01 (14 Jan 2012): 
              Fixed missing quotation marks stripping in 
              installdirectory.

Version 3.10 (02 Feb 2012): 
              First release of the normal map version.

Version 4.00 (29 Sep 2012): 
              Integration of Lightwaves TES4qLOD, and partly
              rewritten tes4ll. Got rid of the TESAnnwyn dependency.

Version 4.10 (29 Dec 2012): 
              Added the feature to define polygons, and to stencil
              polygons. Added break lines. Made a lot of code cleanup.
              Improved the speed of the vertex placement by a factor
              of 5-10. Added a remover for hidden triangles.
              
Version 5.00 (27 Dec 2014): 
              Complete rewrite
			  
Version 5.01 (02 Feb 2015): 
              Bugfixes for skipped texture generation and fatal error in 
              write procedure
			  
Version 5.02 (10 Aug 2015): 
              Bugfixes		

Version 5.03 (27 Oct 2015): 
              Bugfix
			  
Version 5.10 (24 Nov 2015): 
              Fallout New Vegas Support
              (required a lot of changes which are listed in more detail on Github)
              
Version 5.11 (06 Dec 2015):
              Reading of geometry by lodsettings and WRLD record
			  
Version 5.12 (13 Dec 2015):
              Rocky filter option
			  
Version 5.13 (15 Dec 2015):
              Fixed "water tower bug" in Fallout NV
			  
Version 5.14 (23 Dec 2015):
              Fixed esp/esm parser bug, improved filter options		  

Literature
==========
* http://en.wikipedia.org/wiki/Monte_Carlo_method

* P. Pourke, "Triangulate: Efficient Triangulation Algorithm Suitable for Terrain Modelling", Presented at Pan Pacific Computer Conference, Beijing, China. January 1989, see link: http://paulbourke.net/papers/triangulate/

* A. James Stewart, "Tunneling for Triangle Strips in Continuous "Level-of-Detail Meshes", Published in: Proceedings GRIN'01

* M. B. Porcu, and R. Scateni, "An Iterative Stripification Algorithm Based on Dual Graph Operations", EUROGRAPHICS 2003

* M. B. Porcu, N. Sanna and R. Scateni, "Efficiently keeping an optimal stripification over a CLOD mesh", The Journal of WSCG, Vol.13

* J. R. Shewchuk, "Triangle: Engineering a 2D Quality Mesh Generator and Delaunay Triangulator", in "Applied Computational Geometry: Towards Geometric Engineering" (Ming C. Lin and Dinesh Manocha, editors), volume 1148 of Lecture Notes in Computer Science, pages 203-222, Springer-Verlag, Berlin, May 1996.


Credits
=======
This program uses the following 3rd party source code:

* niflib: http://niftools.sourceforge.net/wiki/NifSkope
* bmp file reader: written by P. Pourke
* Triangle: by J. R. Shewchuk (see reference above)
* TES4qLOD by Lightwave (taken from http://projectmanager.f2s.com/morrowind/TES4qLOD.html)
* An extensible math expression parser with plug-ins (MTParser) by Mathieu Jacques
* imageresampler, a C++ class for separable filtering 2D image resampling by Rich Geldreich.
* crunch/crnlib, for dds file generation.
* ANN, Approximate Nearest Neighbor Searching by David M. Mount and Sunil Arya


License
=======
Copyright (C) 2011-2015

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see http://www.gnu.org/licenses/.