Implementing terrain tools is somewhat time consuming (in addition with me being quite busy in past 2 months - on topics I can't write too much about). Anyways terrain system and authoring tools in my engine start to look good, here is a small sneak peek:
The circular thing is a terrain, some interesting features:
- Height map is a virtual texture of unlimited size (those who know how virtual textures work know that there are some limitations - related to your page table size, page indirection size, etc.)
- Virtual texture is editable by the user with base functions (I'm currently working on placing 'stamps')
- Terrain geometry is using seamless LOD using tile-based binary triangle trees
- Calculation of terrain LOD is based on specific position
- Allows to specify quality of rendering for shadowmap/voxelization/etc.
- Etc.
The interesting part is selecting which tiles and at what quality are going to be loaded/rendered. I'm not using the approach RAGE used (i.e. not using feedback buffer), but I'm using selected LOD for given terrain tile (currently without frustum culling - which is still on todo list).
Originally I wanted to have basic terrain support, but due to myself thinking about more and more features, and adding them - it is becoming quite big. The source still needs a bit of cleanup (before I write something on terrain) and I haven't connected it with vegetation nor physics system yet - these are both in todo list for now.