Kompresi tekstur tidak memampatkan piksel. Ini memampatkan blok piksel. Ketika satu piksel dirujuk, GPU menghitung blok mana yang mewakili piksel tersebut. Kemudian memproses seluruh blok untuk mendapatkan warna piksel itu.
Sebuah contoh
Mari kita asumsikan ukuran blok 4x4 piksel pada tekstur RGB. Terkompresi, setiap blok mengkonsumsi 4x4x3 = 48
byte dalam memori tekstur.
Sekarang algoritma kompresi akan menghitung rata-rata untuk setiap saluran (RGB) dan menyimpannya dengan blok (3 byte). Sekarang mari kita beri setiap pixel 2 bit untuk menyesuaikan rata-rata sehingga pixel lebih dekat ke warna aslinya. Itu 4x4x2x3/8 = 12
byte lain .
Total byte yang digunakan oleh kompresor yang baru ditemukan ini adalah 15 byte per blok, rasio kompresi 31,25%.
Kompresor mitos saya menggunakan 7,5 bpp. Itu tidak sebagus yang dapat dicapai oleh 2 bpp pvrtc, tetapi sekarang Anda memiliki gagasan kasar tentang bagaimana 2 bbp dapat dicapai.
pembaruan:
Saya baru saja melihat halaman wikipedia untuk pvrtc . Sepertinya pvrtc tidak menggunakan kompresi berbasis blok tradisional. Berikut ini adalah kertas yang menjelaskan cara kerja kompresi berbasis blok dan bagaimana pvrtc berbeda. Catatan khusus: Filter berbasis blok dapat menghasilkan gambar tampak layak menggunakan 4bpp (tanpa alfa), sedangkan nvrtc dapat melakukannya dengan 2bpp.