terrain opimization

Started by
8 comments, last by Mr Grinch 19 years, 8 months ago
Hello. I'm considering developing my own mmorpg 3d engine. All I have right now is a simple 64x64 heightmap terrain. Requirements: Camera is top down so you won't be able to see sky(like in Dungeon Siege). Camera can be rotated to the horizon but you won't be able to see it because there is fog so there is no need to render anything far. I plan on having caves and houses(not sure yet). I want my terrain to look good and have good FPS with it. My question is what technology should I use to suit these requirements? I read some articles about that but I don't know if it will meet my requirements.
Advertisement
Quote:
I'm considering developing my own mmorpg 3d engine.
All I have right now is a simple 64x64 heightmap terrain.

You still have a long way to go :).

Quote:
Camera is top down so you won't be able to see sky(like in Dungeon Siege). Camera can be rotated to the horizon but you won't be able to see it because there is fog so there is no need to render anything far.
I plan on having caves and houses(not sure yet).
I want my terrain to look good and have good FPS with it.


You should really research the different terrain techniques, so that you know their pros and cons, (they all have some of each). I can't really be very specific, because, I'm afraid your post wasn't very specific. But I will give you a place to start learning about terrain rendering:

vterrain.org.

The major implementations of terrain rendering today are chunked LOD, and geomipmapping. I've also heard mention of geometry clipmaps, but I'm not familiar with them. Anyway, here are some more links:

Chunked LOD.
Geomipmapping.
Geometry clipmaps.

Good luck.
Depending on how far you will be able to see and the detail you want on what you can see, you may be better off just brute-forcing it (or doing something one step up, like brute-force with a quadtree to cull out non-visible sections). I'd say maybe start with something simple, and after you get other stuff going, if you decide you want better performance from the terrain, go to something like CLOD or geomipmapping.
Thanks for replys.
I plan to have camera pretty much like in Dungeon Siege. Here is a screen:
http://www.gamespot.com/pc/rpg/dungeonsiege/screens.html?page=201
There is fog that won't let me see far.

I believe quad trees with CLOD will be best solution for my terrain. Am I right?

[Edited by - id_roman on August 20, 2004 10:21:57 PM]
I see.. I've never played dungeon siege before, but now I see more of what you're trying to achieve.
Alright, obviously the terrain isn't, (and doesn't have to be), built up of alot of polygons. There isn't much detail there. So, I don't think you'll have need for any terrain LOD algorithm. Not quite yet, anyway.
But the texturing is definitely what gives most detail to the terrain. This can't be achieved by stretching a texture over the entire heightmap. You'll have to use a technique, probably something similar to Charles Bloom's paper on texture splatting.
But you shouldn't mind that just yet. Get your quadtree terrain working first.

Good luck.
Hi,

Don't look for something that'll meet your requirements. You'll need to be flexible and settle for only most of what you want.

I wrote an editor which produces optomized heightmaps. I think the technique used to create them is pretty common and should turn up in Google but I based mine on the Continuous Terrain Meshing tutorial on Gamasutra herehttp://www.gamasutra.com/features/20000228/ulrich_01.htm

I used the idea of recursively building up the heightmap and applied it by splitting my height map in to chunks and recursively building them up not just using one recursive level but going 3 or 4 times down. Once that's done you've got to remove T-Junctions but that's not too bad.

The results are really good. It saves on lots of vertices and polygons and the drop in quality is very slight.
Considering he wants a terrain that is viewed top-down and with a very limited view distance, any form of CLOD is overkill and could easily end up hurting performance rather than helping. Just put the terrain in a quadtree for frustum culling ( and position classification ) and brute force it.
Quote:Original post by haro
Considering he wants a terrain that is viewed top-down and with a very limited view distance, any form of CLOD is overkill and could easily end up hurting performance rather than helping. Just put the terrain in a quadtree for frustum culling ( and position classification ) and brute force it.


seconded.
"Let Us Now Try Liberty"-- Frederick Bastiat
Quote:
Original post by haro
Considering he wants a terrain that is viewed top-down and with a very limited view distance, any form of CLOD is overkill and could easily end up hurting performance rather than helping. Just put the terrain in a quadtree for frustum culling ( and position classification ) and brute force it.

Thirded
Fourthed (is that a word?).

I think splatting is sometimes over-suggested. If you have a static heightmap (no deformation) I think you can achieve good results by pregenerating a single texture to stretch over the whole terrain, and simple detail texturing. Have a look at some screenshots from my project, where that is exactly what I do.

In fact, this project is very much like id_roman's situation. I have a camera locked at a high angle, so I don't do any LOD, just culling with a quad-tree. I have a tool that generates the texture by blending several other textures together beforehand. Then, since my map doesn't change and the player can't deform the terrain, I can reuse the same pre-generated texture over and over. Sure I can make improvements (I think multiple detail textures, depending on height would be the biggest improvement), but I think it works pretty well, and it'll certainly do until I get farther along in the game. You can check out my texture generator in my project's sourceforge cvs repository (instructions here). It's in the tools module, in the "texturizer" directory. It needs some work, but it's enough to get us by until we get farther in the actual game coding.

This topic is closed to new replies.

Advertisement