Sign in to follow this  
paradize3

Rendering of large (almost heightfield) terrains - Chunked VLOD

Recommended Posts

Hi all! I'm looking for an algorithm to render large scale terrains (GB of data). I've spent the last days reading different papers and one that seems well adapted is the Chunked LOD. However, our terrains cannot be accuratly represented by heightfields, we have a regular mesh tho (vertices are given by X(i,j), Y(i,j), Z(i,j)) - ie no caves etc... What approach would you choose for such problem? A significant problem I can foresee by trying to apply chunked LOD on such data would be the cracks. Also I'm not looking for extremly high framerate at the time, so I'm willing to spend a few CPU cycle trying to fill the craks but... I'm not very concerned about the popping either (at least in a first step). Cheers, Greg

Share this post


Link to post
Share on other sites
Quote:
Original post by paradize3
However, our terrains cannot be accuratly represented by heightfields, we have a regular mesh tho (vertices are given by X(i,j), Y(i,j), Z(i,j)) - ie no caves etc...


No caves and I guess that includes overhangs ?

Why can't it be accurately represented by heightfields ?

Share this post


Link to post
Share on other sites

Well with overhangs I think would just use a more complex heightmap that also includes displacement parameters for x and y (to simulate overhangs) and convert the mesh to that format.

I think that should work...

Share this post


Link to post
Share on other sites
As your heightmap is defined by V(i,j) -> R^3, you're on the halfway between 2d and 3d acceleration structures; you have a 2 dimensional manifold, that morphes freely in 3d space. I think when the overhangs arent't too large, a quadtree should work well, but if that overhang _is_ large, I would go for a more general 3d-acceleration structure like Octree.

If you really have a black-box function and if you can't determine any local maximum, then you have to sample the whole function. An approach I have tried out was to sample just a few thousands of points, whereas the triangulated resolution could be arbitrarily high, i.e. random-sample the function to be able to build some acceleration structure. While not 100% accurate, it was always accurate enough for my renditions in picogen.

Share this post


Link to post
Share on other sites
A quadtree is definitely fine, however you have to change the metric that decides whether to subdivide a quadtree node or not. If you do that based on the distance in (i,j)-space, then overhangs might get a too low resolution. This is because things that are far away in (i,j)-space might be close in world space due to warping. What you can do is compute the world-space distance to the world-space bounding box of each quadtree node and subdivide if (distance to bounding box / (i,j)-size) is less than a threshold. (i,j)-size is the same as (x,y)-size if you had a heightmap and z were your heights. That is, the (i,j)-size halves with each level of the quadtree.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this