More on the Texture Compression Scheme
So who's been using texture compression?
Well, the idea of texture compression is not new. 3dfx's Voodoo1 supported 8-bit palletized textures and Narrow Channel Compression, known as "vector quantization" compression. The primary drawback of 8-bit palletized textures is of course a limit to 256 colors per texture, as well as a performance hit during decoding due to accesses to the lookup table.
As mentioned before, software developers have also tried their hand at compressing textures. Unfortunately, software implementations are inherently slower or produce less accurate representations than hardware models.
Then came S3…
…in 1998 with the Savage3D, which was primped to sell with a new, revolutionary texture compression scheme known as S3TC. When it debuted, S3TC was simply awesome. Using Unreal (the only game at the time to support 2048 x 2048 texture sizes), the amount of detail possible in the memory space provided was simply astonishing. There was no sign of pixellation up close, and textures never blurred out in a wash of bilinear filtering. Providing up a single algorithm to accomplish a 6:1 compression scheme, a 200MB scene could be fit into 33MB of memory, something completely unheard of in the graphics industry.
S3TC compressed textures by breaking them down into 4 x 4 blocks of texels (at native resolution, that's 16 pixels arranged in a square). 2 algorithms are used to compress the block, depending on whether or not the texture map is translucent. Two 16-bit colors are encoded from the block, along with 2 derived colors formed by interpolating the encoded colors. These four colors are used to form a lookup table, which is then used to determine the color of any particular texel in the block, and as S3 describes, forms an "average of four bits per pixel." When a simple translucency is used, one of the interpolated colors is changed to a translucency bit, and only 3 colors are used in the table. It was an elegant solution what was becoming a problem in 3D graphics, and we felt that texture compression as a technology would usher in a new era for 3D.
But what happened?
Well, for one, S3 couldn't convince enough developers to take advantage of S3TC, primarily due to the lack of volume sales for the Savage3D chip. Unreal Tournament and Quake 3 Arena (those two games again) have announced support for S3TC, but neither will ship with compressed textures. S3 is currently working with Epic on a high-resolution texture pack for UT, and in their preliminary tests, the game is actually faster with high-res textures than it is with standard-sized shipping textures, due to S3TC's improved file formatting. However, S3 doesn't carry the market, and this was a sad reminder that brilliant technology alone can't Change
the World. It takes a marketing and developer evangelizing force to push new technology past the legacy threshold.