Home

Awesome

Procedural Terrain Estimator

PTE consists of two programs, Renderer and Editing tool.

The main usage of these programs is for generating 3D terrain by editing noise map and controlling several parameters of noise function.

Renderer is mainly for viewing resources (height map, or equivalently, displacement map and blend map) which are generated by the Editing tool. Renderer always checks if resources have been modified, and ,if it does, reload resources in the OpenGL Current Context. This makes it easier for the users to edit resources and debug resources.

<center><img src="./screenshot_renderer.JPG" width="640"></center> <center><img src="./screenshot_renderer2.JPG" width="640"></center>

Editing tool consists of two stages, Generator and Estimator.<br/> At Generator stage, users can edit height map with several noise functions by controlling several parameters of each noise functions. Also enable to edit output board directly with additive brush / decline brush / lasso (free-form) / lasso (polygonal) / etc .. <br/> At Estimator stage, you can generate blend map associated with height map which you are editing. This will be automatically done using several terrain related algorithms.

<center><img src="./screenshot_editing_tool.JPG" width="640"></center> <center><img src="./screenshot_editing_tool2.JPG" width="640"></center>

Demo Video

Procedural-Terrain-Estimator-Demo-screenshot

Features

  1. Renderer :
    • Quad-tree based non-uniform patch primitive terrain
    • Dynamic Level Of Detail
    • Resource hot-reload technique (only for height map and blend map)
    • Sky box (rotation supported)
    • Water rendering (with reflection and refraction)
    • Fog (at terrain)
    • Shadow mapping
    • Gamma correction
    • Tone mapping
    • Motion Blur
    • Wireframe view (at geometry shader)
    • HDR Environment map (not included in release product)
    • Crepuscular Lighting (God-rays)
  2. Generator :
    • several noise functions(voronoi, simplex, fbM) are supported
    • brush, lasso, move, zoom in/out tools
    • 16bit height map writing supported.
    • load preset images supported
  3. Estimator :
    • Blend map generation by elevation descent mapping.
    • Height map smoothness control.
    • Height map normalize.

How to build

will be supported ...

How to Use

Help

Keys

  1. Renderer :
    • 1, 2, 3, 4, 5 - Camera view mode (top-view, left-to-middle, right-to-middle ...)
    • W,A,S,D - Camera movement
    • Cursor move with LMB pressed - Camera rotation
    • RMB - Camera Zoom in/out (automatically and smoothly)
    • Mouse Wheel - Camera Zoom in/out
    • Space bar - Renderer Pause
    • ESC - quit program
  2. Editing Tool :
    • 1, 2, 3 - Swap board for brushwork.
    • R - reset brush
    • B - Additive brush
    • N - Erase
    • Z - Zoom in
    • X - Zoom out
    • C - Lasso (polygonal)
    • F - Lasso (free-form)
    • M - move scroll

Dependencies

Tested Environment

CPUGPUOSit Work?Frame time
i7-7700HQNvidia Geforce GTX 1060Windows 64bitO8 (ms)
i5-?HD630Windows 64bitO?

Contributor

@snowapril - generator and renderer <br/> @kkorona - estimator

License

MIT License