PKM ve ETC Formatı: Tam Kılavuz
PKM, Android ve OpenGL ES platformlarında yaygın olarak kullanılan, ETC ile sıkıştırılmış dokular için basit bir kapsayıcı formattır. Bu makale, PKM format yapısını, ETC/ETC2 sıkıştırma sürümlerini ve bunların etkili bir şekilde nasıl kullanılacağını anlamak için eksiksiz bir kılavuz sağlar.
PKM Formatı Nedir?
PKM (Ericsson tarafından adlandırılan 'PoKeMon'un kısaltması), özellikle ETC ile sıkıştırılmış doku verilerini depolamak için tasarlanmış basit bir kap formatıdır. KTX veya DDS gibi karmaşık formatlardan farklı olarak PKM, yalnızca 16 baytlık bir başlık ve ardından sıkıştırılmış görüntü verileri içeren minimal bir yapıya sahiptir.
Format, ETC ile sıkıştırılmış dokuları mobil cihazlara depolamak ve yüklemek için hafif bir yol sağlamak üzere oluşturuldu. Basitliği, sıkıştırılmış doku verilerinin ötesinde neredeyse hiçbir ek yük olmadan uygulamayı ve ayrıştırmayı kolaylaştırır.
PKM Dosya Yapısı
- 16 baytlık başlık: Sihirli sayı (PKM), sürüm, format, boyutlar
- Sıkıştırılmış doku verileri: Ham ETC/ETC2 blokları
ETC Sıkıştırma Versiyonları
ETC sıkıştırmanın her biri farklı yeteneklere sahip iki ana sürümü vardır:
ETC1 (Ericsson Doku Sıkıştırma 1)
Yalnızca 4:1 sabit sıkıştırma oranına sahip RGB renk kanallarını destekleyen orijinal ETC standardı. OpenGL ES 2.0'dan bu yana Android cihazlarda yaygın olarak desteklenmektedir.
Destek: Tüm OpenGL ES 2.0+ cihazları
Sıkıştırma Oranı: 4:1 sabit (piksel başına 4 bit)
ETC2 (Ericsson Doku Sıkıştırma 2)
Çoklu format seçenekleriyle RGBA desteği eklenerek ETC1'in geliştirilmiş halefi. Geriye dönük uyumluluğu korurken daha iyi kalite ve alfa kanalı desteği sağlar.
Destek: OpenGL ES 3.0+, Vulkan
Sıkıştırma Oranı: Formata bağlı olarak 4:1 ila 8:1
PKM Formatı Çeşitleri
PKM farklı ETC format türlerini içerebilir:
ETC1 RGB
Orijinal format, yalnızca RGB, alfa kanalı yok
ETC2 RGB
ETC1'den daha iyi kalitede geliştirilmiş RGB sıkıştırması
ETC2 RGBA
8:1 sıkıştırmayla tam RGBA desteği (piksel başına 8 bit)
ETC2 RGB + Geçişli Alfa
4:1 sıkıştırmayı koruyan 1 bit alfalı RGB
PKM/ETC'nin Avantajları
Evrensel Android Desteği
ETC1'in tüm Android cihazlarda destekleneceği garanti edilir ve bu da onu Android geliştirme için en taşınabilir sıkıştırma formatı yapar.
Sabit Sıkıştırma Oranı
Tutarlı 4:1 veya 8:1 sıkıştırma oranlarıyla öngörülebilir bellek kullanımı, bellek bütçesi hesaplamalarını basitleştirir.
İyi Kalite-Boyut Oranı
ETC2, çoğu doku türü için DXT/BCn gibi masaüstü formatlarıyla karşılaştırılabilecek mükemmel görsel kalite sağlar.
Donanım Kod Çözme
İşleme sırasında sıfır CPU ek yüküyle doğrudan GPU sıkıştırmasını açma, verimli doku örneklemesine olanak tanır.
Sınırlamalar ve Hususlar
ETC1 Kalite Sınırları
ETC1, yüksek frekanslı ayrıntılara veya yumuşak gradyanlara sahip dokular üzerindeki görünür eserleri gösterebilir. Daha iyi kalite için ETC2 kullanmayı düşünün.
ETC1'de Alfa Yok
ETC1 alfa kanallarını desteklemez. OpenGL ES 2.0 aygıtlarını hedefliyorsanız ETC2 RGBA kullanmanız veya alfayı ayrı olarak saklamanız gerekir.
Sınırlı Gelişmiş Özellikler
PKM mipmap'leri, küp haritalarını veya doku dizilerini desteklemez. Bu gelişmiş özellikler için KTX veya KTX2 formatlarını kullanın.
PKM Formatı Nasıl Kullanılır
Projelerinizde PKM dosyalarını kullanmak basittir:
PKM'ye kodlama
- PNG/JPG resminizi yükleyin (2'nin üssü veya 4'ün katı boyutlara sahip olmalıdır)
- İhtiyaçlarınıza göre ETC1 RGB veya ETC2 RGB/RGBA arasından seçim yapın
- Oluşturulan .pkm dosyasını indirin ve projenize entegre edin
PKM Dosyalarının Kodunu Çözme
- İçeriğini doğrulamak için .pkm dosyanızı yükleyin
- Sıkıştırılmış dokuyu önizleyin ve kaliteyi kontrol edin
- Dokuyu düzenlemeniz veya incelemeniz gerekiyorsa PNG'ye aktarın
En İyi Uygulamalar
- Tüm Android cihazlarda maksimum uyumluluk için ETC1 RGB'yi kullanın (OpenGL ES 2.0+)
- Alfa kanallarına ihtiyaç duyan modern cihazları (OpenGL ES 3.0+) hedeflerken ETC2 RGBA'yı tercih edin
- En iyi kalite için doku boyutlarının 4'ün katları (ETC1) veya 2'nin katları olduğundan emin olun
- Eski cihazlarda alfa gerektiren dokular için ayrı gri tonlamalı dokular kullanmayı düşünün
- Sıkıştırılmış dokuları gerçek hedef cihazlarda test edin - kalite algısı içerik türüne göre değişir
Çözüm
ETC/ETC2 sıkıştırmalı PKM, Android ve mobil OpenGL ES geliştirme için standart seçimdir. Evrensel desteği, öngörülebilir performansı ve iyi kalitesi, onu mobil doku sıkıştırma için mükemmel bir varsayılan haline getirir.
Çevrimiçi PKM kodlayıcı ve kod çözücü araçlarımız, komut satırı araçları veya SDK'lar yüklemeden ETC sıkıştırılmış dokularla çalışmayı kolaylaştırır. İster yeni dokular oluşturuyor olun ister mevcut dokuları inceliyor olun, bu araçlar mobil grafik işlem hattınızı optimize etmenize yardımcı olur.
İlave Okuma ve Referanslar
ETC ve PKM formatları hakkında daha fazla bilgi edinin:
- ETC Doku Sıkıştırma (Khronos) - Resmi OpenGL ES spesifikasyonu ve ETC formatı belgeleri
- Ericsson Doku Sıkıştırma (Wikipedia) - ETC sıkıştırma algoritmalarının geçmişi ve teknik ayrıntıları
- Android Grafikleri: Doku Sıkıştırma - Doku sıkıştırma formatlarına ilişkin resmi Android kılavuzu
- PKM Dosya Formatı Belirtimi - PKM konteyner formatı için teknik özellikler