Earth Texture comparison from 1k to 16k

Tips for creating and manipulating planet textures for Celestia.
Topic author
Calculus
Posts: 216
Joined: 19.10.2002
With us: 22 years 1 month
Location: NY

Earth Texture comparison from 1k to 16k

Post #1by Calculus » 27.01.2003, 21:53

You might remember the following formula which gives the Altitude maximum to see the most detail surface element on a planet without any blur:
Altitude A = P * PI * R / T / TAN(F/2)
Where
R = radius of planet (km)
T = number of texels in the texture map around the circumference
F = field of view
P = pixels across width of window
A = altitude (above surface) at which one texel fills one pixel at the center of the window (km)
PI = the ratio of circumference to diameter for a circle

To illustrate this, and to show how an Earth 16k texture is rendered, I made an image showing the Earth at different altitude (1000km, 3000km, 15000km and 30000km) with different textures (16k, 8k, 4k, 2k and 1k).

You'll see that over an altitude of 30000km there is no "noticeable" difference between a 16k texture and a 1k texture!

Here it is
http://ennui.shatters.net/gallery/view_photo.php?set_albumName=Calculus&id=Texture_comparison_Earth_Greece_1k_16k_1000km_30000km
---Paul
My Gallery of Celestial Phenomena:
http://www.celestiaproject.net/gallery/view_al ... e=Calculus

Avatar
t00fri
Developer
Posts: 8772
Joined: 29.03.2002
Age: 22
With us: 22 years 7 months
Location: Hamburg, Germany

Earth Texture comparison from 1k to 16k

Post #2by t00fri » 27.01.2003, 22:03

Calculus wrote:You might remember the following formula which gives the Altitude maximum to see the most detail surface element on a planet without any blur:
Altitude A = P * PI * R / T / TAN(F/2)
Where
R = radius of planet (km)
T = number of texels in the texture map around the circumference
F = field of view
P = pixels across width of window
A = altitude (above surface) at which one texel fills one pixel at the center of the window (km)
PI = the ratio of circumference to diameter for a circle

To illustrate this, and to show how an Earth 16k texture is rendered, I made an image showing the Earth at different altitude (1000km, 3000km, 15000km and 30000km) with different textures (16k, 8k, 4k, 2k and 1k).

You'll see that over an altitude of 30000km there is no "noticeable" difference between a 16k texture and a 1k texture!

Here it is
http://ennui.shatters.net/gallery/view_photo.php?set_albumName=Calculus&id=Texture_comparison_Earth_Greece_1k_16k_1000km_30000km


right, but that's where the concept of mipmaps is coming in. A usual dds texture, for example is not a single image, but rather a /compound/ of images, each being a factor 2 smaller that its predecessor! Depending on the distance of viewing the texture, the best texture size is chosen. Moreover the blending is done very smoothly. There are also NVIDIA software tools ('stitch.exe') allowing individual assembly of textures of 2^n sizes. Of course, there are also tools that decompose a texture into its individual mipmaps....

Bye Fridger

HankR

Post #3by HankR » 31.01.2003, 04:40

Fridger is right. With mipmapping, you're not actually looking at the hires texture when you're far away. Fact is, because of sampling defects (aliasing), the hires texture would actually look worse than the lores one!

But this image set does illustrate one potentially important point: when you do need a hires texture (because you're close up), you only need a very small part of it. If it were possible to selectively load only the parts of the texure currently in view, texture memory requirements could be greatly reduced.

- Hank


Return to “Textures”