10/10/2010 First look at BPTC (BC7) texture compression format

Few days ago, I finally had a look at my first BPTC/BC7 texture and I must say I have been really impressed by the visual quality.

Like DXT5, BPTC is a 8 bit per pixel format but it doesn't contain an alpha channel. Effectively, half of the bits of DXT5 are dedicated to the alpha channel only so that it fells fair to compare BPTC with DXT1 which is a RGB 4 bits per pixel format with an option for 1 alpha bit. To get a better quality, it's possible to use the alpha channel of DXT5 to store another channel which provides 4 bit per pixel for each channel. This format is usually called DXT5 RXBG and it provides a significantly higher quality alternative to DXT1 despite a feeling of red and blue noise.

For the following captures, I used the RGB mode of DXT1 and generated it with The Compressonator from AMD. I generated the RGTC1 texture with the same tool, taking the red channel. From previous tests I made 2 years ago, The Compressonator appears to be the tool which provides the best visual quality. The BPTC texture has been generated with the Direct3D 11 SDK encoder with the CPU version of the encoder.

I find the result provided by BPTC absolutely stunning. This picture is actually particullary challenging which explains the ugly result provided by DXT1: It's blocky, smooth parts becomes stairs and noisy parts become fat pixels. On its side, BPTC remains very close to the uncompressed texture. BPTC even manage to provide more details than RGTC1 in many cases.

BPTC is a great texture format for visual quality so that for this property I expect to see it used in place of DXT1 and DXT5 in many cases in the future. However, the BPTC format has a main draw back: It's slow, very slow to generate! Chances are that all the realtime compression use cases of DXT5 will stick to this format for a while.

  • BPTC is a 3:1 compression format, RGB, 8BPP
  • DXT1 is a 6:1 compression format, RGB, 4BPP
  • DXT5 is a 4:1 compression format, RGBA, 8BPP
  • RGTC1 is a 2:1 compression format, 1 channel only, 4BPP
Küken in BPTC! Long to generate but such a good quality
Küken in BPTC! Long to generate but such a good quality

  • GL_ARB_texture_compression_rgtc
  • GL_ARB_texture_compression_bptc
  • GLI 0.3.0.1 released >
    < GLM 0.9.0.4 released
    Copyright © Christophe Riccio 2002-2014 all rights reserved
    Designed for Chrome 9, Firefox 4, Opera 11 and Safari 5