Saya menduga memang mungkin untuk membalik blok BC6-7 dengan pekerjaan yang jauh lebih sedikit daripada dekompresi dan kompres penuh, tetapi masih ada piknik dan jauh lebih kompleks daripada membalik blok BC1-5.
Pertama-tama, BC6-7 memiliki berbagai mode yang dapat dipilih per blok. Mode memiliki tata letak biner yang sama sekali berbeda, jadi Anda harus menulis rutin flip yang berbeda untuk setiap mode (ada ~ 20 di antaranya, IIRC).
Kesulitan lain adalah mode dipartisi, di mana piksel dalam blok dipartisi menjadi 2 atau 3 himpunan bagian, masing-masing dengan segmen garis RGB sendiri. Partisi harus dipilih dari set yang telah ditentukan; yang untuk BC6 dapat dilihat di sini . Masalahnya adalah set partisi ini tidak simetris di bawah membalik vertikal. Namun, saya menduga itu adalah simetris di bawah beberapa kombinasi membalik vertikal dan mempertukarkan dua himpunan bagian. Sebagai contoh, melihat partisi # 22 (baris ke-6, kolom ke-3) pada tautan itu, tidak ada versi terbalik secara vertikal di tabel, tetapi jika Anda membalik secara vertikal daninterchange 0s dan 1s, Anda berakhir dengan partisi # 9 (baris ke-3, kolom ke-2). Saya belum memverifikasi bahwa setiap partisi dapat dibalik dengan cara ini, saya juga belum memeriksa yang untuk BC7 (yang juga termasuk partisi dengan 3 himpunan bagian).
Bahkan jika itu berhasil, Anda masih belum bebas dari rumah. Dalam BC1-5, urutan dua titik akhir dari segmen garis RGB digunakan untuk beralih mode, tetapi dalam BC6-7 urutan titik akhir dipilih untuk memperbaiki satu bit dari indeks per-pixel di setiap subset partisi. Karena itu jika Anda mengubah partisi di sekitar Anda mungkin juga harus menukar urutan titik akhir.
Dan last but not least, dalam BC6-7 titik akhir sering dikompresi-delta (yaitu satu titik akhir disimpan pada presisi penuh dan yang lain disimpan sebagai delta dengan presisi lebih rendah dari itu). Menukar subset partisi dan urutan titik akhir akan mengganti titik akhir mana yang merupakan titik presisi tinggi, sehingga Anda harus mengocok bit berpresisi rendah sekitar dan meniadakan beberapa delta.
Semua dalam semua, sepertinya tidak ada showstopper mendasar (meskipun saya belum benar-benar menulis kode), tetapi pasti akan banyak pekerjaan untuk membalik atau memutar format ini. Jika memungkinkan, saya sarankan membalik gambar dalam pipa seni Anda sebelum mereka dikompresi.
(BTW, spesifikasi BC6-7 terlengkap yang saya temukan adalah spesifikasi ARB_texture_compression_bptc ; Saya juga menulis posting blog tentang format BCn beberapa waktu lalu.)