العودة إلى المدونة
التنسيقات

تنسيق PKM وETC: الدليل الكامل

10 دقيقة قراءة

PKM هو تنسيق حاوية بسيط للأنسجة المضغوطة بـ ETC، ويستخدم على نطاق واسع على منصات Android وOpenGL ES. توفر هذه المقالة دليلاً كاملاً لفهم بنية تنسيق PKM وإصدارات ضغط ETC/ETC2 وكيفية استخدامها بفعالية.

ما هو تنسيق PKM؟

PKM (اختصار لـ "PoKeMon"، الذي أطلقت عليه شركة Ericsson) عبارة عن تنسيق حاوية بسيط مصمم خصيصًا لتخزين بيانات النسيج المضغوطة بواسطة ETC. على عكس التنسيقات المعقدة مثل KTX أو DDS، يتمتع PKM ببنية بسيطة برأس يبلغ 16 بايت فقط متبوعًا ببيانات صورة مضغوطة.

تم إنشاء التنسيق لتوفير طريقة خفيفة لتخزين وتحميل المواد المضغوطة بتقنية ETC على الأجهزة المحمولة. إن بساطته تجعل من السهل تنفيذه وتحليله، دون أي حمل فعلي يتجاوز بيانات النسيج المضغوطة نفسها.

هيكل ملف PKM

  • رأس 16 بايت: الرقم السحري (PKM)، الإصدار، التنسيق، الأبعاد
  • بيانات النسيج المضغوطة: كتل ETC/ETC2 الخام

إصدارات ضغط ETC

هناك إصداران رئيسيان من ضغط ETC، ولكل منهما إمكانيات مختلفة:

ETC1 (ضغط نسيج إريكسون 1)

معيار ETC الأصلي، يدعم فقط قنوات ألوان RGB مع نسبة ضغط ثابتة 4:1. مدعوم على نطاق واسع على أجهزة Android منذ OpenGL ES 2.0.

يدعم: جميع أجهزة OpenGL ES 2.0+

نسبة الضغط: 4:1 ثابت (4 بت لكل بكسل)

ETC2 (ضغط نسيج إريكسون 2)

خليفة محسّن لـ ETC1، مع إضافة دعم RGBA مع خيارات تنسيق متعددة. يوفر جودة أفضل ودعمًا لقناة ألفا مع الحفاظ على التوافق مع الإصدارات السابقة.

يدعم: برنامج OpenGL ES 3.0+، فولكان

نسبة الضغط: 4:1 إلى 8:1 حسب التنسيق

متغيرات تنسيق PKM

يمكن أن يحتوي PKM على أنواع مختلفة من تنسيقات ETC:

ETC1 RGB

التنسيق الأصلي، RGB فقط، بدون قناة ألفا

ETC2 RGB

تحسين ضغط RGB بجودة أفضل من ETC1

ETC2 RGBA

دعم RGBA كامل مع ضغط 8:1 (8 بت لكل بكسل)

ETC2 RGB + ألفا المثقوب

RGB مع 1 بت ألفا، مع الحفاظ على ضغط 4:1

مزايا PKM/الخ

دعم عالمي للأندرويد

يتم ضمان دعم ETC1 على جميع أجهزة Android، مما يجعله تنسيق الضغط الأكثر قابلية للحمل لتطوير Android.

نسبة ضغط ثابتة

استخدام الذاكرة المتوقع مع نسب ضغط متسقة 4:1 أو 8:1، مما يبسط حسابات ميزانية الذاكرة.

نسبة الجودة إلى الحجم جيدة

يوفر ETC2 جودة مرئية ممتازة لمعظم أنواع الأنسجة، مقارنة بتنسيقات سطح المكتب مثل DXT/BCn.

فك تشفير الأجهزة

إلغاء الضغط المباشر على وحدة معالجة الرسومات (GPU) دون أي حمل لوحدة المعالجة المركزية (CPU) أثناء العرض، مما يتيح أخذ عينات نسيج فعالة.

القيود والاعتبارات

حدود الجودة ETC1

يمكن لـ ETC1 إظهار القطع الأثرية المرئية على الأنسجة ذات التفاصيل عالية التردد أو التدرجات الناعمة. فكر في استخدام ETC2 للحصول على جودة أفضل.

لا يوجد ألفا في ETC1

ETC1 لا يدعم قنوات ألفا. تحتاج إلى استخدام ETC2 RGBA أو تخزين ألفا بشكل منفصل إذا كنت تستهدف أجهزة OpenGL ES 2.0.

ميزات متقدمة محدودة

لا يدعم PKM خرائط mipmap أو خرائط cubemap أو صفائف النسيج. استخدم تنسيقات KTX أو KTX2 لهذه الميزات المتقدمة.

كيفية استخدام تنسيق PKM

يعد استخدام ملفات PKM في مشاريعك أمرًا بسيطًا:

الترميز إلى PKM

  1. قم بتحميل صورة PNG/JPG (يجب أن تحتوي على أبعاد قوة 2 أو أبعاد متعددة 4)
  2. اختر بين ETC1 RGB أو ETC2 RGB/RGBA بناءً على احتياجاتك
  3. قم بتنزيل ملف .pkm الذي تم إنشاؤه ودمجه في مشروعك

فك تشفير ملفات PKM

  1. قم بتحميل ملف .pkm الخاص بك للتحقق من محتوياته
  2. قم بمعاينة النسيج المضغوط والتحقق من الجودة
  3. قم بالتصدير إلى PNG إذا كنت بحاجة إلى تعديل النسيج أو فحصه

أفضل الممارسات

  • استخدم ETC1 RGB لتحقيق أقصى قدر من التوافق عبر جميع أجهزة Android (OpenGL ES 2.0+)
  • تفضل ETC2 RGBA عند استهداف الأجهزة الحديثة (OpenGL ES 3.0+) التي تحتاج إلى قنوات ألفا
  • تأكد من أن أبعاد النسيج هي مضاعفات 4 (ETC1) أو قوة 2 للحصول على أفضل جودة
  • بالنسبة للأنسجة التي تتطلب ألفا على الأجهزة القديمة، فكر في استخدام أنسجة منفصلة ذات تدرج رمادي
  • اختبر الأنسجة المضغوطة على الأجهزة المستهدفة الفعلية - يختلف إدراك الجودة حسب نوع المحتوى

خاتمة

يعد PKM مع ضغط ETC/ETC2 هو الخيار القياسي لتطوير Android وOpenGL ES للجوال. إن دعمه العالمي وأدائه الذي يمكن التنبؤ به وجودته الجيدة يجعله خيارًا افتراضيًا ممتازًا لضغط نسيج الهاتف المحمول.

تعمل أدوات تشفير وفك تشفير PKM عبر الإنترنت على تسهيل العمل مع الأنسجة المضغوطة بواسطة ETC دون تثبيت أدوات سطر الأوامر أو مجموعات SDK. سواء كنت تقوم بإنشاء أنسجة جديدة أو فحص الأنسجة الموجودة، فإن هذه الأدوات تساعدك على تحسين مسار الرسومات على الهاتف المحمول الخاص بك.

مزيد من القراءة والمراجع

تعرف على المزيد حول تنسيقات ETC وPKM: