Terrain LOD algorithm for a mostly static camera

Started by
2 comments, last by Tubos 12 years, 9 months ago
Hi!

The camera in my game is static most of the time; sometimes it moves.


I'd like to render a medium-sized terrain. The camera can be at ground level or up in the sky. VRAM usage is important.

Which terrain LOD algorithm would you select for that?
SOAR is more CPU-intensive, but produces less triangles than geomipmapping. When the camera stays still, SOAR should perform better (since you don't have to do any processing and just render the pregenerated mesh).

For camera moves, SOAR would be less optimal. That is because the mesh must be created and uploaded to the GPU very often.


Any thoughts on that?
Advertisement
SOAR is more CPU-intensive, but produces less triangles than geomipmapping. For camera moves, SOAR would be less optimal. That is because the mesh must be created and uploaded to the GPU very often.
Triangle counts obviously have some importance, but they're not the most important statistic at all these days.
Uploading a mesh as complex as a terrain from the CPU to the GPU is going to be quite costly. If you don't do it every frame, you could perhaps split the upload process over a few frames so the per-frame cost is lower...


Here's an interesting John Carmack quote from 2006, regarding ROAM/SOAR-type terrain LOD techniques:
That's one of those things that for years I think most of the research that's gone into has been wasted. Geometry level of detail on terrain.. there have been thousands of papers written about it, and I honestly don't think it's all that important. The way the hardware works, you're so much better off setting down a static mesh that's all in vertex and index buffers, and just letting the hardware plow through it, rather than going through and having the CPU attempt to do some really clever cross blended interpolation of vertices.[/quote]
Terrain is pretty simple if you let it be. There are many techniques out there that make terrain extremely complicated. I think this is mostly due to people wanting to make themselves feel smart, so they invent some new way to do something that adds a 2% speed increase in rendering, but adds immense complexity --which in of itself will likely create a slowdown somewhere else in the program.

You can see how I did my terrain here http://nolimitsdesigns.com/game-design/terrain-how-to/
Wisdom is knowing when to shut up, so try it.
--Game Development http://nolimitsdesigns.com: Reliable UDP library, Threading library, Math Library, UI Library. Take a look, its all free.
Thanks for your help! I chose a simple solution indeed - Geomipmaps.

This topic is closed to new replies.

Advertisement