Referensi Mode Format BC7
Dokumentasi ini berisi daftar 8 mode blok dan alokasi bit untuk blok format kompresi tekstur BC7.
Warna untuk setiap subset dalam blok diwakili oleh dua warna titik akhir eksplisit dan satu set warna terinterpolasi di antaranya. Tergantung pada presisi indeks blok, setiap subset dapat memiliki 4, 8, atau 16 kemungkinan warna.
Mode 0
Mode BC7 0 memiliki karakteristik berikut:
- Komponen warna saja (tanpa alfa)
- 3 subset per blok
- Titik akhir RGBP 4.4.4.1 dengan P-bit unik per titik akhir
- Indeks 3-bit
- 16 partisi
Mode 1
Mode BC7 1 memiliki karakteristik berikut:
- Komponen warna saja (tanpa alfa)
- 2 subset per blok
- Titik akhir RGBP 6.6.6.1 dengan P-bit bersama per subset)
- Indeks 3-bit
- 64 partisi
Mode 2
Mode BC7 2 memiliki karakteristik berikut:
- Komponen warna saja (tanpa alfa)
- 3 subset per blok
- Titik akhir RGB 5.5.5
- Indeks 2-bit
- 64 partisi
Mode 3
Mode BC7 3 memiliki karakteristik berikut:
- Komponen warna saja (tanpa alfa)
- 2 subset per blok
- Titik akhir RGBP 7.7.7.1 dengan P-bit unik per subset)
- Indeks 2-bit
- 64 partisi
Mode 4
Mode BC7 4 memiliki karakteristik berikut:
- Komponen warna dengan komponen alfa terpisah
- 1 subset per blok
- Titik akhir warna RGB 5.5.5
- Titik akhir alfa 6-bit
- Indeks 16 x 2-bit
- Indeks 16 x 3-bit
- Rotasi komponen 2-bit
- Pemilih indeks 1-bit (apakah indeks 2 atau 3-bit digunakan)
Mode 5
Mode BC7 5 memiliki karakteristik berikut:
- Komponen warna dengan komponen alfa terpisah
- 1 subset per blok
- Titik akhir warna RGB 7.7.7
- Titik akhir alfa 8-bit
- Indeks warna 16 x 2-bit
- Indeks alfa 16 x 2-bit
- Rotasi komponen 2-bit
Mode 6
Mode BC7 6 memiliki karakteristik berikut:
- Komponen warna dan alfa gabungan
- Satu subset per blok
- Titik akhir RGBAP 7.7.7.7.1 warna (dan alfa) (P-bit unik per titik akhir)
- Indeks 16 x 4-bit
Mode 7
Mode BC7 7 memiliki karakteristik berikut:
- Komponen warna dan alfa gabungan
- 2 subset per blok
- Titik akhir RGBAP 5.5.5.5.1 warna (dan alfa) (P-bit unik per titik akhir)
- Indeks 2-bit
- 64 partisi
Keterangan
Mode 8 (byte paling tidak signifikan diatur ke 0x00) dicadangkan. Jangan gunakan di encoder Anda. Jika Anda meneruskan mode ini ke perangkat keras, blok yang diinisialisasi ke semua nol akan dikembalikan.
Di BC7, Anda dapat mengodekan komponen alfa dengan salah satu cara berikut:
Jenis blok tanpa pengodean komponen alfa eksplisit. Dalam blok ini, titik akhir warna memiliki pengodean khusus RGB, dengan komponen alfa didekodekan menjadi 1,0 untuk semua texel.
Jenis blok dengan warna gabungan dan komponen alfa. Dalam blok ini, nilai warna titik akhir ditentukan dalam format RGBA, dan nilai komponen alfa diinterpolasi bersama dengan nilai warna.
Jenis blok dengan komponen warna dan alfa yang dipisahkan. Dalam blok ini, nilai warna dan alfa ditentukan secara terpisah, masing-masing dengan sekumpulan indeksnya sendiri. Akibatnya, mereka memiliki vektor yang efektif dan saluran skalar yang dikodekan secara terpisah, di mana vektor biasanya menentukan saluran warna [R, G, B] dan skalar menentukan saluran alfa [A]. Untuk mendukung pendekatan ini, bidang 2-bit terpisah disediakan dalam pengodean, yang memungkinkan spesifikasi pengodean saluran terpisah sebagai nilai skalar. Akibatnya, blok dapat memiliki salah satu dari empat representasi berbeda berikut dari pengodean alfa ini (seperti yang ditunjukkan oleh bidang 2-bit):
- RGB| A: saluran alfa terpisah
- AGB| R: saluran warna "merah" terpisah
- RAB| G: saluran warna "hijau" terpisah
- RGA| B: saluran warna "biru" terpisah
Decoder menyusun ulang urutan saluran kembali ke RGBA setelah pendekodean, sehingga format blok internal tidak terlihat oleh pengembang. Blok dengan komponen warna dan alfa terpisah juga memiliki dua set data indeks: satu untuk set saluran vektor, dan satu untuk saluran skalar. (Dalam kasus Mode 4, indeks ini memiliki lebar yang berbeda [2 atau 3 bit]. Mode 4 juga berisi pemilih 1-bit yang menentukan apakah vektor atau saluran skalar menggunakan indeks 3-bit.)
Topik terkait