-Free, open source tool set:
3dfx wants to encourage software content developers and 3D hardware accelerator companies (also known as "IHVs") to innovate with new encoding and decoding schemes that offer even greater compression ratios, better image quality, or ideally both. To that end, the compression and decompression tools, and source code are freely available. This will allow developers to use the FXT1 compression technology across multiple platforms. Furthermore, the free license will provide IHV's with the opportunity to implement FXT1 texture compression in future hardware designs, completely free of any license or royalty fees.
-Multiple encoding schemes per image for better quality
FXT1 creates images with higher quality than other texture compression schemes by using four compression techniques for each texture (compared to only a single technique in other compression schemes). This allows the encoder to be more accurate in reproducing specific portions of an image and/or different types of images as the best possible technique is applied to each texel block.
Uncompressed image (left) compared to the same image compressed using S3TC (center) compared to FXT1 (right). Note how much more accurate FXT1 is at resolving the finer details of the images.
-Better Compression Ratio for textures with multi-bit Alpha
Unlike S3TC which uses an 8-bit compression format when compressing textures with multi-bit alpha components (alpha is used for transparency information), FXT1 uses a 4-bit format for the greatest possible compression ratio. As a result, the compression ratio of the FXT1 compression algorithm is twice that of the S3TC algorithm when compressing 16 or 32-bit textures which include alpha information. This substantially increases the number of textures which can be stored in a given amount of memory, and also reduces the amount of bandwidth required for texturing.
-Cross Platform API support
All major 3D APIs support FXT1 texture compression. Textures can be pre-compressed and stored on CD or they can be compressed in real-time by using the provided tools and source code for FXT1 encoding. In Direct3D, when an application creates a textured surface in memory, the application tells the hardware if there are any special codes used to designate a compressed image surface, called FOURCC codes, associated with that surface. If so, the hardware reads this code and knows that the surface must be decoded prior to being moved to the frame buffer. In OpenGL (on all platforms, including Windows, Linux and Macintosh), texture surfaces are marked with an FXT1code in the file header. When a surface is created in memory, the surface has a flag which designates it as a compressed texture. The OpenGL driver recognizes this flag when the proper extension is implemented in the OpenGL driver. The texture is then decoded by the hardware, prior to being used internally. Glide provides native support for FXT1 based textures; automatically recognizing FXT1 encoded textures and decoding them accordingly in hardware.
3dfx provides free tools and associated source code for encoding and decoding textures in the FXT1 format. One tool is a command line utility which allows developers to convert back and forth between the FXT1 format and other standard image formats, performing both FXT1 compression and decompression. A second tool is an Adobe PhotoShop plug-in, which allows artists to work on a texture image within PhotoShop and then both export and import images in the FXT1 image format. For developers wishing to do real-time compression in the FXT1 format, free source code is available for writing an encoder as part of an application.
High-resolution image - Uncompressed (Left) vs. same high-resolution image - Compressed (Right). While the compressed image on the right suffers no loss in visual quality, it is represented using 6 times less data than the one on the right.
FXT1 texture compression is provided free to software developers and 3D hardware accelerator companies who want to create and accelerate content utilizing many more texture images and higher resolution textures, all at the highest possible image quality. FXT1 texture compression provides equal to or better compression ratios than any available hardware compression scheme. With up to four compression schemes used in the encoding of each texture, FXT1 provides the most accurate texture compression available, providing little or no loss in image quality. Decoding FXT1 textures can be done transparently in the 3D hardware at run-time, or decoded in software and converted to another hardware-supported texture format. In addition, cross platform 3D API (Glide, OpenGL, and Direct3D) support for FXT1 allows developers to use it on Windows, Macintosh and Linux platforms without any additional coding by the developer. Finally, 3dfx provides free tools, and the associated source code, to encode and decode compressed textures to allow the user community to create newer and better encoding algorithms. These tools are currently available to developers registered with the 3dfx Developer Program. For additional information, please contact devprogram@3dfx.com.