Format tekstur terkompresi GPU seperti DXT / BC / ETC dirancang khusus untuk dibaca langsung dari bentuk terkompresi. Mereka tidak perlu dibongkar menjadi buffer RGBA mentah.
Cara kerjanya adalah setiap blok texels (seringkali 4x4) membutuhkan jumlah bit yang tetap - jadi kami tahu persis seberapa jauh di buffer untuk mencari texel tertentu - dan blok ini dapat didekompresi tanpa membaca semua sekelilingnya / Informasi tekstur sebelumnya. GPU berisi perangkat keras khusus yang hanya mendekompresi blok texel yang diminta sesuai kebutuhan untuk memenuhi permintaan pengambilan sampel tekstur dari shader Anda.
Ini berbeda dengan format seperti jpg & png, di mana jumlah ruang yang dibutuhkan setiap texel dapat bervariasi di seluruh gambar (area terperinci yang mengambil lebih banyak data, area yang dapat diprediksi mengambil lebih sedikit), sehingga untuk menemukan texel tertentu yang harus Andaekompresi seluruh gambar, atau setidaknya potongan besar / didistribusikan itu. Tetapi karena mereka dapat secara selektif mengompres area yang dapat diprediksi dari suatu tekstur, mereka cenderung mengompres gambar ke ukuran yang lebih kecil untuk penyimpanan pada disk atau transmisi melalui jaringan daripada apa yang kita dapatkan dari format yang ramah GPU. Strategi yang berbeda untuk penggunaan yang berbeda.
Secara umum, mengajukan beberapa pertanyaan harus dilakukan melalui banyak posting, tetapi karena ini adalah jawaban yang cukup singkat, saya akan mencapai poin 3 juga:
" Framebuffer " hanyalah sedikit memori video tertentu yang telah kami putuskan untuk digunakan untuk menyimpan gambar yang dikomposisikan yang ingin kami tampilkan ke layar. Perhatikan detail dalam jawaban JarkkoL, di mana pada beberapa perangkat keras khusus kita dapat memilih untuk menempatkan buffer ini di bagian tertentu dari memori video kami yang tersedia yang dioptimalkan untuk kebutuhan bandwidth target render.