Skip to content

Authors' implementation of the Eurographics 2025 State of the Art "Terrain Descriptors for Landscape Synthesis, Analysis and Simulation"

License

Notifications You must be signed in to change notification settings

oargudo/terrain-descriptors

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Terrain Descriptors for Landscape Synthesis, Analysis and Simulation

Teaser

Terrain Descriptors for Landscape Synthesis, Analysis and Simulation. Oscar Argudo, Eric Guérin, Hugo Schott, Eric Galin. Eurographics 2025 State of the Art. Authors' implementation.

Abstract: Synthetic landscape generation is an active research area within Computer Graphics. Algorithms for terrain synthesis and ecosystem simulations often rely on simple descriptors such as slope, light accessibility, and drainage area. Typically, the results are assessed from a perceptual standpoint, focusing primarily on visual plausibility. Other fields, such as Geomorphology and Earth Sciences, have already proposed several analytical descriptors to measure various terrain properties. This work aims to bridge the gap between these disciplines and Computer Graphics. We provide a comprehensive review of commonly used terrain metrics that may be relevant for landscape synthesis, analysis, or simulations. Additionally, we compare the approaches used in Computer Graphics to see if these metrics, or similar ones, have already been introduced. Moreover, we report feedback from a preliminary study conducted with a group of artists to evaluate the potential applications of previously unused metrics. By implementing all these metrics, we enable performance comparisons. Together with the provided correlation matrix, this helps identify instances where a simpler and faster metric can serve as a proxy for a more computationally intensive one.

Description

The goal of this project is to serve as baseline implementation of the different descriptors included in the survey. This is the application code we used for testing, image generation and timings.

Most of the metrics are defined in the HeightField class. Their implementations are split across a few .cpp files (heightfield-metrics-XXXX.cpp), roughly organized according to the sections of the survey. River and ridge networks, along with a metrics that use them, are implemented in the helper class TerrainAnalysis. Example usages of the metrics from the UI parameters can be found in mainwindow-draw-metrics.cpp.

The terrain used in most of the figures of the paper is Alps: Mont Blanc, derived from SRTM-3 data. The default values of the various UI widgets have been set accordingly. You can load one of the preset terrains or import your own, either in PNG or ASCII grid format. After loading, you can scale the terrain to match the desired resolution, spatial extent or elevation range. Other modifier buttons include filling or breaching the terrain to enforce a consistent drainage network, and Gaussian smoothing, implemented for testing purposes.

Some metrics (such as visibility) can take a long time to compute and the application might appear unresponsive during this time, as all code runs on the UI thread. For this reason, some input fields have callbacks that update the terrain metric texture dynamically, while others require reselecting the metric name to manually trigger the update.

Note that we often prioritized simple and illustrative implementations that closely follow the metric definitions. In some cases, algorithmic optimizations can lead to significant speed-ups (see, for example, the example code using Summed Area Tables for TPI). Additionally, many metrics could be parallelized or implemented on the GPU. This is left as an exercise for the reader :)

Compiling the code

We provide a Qt project file (AppTerrainMetrics.pro) to build the application. It has been tested on the following systems:

  • Windows 11 and Qt 6.3, with both MinGW 11.2 and MSVC2019 compilers
  • Windows 11 and Qt 6.8, with both MinGW 13.1 and MSVC2022 compilers
  • Ubuntu 22.04.5 LTS and Qt 6.9, with GCC compiler

To build the project using Qt Creator, open the .pro file, choose an appropriate kit, configure the project and build. Alternatively, you can use Qt's command-line tools from the appMetrics directory running qmakeand then make.

Windows binaries

For Windows users, if you prefer not to compile the code, you can download the precompiled binaries. See the release notes for more information.

Running the application

The application assumes access to the terrains folder at runtime. Please make sure this folder is either placed or linked in the same directory as the executable. If you are running the application from an IDE, configure the working directory to point to the folder containing terrains. If the application runs but the Preset terrains dropdown is empty, it's likely that the terrains folder is not accessed correctly, since this list is initialized with the contents in presets.txt.

Sample terrains

We provide a varied set of sample terrains, which can be edited through presets.txt. Most of them are based on SRTM data (~90m/cell resolution) and highlight different terrain types and features. Additionally, there are a few high-resolution DEMs (up to 2m/cell) for testing metrics on finer details, as well as some low-resolution, full-range terrains that are useful for analyzing large surface networks.

Improvements

Possible ideas to improve the current application and code:

  • Move computations to a separate thread to prevent blocking the UI.
  • Display a progress bar during lengthy computations.
  • Implement parallelizable metrics on the GPU.
  • Define a Metric interface to separate them from HeightField class.
  • Better colormap editing (e.g., using a histogram).

Acknowledgements

Article

The survey is published in Computer Graphics Forum journal.

If you use this code, please cite the paper:

@article{Argudo2025descriptors,
    title = {Terrain descriptors for landscape synthesis, analysis and simulation},
    author = {Argudo, O. and Gu{\'e}rin, E. and Schott, H. and Galin, E.},
    journal = {Computer Graphics Forum},
    year = {2025},
    volume = {n/a},
    number = {n/a}, 
    doi = {https://doi.org/10.1111/cgf.70080},
}

About

Authors' implementation of the Eurographics 2025 State of the Art "Terrain Descriptors for Landscape Synthesis, Analysis and Simulation"

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages