(Historical) Hardware Support for Large Texture Maps
This page describes the (now mostly historical) challenge of supporting large
textures on early hardware (roughly 1994-2008). In the
modern era of graphics cards with gigabytes of texture RAM and fast busses for
instantaneous paging, is is largely a non-issue.
SGI
- High-end
solution: SGI's Performer
on Infinite Reality (IR)
-
Performer Guide, Chapter 12: ClipTextures (Clipmapping)
- Introduced in Performer 2.1, a patented algorithm to allow textures that are much bigger than will
fit in texture memory, and even in system memory.
- Exploits and extends properties of MIP-maps. Efficiently pages in MIP-levels using a special hook in the Infinite
Reality hardware and a high-speed bus.
- SGI demonstrated a 32k*32k cliptexture (25m data, 800*800km) = 3
GB of memory
- at Siggraph '98, was claiming to show a 350 GB
texture database
- Their Yosemite demo used 0.5m image data and 30M elevation data
- was not available on SGI's Win32 platform (Cobalt)
Ways to Save Texture Memory
- Texture image depth can potentially be reduced to 16 bits
- TGA and PNG are a common format for 16-bit textures, however.. OpenGL generally wants a 24-bit texture as input, which it will convert
it to an internal format depending on what the card is capable of and what
you ask for
- Texture Compression
- Texture compression reduces the texture memory size for a texture, generally
by a factor of 4x to 6x, such that it can be quickly and easily uncompressed
at rendering time.
- It also reduces the amount of on-chip bandwidth required to transfer
and process the texture for rendering, which can increase fill rate.
- It's now widely available on all 3D hardware, and it's difficult to
tell the difference visually, so it's usually a no-brainer to enable compression.
- Reportedly, "Compression is most visible with smooth multicolor gradients,
and is likely to add noise to the image more often than softening it (as
JPEG does). Textures generally appear to become slightly 'busier'."
3D Card Vendors
-
- A normal consumer card vendor, but their cards now completely out-perform
cards from the previously "high-end" 3D card market.
- Their cards with 128 MB, and even 256 or 512 MB of RAM are becoming
widespread.
- ~110 MB of 128 is available for texturing, depending on display settings,
or ~240 of 256.
-
- Now the leading NVidia competitor, usually in a horse race with their
product releases.
- Their top-of-the-line Radeon offering comes in 128, 256, and even greater
MB
Traditional High-end PC Graphics Card Vendors
See Older/Historical Cards.
RAM requirements for a single texture, in megabytes, with and
without mipmapping (MM):
size of texture |
16 bit |
24 bit |
32 bit |
16 bit w/MM |
24 bit w/MM |
32 bit w/MM |
24 bit with 4x
Compression |
(may be greater due to rounding up to
meet texture memory usage constraints) |
1024*1024 |
2 |
3 |
4 |
2.7 |
4 |
5.5 |
0.75 |
2048*2048 |
8 |
12 |
16 |
10.9 |
16 |
21.3 |
3 |
4096*4096 |
32 |
48 |
64 |
42.6 |
64 |
85.3 |
12 |
8192*8192 |
128 |
192 |
256 |
170.6 |
256 |
341.3 |
48 |
16384*16384 |
512 |
768 |
1024 |
|
1024 |
|
256 |
Card/Chipset Maximum Texture Size under OpenGL, Current Cards:
Chipset |
Max texture RAM (MB) |
Max Texture Size |
NVidia GeForce series |
~110/240 (128/256 on card) |
4096 |
ATI Radeon series |
~110/240 (128/256 on card) |
2048 |