ماذا تعني أوضاع المزج في pygame؟
-
03-07-2019 - |
سؤال
سطح. بليت لديه معلمة جديدة في 1.8:يمزج.يتم تعريف القيم التالية:
BLEND_ADD
BLEND_SUB
BLEND_MULT
BLEND_MIN
BLEND_MAX
BLEND_RGBA_ADD
BLEND_RGBA_SUB
BLEND_RGBA_MULT
BLEND_RGBA_MIN
BLEND_RGBA_MAX
BLEND_RGB_ADD
BLEND_RGB_SUB
BLEND_RGB_MULT
BLEND_RGB_MIN
BLEND_RGB_MAX
هل يمكن لأحد أن يشرح ماذا تعني هذه الأوضاع؟
المحلول
يمكنك العثور على مصدر عمليات المزج هنا: السطح. ح
في الأساس، يقوم ADD بإضافة البكسلتين المصدريتين ويقطع النتيجة عند 255.يقوم SUB بطرح البكسلتين والمقاطع عند 0.
MULT
: result = (p1 * p2) / 256
MIN
:حدد القيمة الأقل لكل قناة (وليس البكسل بالكامل)، لذلك إذا كانت قيمة البكسل 1 كذلك (100,10,0)
وpixel2 هو (0,10,100)
, ، لقد حصلت (0,10,0)
MAX
:مقابل MIN (أي. (100,10,100)
)
وهناك وضع مزج إضافي غير واضح من المستندات: 0
(أو فقط اترك المعلمة خارجًا).سيقوم هذا الوضع "بختم" سطح المصدر في الوجهة.إذا كان السطح المصدر يحتوي على قناة ألفا، فسيحدد ذلك مدى "قوة" كل بكسل (0
= لا أثر 255
= نسخ البكسل، 128
: result = .5*source + .5*destination
).
تأثيرات مفيدة:لتغميق منطقة معينة، استخدم وضع المزج 0، واملأ سطح المصدر/الختم باللون الأسود واضبط ألفا على 10
: (0,0,0,10)
.
لتفتيحه، استخدمي اللون الأبيض (255,255,255,10)
.
نصائح أخرى
هذه هي أوضاع المزج لتركيب الصور فوق بعضها البعض.يخبرك اسم وضع المزج بالفعل بالعملية الأساسية.
ال BLEND_*
الثوابت هي ببساطة أسماء مستعارة لـ BLEND_RGB_*
الثوابت و BLEND_RGBA_*
تعمل المتغيرات على جميع القنوات الأربع (بما في ذلك قناة ألفا) بدلاً من RGB فقط.
للحصول على معلومات عامة حول أوضاع المزج المختلفة وتأثيراتها، راجع هنا.