Terrain Modeling from Feature Primitives on GPU
During my time in the LIRIS laboratory I worked with 3 researcher, 2 PhD student and one graphics artist.
They developed a novel hierarchical procedural model that combines feature-based primitives to create complex continuous terrains.
The work has been published in a research paper :
J.-D. Génevaux, É. Galin, A. Peytavie, É. Guérin, C. Briquet, F. Grosbellet, B. Benes
Terrain Modeling from Feature Primitives
Computer Graphics Forum (CGF) (2015), vol. 34, num. 6, p. 198-210
Terrain created using this model can be easily edited, but their implementation did not allow interactive editing.
My task was to implement this new model on GPU in order to be able to do interactive editing.
Here is an example of a base terrain combined with some hills and roads :
All images are rendered in real time.
The interface and CPU part of the implementation used C++ and Qt. The graphic API used was OpenGL 4.4 Core profile and two extensions : GL_NV_DRAW_TEXTURE and GL_NV_BINDLESS_TEXTURE
I also developed an editor, the next video shows the creation of a small piece of terrain.
(Due to some technical issue I had to use fraps to record the video therefore the Qt interface does not appear)
Feature available in the editor :
- Two different renderer : Ray-tracing and raster graphics using a point grid.
- Adding and removing primitives.
- Primitive picking.
- Copy/cut paste of primitives.
- Intuitive keyboard and mouse control to modify major aspect of primitives.
- Property widget to allow modifying any properties.
- Set of existing combination to rapidly create hills, montains, rivers, ...
- Benchmark tools (time to render, memory consumption,...)
- Resolution independent from the Qt widget size.