Rendering of large (almost heightfield) terrains - Chunked VLOD

Started by
5 comments, last by _swx_ 15 years, 5 months ago
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
Advertisement
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 ?

no i think it does conatain overhangs which makes it muuuch more complicated.
My Blog - http://www.freakybytes.org

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...
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.
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.
Chunked LOD isn't limited to heightfields, so what's the problem?

This topic is closed to new replies.

Advertisement