QT_Terr - Quadtree based simple Terrain Engine


...you begin a project, and in the end you've got something completely different:

Originally I started this project as a bitmap tesselator. The idea was, to create a quadtree node for every pixel not setted, so that could extract minimal recursion depth quadtree of the bitmap. After I finished this project successfull I added some other logic, as direct rendering of the quadtree, heightmap, frustum culling and finally LOD. The result was a really nice terrain engine, that could be developed to a relly nice application. Currently I'm just using it to preview Terragen Files.

Some screenshots, showing off the capabilities

Hidden surface removal is one of the most important things to do, when doing realtime rendering. QT_Terr implements a very simple frustum culling algorithm, along with CLOD (continiuous level of detail). The leftmost picture shows off a top view, the red dot marking the viewers position. In the middle you can see the terrain from the viewers point of view in wireframe mode. As you can see, the CLOD algorithms cull away triangles smaller than a certain size, and is morphing the resting polygons smoothly.

Another example of the CLOD, insted of a simple 2D quadtree node depth culling, the algorithm performs a Z based quadtree node culling, so that the maximal LOD criteria is a reasonble minimal triangle size. (You understood?!?! Well my friends did.)


Here you can download the QT_Terr simple terrain engine qt_terr.tar.bz2 - ca. 2.4 MB UPDATED Unfortunately I had to strip away a few of the files in the downloadable example, since formerly it exceeded my webspace quota.

Related links