Post #18by chris » 07.05.2003, 00:56
My initial excitement about the space graphics textures has waned as well . . . I'd been focusing on the areas near the terminator, where the bump mapping reveals an adequate amount of detail. In other places, however, the texture is indeed much to flat and devoid of detail . . . I think that a part of the problem is that standard bump mapping doesn't show cast shadows--the lighting variations are all due to the varying angle between light and surface. Actual images from spacecraft will show additional detail from cast shadows. That's not the whole problem though--it appears that real albedo variations of the surface were lost in the production of this texture, too.
As t00fri noted, the 8-bit height map is a big problem too . . . Using 16-bit height maps as a starting point gives much better results, even when the result is an 8-bit per component normal map.
Here's my analysis . . . Mars has a radius of 6794km, giving a circumference of roughly 20,000km. With a 4k x 2k texture, each texel represents 5x5km at the equator. The altitude range on Mars is 31km from the bottom of Hellas Basin to the top of Olympus Mons. The bump height should then be 31km / 5km, or about 6.0. What a bump height of 6 means is that you're throwing out a lot of data--the resolution of the normal map computed from the height map is 6/256. The ideal resolution of an 8-bit normal map is 1/128 (not 1/256, because normal map components are represent values in [-1, 1] not [0, 1] like colors). Very important to note is the fact that with larger bump maps, you need a higher bump height, which further reduces the resolution. 16-bit height data is essential for generating large, high-quality normal maps.
Once I get a GeForce FX at home, I hope to find time for some experiments with 16-bit per component normal maps to see how they affect rendering quality.
--Chris