تحويل PNG إلى DDS بتنسيق DXT5 وعرض النتائج على الطاير باستخدام بيثون

إذا كنت متأكدًا من أنك تفهم ما يمكن توقعه من تنسيق DXT5 ، فعليك التحقق من ذلك: في المفسد ، تكون الرسوم المتحركة على اليسار صورة PNG تبلغ 4 × 4 بكسل ، على اليمين - محولة إلى DDS (DXT5)
إذا لم يفاجئك ذلك ، فلا تتردد في المضي قدمًا.

نعم ، أنا أعرف بالضبط كيف يحدث التحويل إلى DXT5.
صورة

إذا كنت تبحث عن أداة أو فرصة أثناء التنقل لمعرفة ما سيحدث لصورة PNG بعد التحويل إلى DXT5 - مرحبًا بك في المقالة.

هدف


نظرة عامة عامة على تنسيق DXT5 وأداة تسمح لك بمشاهدة نتيجة التحويل سريعًا.

المقال غير مصمم للإيجابيات ، إنه مخصص للإرشاد فقط.

لمن


  • الذي لم يواجه خلق القوام
  • رسم الصور النقطية: pixelart / 2D
  • الذي تساءل أي نوع من الوحش مثل S3TC / DXT
  • الذي لا يبحث عن طرق سهلة لإنشاء الألعاب
  • من يحاول إنشاء ألعاب بدون أطر عمل معروفة (الوحدة ، إلخ)
  • استخدم نظام UNIX (لأن الأداة التي سننظر فيها لاحقًا ، تم اختبارها فقط تحت Ubuntu)

ما هو S3TC / DXT


باختصار شديد ، هذا هو ضغط الصور بحيث: أ) يستخدم ذاكرة وصول عشوائي (v) أقل ؛ ب) تحميل أسرع في (الخامس) RAM.

هنا أسمح لنفسي بترك رابط إلى لوحة حيث يوجد ملخص موجز للتنسيقات ولماذا / متى استخدامها هنا .

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

مشاكل


DXT5 (أخذته كمثال ، لأنني أستخدمه في المشروع الحالي) هو تنسيق ضغط ضياع ، لذلك نحن نضحي بالألوان. أولاً ، لن تكون الألوان بتنسيق RGB ذي 8 بت ، أي لا RGB888 ، ولكن في شكل RGB565. لا يزال هناك نصف مشكلة مع هذا. لكن المشكلة الرئيسية (في رأيي) هي أنه في إطار واحد ، وهو 4 × 4 بكسل ، سيكون للإخراج 4 ألوان كحد أقصى: 2 أساسي و 2 إضافي.

تخيل أنك مطور (أو مصمم / فنان) لم تصادف تطوير اللعبة من قبل (كمثال) وقررت إنشاء شبح جميل متعدد الألوان بأسلوب pixelart / 2D ، أو مجرد صورة على الخلفية (مرة أخرى ، صورة نقطية ، وليس متجهة) .

التقطت الماوس / الكمبيوتر اللوحي ، ووجه. يبدو جميلاً (لنفترض أنه جميل).

صورة

لتحويله إلى DDS ، تحتاج إلى استخدام GIMP أو Photoshop مع مكونات إضافية أو شيء مشابه. لكنك لن ترى النتيجة إلا بعد فتح الملف الناتج.

دعونا نرى ما حدث (تخيل أننا لا نرى سوى الجانب الأيمن من الصورة ، في حالة فتح ملف DDS مع GIMP):

صورة

الفتاة كانت حزينة بالتأكيد ، ذبلت الزهور ، أصبح الإكليل حبل. "هم ،" أنت تقول. الآن ، إذا رأيت ما حدث سابقًا ... وهنا الأداة التي أضعها معًا لاحتياجاتي يمكن أن تساعد (مساعدة مشروطة) - Pyglet PNG إلى DDS Editor

لماذا


لتحرير / تحرير الملف المصدر ، واختيار الألوان التقريبية ، وإعداد لوحة تقريبية.

يحول هذا "المحرر" أثناء الطيران صورة PNG إلى DDS ويمكنك أن ترى على الفور ما يحدث عند تحويل وإدخال العفريت في لعبة.

لماذا


لأنني لم أجد الأدوات التي تسمح لك برؤية ما تبدو عليه صورتك / نسيجك.

هل هذا كل شيء؟


في هذه المرحلة ، نعم. يمكن إضافة الكثير من الأشياء إلى هذا "المحرر" ، لكن كل شيء له وقته.

أود أن أعرف المزيد من المجتمع: كيف يمكنك حل مثل هذه الحالات عندما تحتاج إلى التحقق مما سيحدث للنسيج في الإخراج.

ملاحظة: المحرر يعمل بشكل طبيعي نسبيا مع صور تصل إلى 512 * 512. يتدفق من الذاكرة ، ولكن ليس كثيرًا :) (في الكود يمكنك العثور على هذه الطريقة عن طريق التعليق "!!! ACHTUNG !!!").

Source: https://habr.com/ru/post/ar480214/


All Articles