(c) copyright Zehne Ziba Co., Ltd. For more information, please refer to copyright notice.
Block Compression (BC) is a lossy compression format which dramatically boosts the game performance and reduces loading time and the amount of memory required to store the textures. However, I don’t recommend to compress UI elements such as texts and icons, because their artifacts are more noticeable.
Common Compressed Texture Formats
BC1 / DXT 1
Each 4 * 4 block takes up 64 bits of data and its alpha channel is assumed to be 1.
[alert color=”blue”]There’s another form of DXT 1 which uses one bit for alpha channel, meaning that transparency is either on or off (or in other words, black or white).[/alert]
BC2 / DXT 3
Each 4×4 block takes up 128 bits of data and is broken into 2 64-bit chunks: 64-bit color channel and 64-bit alpha channel. So the color quality of DXT 1 and DXT 3 is almost the same.
BC3 / DXT 5
Like DXT 3, each 4×4 block takes up 128 bits of data and is brokone to 64-bit color channel and 64-bit alpha channel. Color information is saved similar to DXT 1 and DXT 3, but alpha information is stored in a different way and allows smooth transitions of the alpha value.
DXT5nm is the same as DXT 5, except that the red channel is moved to alpha channel, Green channel is left intact, and sometimes red and blue set to green color. The idea is simple: If you’re using tangent space normal maps, you only need 2 components (red and green). So store them in green and alpha channels for best results.
[alert color=”blue”] since green and alpha channels have the highest bit count in DXT 5 format, these channels are used to save red and green information in BC3nm format.[/alert]
BC4 / ATI1 (3Dc+)
This compression algorithm first implemented by ATI and is designed for compressing single channel textures.
BC5 / ATI2 (3Dc)
Original DXT compression can’t compress the normal maps effectively and causes heavy artifacts. BC5 is designed for compressing two channel textures such as normal maps and it’s main purpose is to compress the normal map textures while pertaining the highest level of detail as it can.
RXGB (DXT 5)
Doom engine uses the so called RXGB format. Its similar to DXT 5, but with the red and alpha channels swapped. In order to retrieve normal information from RXGB format, you should use (a, g, b) order.
Adobe Photoshop And Gimp DDS plugins
Both Photoshop and Gimp are capable of saving dds files. However, they haven’t this functionality built-in. If you’re a Photoshop user, simply download and install the latest version of NVIDIA texture tools from their website. Gimp users can download Gimp-dds plugin from Google Code. Both plugins support common texture compression formats.
Let’s stay in touch!
Never miss a single tutorial, sign up for our monthly newsletter. You can unsubscribe at any time if you wish to stop receiving email newsletters from vandaengine.org