A C++ library to generate two-dimensional terrain heightmaps for software rendering or video games. HighMap is the core solver of the Hesiod GUI.
Warning
Work in progress, use at your own risk!
This project is licensed under the GNU General Public License v3.0.
pyHighMap allows you to use a few functionalities (for now) of HighMap directly in your Python projects.
pip3 install pyhighmap
Use git
to retrieve the sources:
git clone git@github.com:otto-link/HighMap.git
cd HighMap
git submodule update --init --recursive
Build by making a build directory (i.e. build/
), run cmake
in that dir, and then use make
to build the desired target.
Example:
mkdir build && cd build
cmake ..
make
Simple examples are provided for most of the functions, for instance:
bin/./ex_noise_fbm
eog ex_noise_fbm_*.png
Use PowerShell
to clone the repository (because Visual Studio won't clone the submodules) using git
command lines (see above).
Install the missing OpenSource dependencies using vcpkg
:
vcpkg install libpng glm ocl-icd-opencl-dev assimp opencv
You should then be able to build the sources using Visual Studio.
ToDo.
- Heightmap generation and alteration
- procedural noise (Perlin, fractal...)
- controlled generation
- terrain surface from a set of points (thinplate interpolation)
- terrain surface from a sketch / splatmap
- pointwise modifications
- Physics-based mechanisms
- erosion / deposition
- thermal
- hydraulic
- sediment deposition
- wind
- hydrology
- surface water system (stream and pool maps)
- downcutting (vertical erosion of stream's bed or valley's floor)
- heightmap fixing to ensure unbroken flow streams
- snow deposition
- ice floe
- lava/glacier viscous flow
- erosion / deposition
- Biomes
- micro-climate
- dominant wind
- precipitation map
- snowfall map
- sun exposure
- soil type
- vegetation (flora)
- animals (fauna)
- micro-climate
- Object automatic placement
- rocks, boulders, cliffs...
- trees
- cities
- Anthropic features
- roads / paths
- communication network
- path/road digging and leveling
- cities
- ground leveling
- inner structure (streets)
- agriculture
- roads / paths
- UI
- splatmap generation
- multiscale terrain class
- gateways to Unity, Unreal Engine...
- Performances
- distributed / tiled computation
- multithreading