مطابقة لون ما مع كتلة في ماينكرافت أصعب مما تبدو عليه
قد تبدو كتلتان متطابقتين تمامًا في RGB ومختلفتين كليًا على الحائط، لأن اللعبة تُظلِّل كل وجه ترسمه.
اختر الكتلة التي يكون متوسط لونها الأقرب إلى هدفك وستخطئ على الأرجح. لا ترسم ماينكرافت الكتلة بمتوسط لون نسيجها، بل تضرب ذلك النسيج في سطوع خاص بكل وجه ثم في مستوى الضوء عند ذلك الموضع. واللون الذي أخذته من لقطة شاشة هو أصلاً حاصل ذلك التظليل، لذا فإن تمريره مباشرة إلى بحث أقرب لون يطابقه مع قيمة لا تعرضها أي كتلة فعليًا.
لماذا يفشل متوسط RGB
يتعامل متوسط RGB مع القنوات الثلاث على أنها متساوية الأهمية وكأنها تتغير خطيًا. وليس أيٌّ من الأمرين صحيحًا. فالبصر البشري أكثر حساسية بكثير للفروق في الأخضر منها في الأزرق، وفرق اللون بالحجم الرقمي نفسه يُقرأ أكبر بكثير في الدرجات الداكنة منه في الساطعة. وقد تقع كتلتان على المسافة نفسها في RGB من هدف ما وتبدوان مختلفتين تمامًا على الحائط.
صُمِّم CIELAB لإصلاح ذلك تحديدًا: فالمسافات الرقمية المتساوية في Lab تقابل تقريبًا فروقًا مُدرَكة متساوية. والمطابقة في Lab هي سبب قدرة أداة لوحة الألوان على اقتراح كتلة تُقرأ فعلًا باللون الصحيح بدلًا من كتلة تشترك فقط في رمز hex.
النسيج ليس لونًا واحدًا
نسيج الكتلة مربع من البكسلات، ومعظمها ليس مسطحًا. فالنسيج بحجم 16×16 يحوي 256 بكسلًا، ونسيج حجر مُشوَّش أو ورقة مُرقَّطة ينتشر على مدى واسع من الدرجات. واختزاله في متوسط واحد يُهدر التباين، وهو الجزء الذي يحدد ما إذا كانت الفسيفساء تُقرأ ناعمة أم مُنقَّطة. ويقيس مُطابِق لوحة الألوان مقابل ملفات الأنسجة الحقيقية، لذا تعكس المسافة التي يذكرها ما تحتويه الكتلة فعليًا.
Java وBedrock تختلفان هنا
لا تُصدر النسختان أنسجة متطابقة، ولا تُظلِّلان بالطريقة نفسها. تطبّق Java سطوع الوجه الاتجاهي وتلوين الأحياء عبر خط معالجتها الخاص؛ بينما تتعامل Bedrock مع التلوين وبعض ألوان الكتل بشكل مختلف. ولوحة تطابق تمامًا في إحدى النسختين قد تكون visibly off في الأخرى، خصوصًا للعشب والأوراق والماء. ابنِ اللوحة في النسخة التي تضع فيها الكتل فعليًا.
من الصورة إلى الفسيفساء
الفسيفساء شبكة، وكل خلية فيها تصبح كتلة واحدة. ويترتب على ذلك أمران. أولًا، يجب تصغير الصورة إلى حجم الشبكة قبل المطابقة لا بعدها — فالمطابقة بالدقة الكاملة ثم التصغير تُنتج لوحة مختارة لتفاصيل لم تعد موجودة. ثانيًا، الناتج هو .mcfunction، لذا يُوضع البناء كله بأمر برمجي بدلًا من اليد. وعدد الأوامر يتناسب مع عدد الخلايا، لا مع عدد بكسلات الصورة.
فخ الشفافية
البكسلات ذات الشفافية الجزئية ليس لها مقابل واحد من الكتل. حدِّد مسبقًا هل تصبح هواءً، أم نوعًا من الزجاج، أم أقرب مطابقة معتمة، لأن المُطابِق لا يستطيع تخمين نيتك وإلا سيطويها في أقرب لون صلب.
حوِّل صورة إلى فسيفساء كتل باستخدام .mcfunction جاهز، أو اعثر على أقرب كتلة فانيلا لأي لون، في Pixel Art & Block Palette.