Format PKM dan DLL: Panduan Lengkap
PKM adalah format container sederhana untuk tekstur terkompresi ETC, banyak digunakan pada platform Android dan OpenGL ES. Artikel ini memberikan panduan lengkap untuk memahami struktur format PKM, versi kompresi ETC/ETC2, dan cara menggunakannya secara efektif.
Apa itu Format PKM?
PKM (kependekan dari 'PoKeMon', dinamai oleh Ericsson) adalah format wadah sederhana yang dirancang khusus untuk menyimpan data tekstur terkompresi ETC. Berbeda dengan format kompleks seperti KTX atau DDS, PKM memiliki struktur minimal dengan hanya header 16-byte yang diikuti dengan data gambar terkompresi.
Format ini dibuat untuk memberikan cara ringan untuk menyimpan dan memuat tekstur terkompresi ETC di perangkat seluler. Kesederhanaannya membuatnya mudah untuk diimplementasikan dan diurai, dengan hampir tidak ada overhead di luar data tekstur terkompresi itu sendiri.
Struktur Berkas PKM
- Header 16-byte: Angka ajaib (PKM), versi, format, dimensi
- Data tekstur terkompresi: Blok ETC/ETC2 mentah
Versi Kompresi DLL
Ada dua versi utama kompresi ETC, masing-masing dengan kemampuan berbeda:
ETC1 (Kompresi Tekstur Ericsson 1)
Standar ETC asli, hanya mendukung saluran warna RGB dengan rasio kompresi tetap 4:1. Didukung secara luas di perangkat Android sejak OpenGL ES 2.0.
Mendukung: Semua perangkat OpenGL ES 2.0+
Rasio Kompresi: 4:1 tetap (4 bit per piksel)
ETC2 (Kompresi Tekstur Ericsson 2)
Peningkatan penerus ETC1, menambahkan dukungan RGBA dengan berbagai opsi format. Memberikan kualitas yang lebih baik dan dukungan saluran alfa dengan tetap menjaga kompatibilitas ke belakang.
Mendukung: OpenGL ES 3.0+, Vulkan
Rasio Kompresi: 4:1 hingga 8:1 tergantung formatnya
Varian Format PKM
PKM dapat berisi berbagai jenis format ETC:
ETC1 RGB
Format asli, hanya RGB, tanpa saluran alfa
ETC2 RGB
Peningkatan kompresi RGB dengan kualitas lebih baik daripada ETC1
ETC2 RGBA
Dukungan RGBA penuh dengan kompresi 8:1 (8 bit per piksel)
DLL2 RGB + Alpha tembus
RGB dengan alfa 1-bit, mempertahankan kompresi 4:1
Keunggulan PKM/DLL
Dukungan Android Universal
ETC1 dijamin didukung di semua perangkat Android, menjadikannya format kompresi paling portabel untuk pengembangan Android.
Rasio Kompresi Tetap
Penggunaan memori yang dapat diprediksi dengan rasio kompresi 4:1 atau 8:1 yang konsisten, menyederhanakan penghitungan anggaran memori.
Rasio Kualitas terhadap Ukuran yang Baik
ETC2 memberikan kualitas visual yang sangat baik untuk sebagian besar jenis tekstur, sebanding dengan format desktop seperti DXT/BCn.
Dekode Perangkat Keras
Dekompresi GPU langsung tanpa overhead CPU selama rendering, memungkinkan pengambilan sampel tekstur yang efisien.
Keterbatasan dan Pertimbangan
Batas Kualitas DLL1
ETC1 dapat menampilkan artefak yang terlihat pada tekstur dengan detail frekuensi tinggi atau gradien halus. Pertimbangkan untuk menggunakan ETC2 untuk kualitas yang lebih baik.
Tidak ada Alfa di ETC1
ETC1 tidak mendukung saluran alfa. Anda perlu menggunakan ETC2 RGBA atau menyimpan alpha secara terpisah jika menargetkan perangkat OpenGL ES 2.0.
Fitur Lanjutan Terbatas
PKM tidak mendukung mipmaps, cubemaps, atau array tekstur. Gunakan format KTX atau KTX2 untuk fitur lanjutan ini.
Cara Menggunakan Format PKM
Menggunakan file PKM dalam proyek Anda sangatlah mudah:
Pengkodean ke PKM
- Unggah gambar PNG/JPG Anda (harus memiliki kekuatan 2 atau kelipatan 4 dimensi)
- Pilih antara ETC1 RGB atau ETC2 RGB/RGBA berdasarkan kebutuhan Anda
- Unduh file .pkm yang dihasilkan dan integrasikan ke dalam proyek Anda
Menguraikan File PKM
- Unggah file .pkm Anda untuk memverifikasi isinya
- Pratinjau tekstur yang didekompresi dan periksa kualitasnya
- Ekspor ke PNG jika Anda perlu mengedit atau memeriksa teksturnya
Praktik Terbaik
- Gunakan ETC1 RGB untuk kompatibilitas maksimum di semua perangkat Android (OpenGL ES 2.0+)
- Lebih memilih ETC2 RGBA saat menargetkan perangkat modern (OpenGL ES 3.0+) yang memerlukan saluran alfa
- Pastikan dimensi tekstur adalah kelipatan 4 (ETC1) atau pangkat 2 untuk kualitas terbaik
- Untuk tekstur yang memerlukan alfa pada perangkat lama, pertimbangkan untuk menggunakan tekstur skala abu-abu terpisah
- Uji tekstur terkompresi pada perangkat target sebenarnya - persepsi kualitas bervariasi berdasarkan jenis konten
Kesimpulan
PKM dengan kompresi ETC/ETC2 adalah pilihan standar untuk pengembangan OpenGL ES seluler dan Android. Dukungan universal, kinerja yang dapat diprediksi, dan kualitas yang baik menjadikannya standar yang sangat baik untuk kompresi tekstur seluler.
Alat encoder dan decoder PKM online kami memudahkan bekerja dengan tekstur terkompresi ETC tanpa menginstal alat baris perintah atau SDK. Baik Anda membuat tekstur baru atau memeriksa tekstur yang sudah ada, alat ini membantu Anda mengoptimalkan saluran grafis seluler Anda.
Bacaan & Referensi Lebih Lanjut
Pelajari lebih lanjut tentang format ETC dan PKM:
- Kompresi Tekstur DLL (Khronos) - Spesifikasi resmi OpenGL ES dan dokumentasi format ETC
- Kompresi Tekstur Ericsson (Wikipedia) - Sejarah dan detail teknis algoritma kompresi ETC
- Grafik Android: Kompresi Tekstur - Panduan resmi Android untuk format kompresi tekstur
- Spesifikasi Format File PKM - Spesifikasi teknis format wadah PKM