General Heightmap Terrain question


this question is not directly a jME question, but i guess its not too bad to ask here.

Looking at all the nice terrain works here makes me wonder:

comparing them to e.g. raytraced terragen-terrains, the game terrains look quite "poor" (not in bad manner).

i am NOT talking about the lightning or effects, its about the pure terrain.

I attached a picture if a terrain that has a quality i`ve never seen in any game so far.

Of course, doing this kind of terrain in games would be freaky CPU killing i guess;

My question is: when i take the heightmaps of Terragen it only creates a "poor' small landscape, but never such a nice, detailed one like terragen produces.

Now i wonder, whats the difference between Heightmaps done in games and heightmap terrains like done in terragen, AND, would it be able to have such Terrains in jMonkeyEngine as well?

Thanks so far.

Image too huge, so here is a link:

Purely based on the heightmap, an engine like jME will load in a detailed heightmap just fine. But there tends to be a lot more going into the detailed render for a static render than just a heightmap.

Also, there's a lot of different things to think about in a game. What resolution do you choose? For example, you can make one height sample per metre and get a very detailed terrain, or one per 10m and cover a much larger area. If you want both, your mesh is going to be 100 times bigger. Is the difference in detail that worthwhile?

Then there is the question of content. For example like your screenshot, pictures to show off terrain engines often feature mountains with very sharp relief. How much of the map is actually useable for playable content? Is it worth having all that detail for areas you can't get to? In a more level area, would that detail be particularly visible, especially under trees and grass from close up? Visible enough to be worth the overhead?

Textures, foliage, houses etc. Are also a factor depending on the type of game. Most games need to look good close up moreso than at distanct. So when you get close to that grass, has it any detail? Or is it just optimized to look good at distance? With no time limits for a render you can have both, but typically not in a game.

What I'm really getting at is you just choose to make compromises in a game because smooth frame rates, and playability are priorities. You can choose to make different compromises, but terrain is often an obvious one because the cost of detail tends to go up exponentially.

i guess rendering a terrain to create a still picture or rendering a terrain 60 times per second are different leagues.

Imagine the amount of vertices needed to render the picture you linked in opengl.

ATI showed a nice vid not too long ago:

To create such sceneries in real time you need to use some tricks.

thanks for the both of you.

Well, its obvious not to get the same far distance view in a game, and oc its a different to have a n>30/seconds  or 1/60 seconds frame rate. i was just wondering, since my hmap attemps with the very same hmap were not that nice as terragen did.

i was just testing it without any view on framerates etc. what i did was, for each pixel (img.x/img.y) on the pic, as x/y/z on a very small own quick-made renderer. since all information i gathered about hmap rendering told me to do so, i thought i was right doing so,  looks like i am not:

Alric, thanks for going into this details, the main and important one was the first sentence for me => i will try it in jME right now, to see where i was wrong in my own renderer.

Thanks so far, for your kind answer and time!  :wink: