Jump to content
  • Advertisement
Sign in to follow this  

Voxel Terrain - Updating LOD hierarchy after modifications

This topic is 663 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I'd like to be able to edit a procedurally generated voxel terrain.
The terrain is represented by an octree which subdivides itself depending on the viewer's position.
LODs are generated on-demand, progressively, from top to bottom.
Each leaf node contains a mesh representing a part of the terrain surface at this node's LOD.
Cracks are handled via geomorphing.
I can fly over a large (~20 km) and boring terrain without any cracks/T-junctions (except for pixel-sized gaps far from camera).
Here is a picture from a week ago (gyroid, each LOD is 4x4x4 cells):
1) How to re-generate the LOD hierarchy after some parts of the terrain have been modified?
I want to be able to edit the floor right in front of the player (LOD0) as well as distant mountains (e.g., LOD6).
In the former case, LODs of can be rebuilt lazily, via 'dirty flags'.
But for far-away montains, LODs should be updated quickly, because they are currently being used for rendering.
So, when recalculating LODs of 'dirty' nodes, I need to check if their parent is being used, and so on, all the way up the tree?
Or maintain a queue with IDs of changed nodes, and after processing all nodes of LOD 'N'
push onto the queue the IDs of their parents (LOD 'N+1')?
There are other complications, e.g. ensuring that old border vertices are kept untouched during simplification
so that the simplified, 'bottom-up' mesh connects seamlessly with procedurally-generated, 'top-down' parts.
Actually, I have no idea how all of it should be implemented together.
Could you please refer me to papers/code, or give me some ideas?

Share this post

Link to post
Share on other sites
Sign in to follow this  

  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!