Kembali ke Blog
Format

Format PKM dan DLL: Panduan Lengkap

10 min baca

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

  1. Unggah gambar PNG/JPG Anda (harus memiliki kekuatan 2 atau kelipatan 4 dimensi)
  2. Pilih antara ETC1 RGB atau ETC2 RGB/RGBA berdasarkan kebutuhan Anda
  3. Unduh file .pkm yang dihasilkan dan integrasikan ke dalam proyek Anda

Menguraikan File PKM

  1. Unggah file .pkm Anda untuk memverifikasi isinya
  2. Pratinjau tekstur yang didekompresi dan periksa kualitasnya
  3. 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: