Sign in to follow this  
fluke

OpenGL rendering distant terrain

Recommended Posts

i'm creating a flight simulator type game and i'm rendering a terrain using a 512*512 heightmap and 'wrapping' the terrain as the end of the map comes into view. while probably not important, this is being done in opengl. the effect i'm after is the ability to fly around a mountainous area and be able to see the valley's and other mountains in the distance. the problem is that the mountains and the rest of the terrain look as though they are being built up brick by brick as they come into view. as you can imagine, this issue worsens as the plane's elevation increases and the edges of the landscape come into view. it's like flying over a big square island.. i've done a lot of searching for info about this, and found quite a bit, but most of it over my head or quite dated. The one technique i saw that stood out more that others was Chunked LOD. is this still the preferred method? i'm quite new to all this, so if i'm going to learn something, i'd like to make sure first i'm heading down the right path.

Share this post


Link to post
Share on other sites
I once found a Word document from Microsoft describing some details of how this is done in the MS Flight Sims. There they use a terrain LOD algorithm mapping the terrain onto a sphere since the spherical shape does matter when viewing terrain from high above.

In the end it does not matter that much what kind of modern LOD algorithm you employ. The important part is to have a spherical terrain to prevent this rectangle pop-in artifact. You basically render half a planet so there is no popping at all because the natural horizont limits the view. The trick is to keep the patches simplified enough to be able to render this half sphere fast enough with a good enough resolution. Maybe googling for "spherical terrain" in combination with "lod algorithms" reveals more information useful for you.

PS: The first hit on this Google search is the MS document.

Share this post


Link to post
Share on other sites
simply creating a paging landscape and set your camera far plane so that the newly created terrain patches are out of the view. when you fly they will come into view. If you want to view a huge landscape then geoclipmapping or quadtree clod landscapes is what you want.

Share this post


Link to post
Share on other sites

Good index site of Terrain rendering techniques.
www.vterrain.org

And if you want to use something special,
you could try using fullscreen skycubemap imposters
around camera. (3-6 levels of cubes for distant
terrain gives good parallax effect with low update frequency)

/Tyrian

Share this post


Link to post
Share on other sites
Although LOD techniques like geoclipmapping are ultimately what you'll want to use it sounds like your immediate problem is just to do with setting your clipping planes correctly. A standard method to deal with this is to break the terrain into chunks and render the chunks in order sorted by depth, with the near and far clip planes set independently for each chunk to more-or-less tightly bound them. I hear logarithmic z-buffers are useful too, but I've never tried this myself.

Share this post


Link to post
Share on other sites
Quote:
Original post by Emergent
... it sounds like your immediate problem is just to do with setting your clipping planes correctly

I would say that this is part of the problem but no matter how you set your clipping planes: When viewed from high above the ground (we are talking about thousands of feet) a flat terrain will suffer this problem. THe horizont will never look okay for a flight sim, hence the suggestion to look into spherical terrains and use standard LOD algorithms on half a sphere. [smile]

Share this post


Link to post
Share on other sites
Quote:
Original post by Waterwalker
I would say that this is part of the problem but no matter how you set your clipping planes: When viewed from high above the ground (we are talking about thousands of feet) a flat terrain will suffer this problem. THe horizont will never look okay for a flight sim, hence the suggestion to look into spherical terrains and use standard LOD algorithms on half a sphere. [smile]


I 100% agree.

Share this post


Link to post
Share on other sites
I may be wrong but every time I've been in a plane, I don't notice the curvature of the earth. You would have to be above 50,000 ft. maybe to notice it?

I honestly think the main issue is scale and clip planes. Take a GIS gtopo30 heightmap of the Himalayas and stick it on your landscape. The top of the highest peak is somewhere around 36,000 ft.

Unless your flight sim goes into the upper stratusphere there isn't a need to do spherical terrain unless you want to take a few hours to zoom around the world.

Even MS Flight Sim (with it's spherical terrain) you don't notice the curvature until you hit the upper canopy of the atmosphere.

I believe getting scale for the landscape chunks right and getting a good balance of the clip planes will suffice.

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