I’ve been pondering this question awhile now… many 3d engines support advanced terrain rendering using quadtrees, LOD… all the features you expect. But every engine I’ve seen loads height data from heightmaps… grayscale bitmaps. I just can’t understand how this is useful – each point in a heightmap can have one of 256 values. But what if you wanted to model Mt. Everest? with detail of 1 meter, or even greater? That’s far outside the range of 256. Of course I understand that you can implement your own terrain format to achieve this, but I just can’t see why heightmaps are so widely used despite their great limitations.
I’ve been pondering this question awhile now… many 3d engines support advanced terrain rendering
Share
From a viewpoint of displaying graphics, the greatest precision that normally matters is (in simple terms) a single pixel in the final display1. Given the resolution of a typical current monitor, having another couple or three bits for the height map would be nice — but for most geometry, it’s not really necessary. In particular, even though a single pixel pretty much defines the greatest precision for which you have a lot of use, drawing Mt. Everest so its height is actually wrong by two or three pixels isn’t really a major problem for most people most of the time.
It comes down to this: the idea that you’d want to use a precision of one meter for a height map of Mt. Everest is simply a mistake — a need (or even use) for that level of precision is right on the border between rare and nonexistent. At the same time, using a relatively dense format like one byte per pixel generally means quite a bit — less storage and less bandwidth leading to faster displays.