Premultiplied अल्फा, yea या nay?


10

क्या मुझे premultiplied Alpha का उपयोग करना चाहिए? टॉम फोर्सिथ के लेख को पढ़ना एक अच्छा काम लगता है। प्रेमल्टीप्लाइड अल्फ़ा (AKA additive blending) हर दृष्टि से श्रेष्ठ है।
हालाँकि, premultiplied Alpha में एक बड़ी खामी है, यह अच्छी तरह से टूल के साथ समर्थित नहीं है।

क्या आपने / आपने premultiplied Alpha का उपयोग किया है?

उपकरण समर्थन कैसे है?

विशेष रूप से, मुझे नहीं लगता कि जिम्प प्रीमिप्लाइड अल्फा छवियों को अच्छी तरह से संपादित करेगा। क्या कोई जिम्मी प्लगइन्स प्रीमिलेटेड अल्फा को एक्सपोर्ट करने के लिए हैं? कैसे एक बाहरी उपकरण के बारे में?


मैं ठीक उसी स्थिति में हूं जैसा कि आप - मैं इसे हर जगह उपयोग करना चाहता हूं, लेकिन मुझे यकीन नहीं है कि अगर मैं इसके लिए कुछ अतिरिक्त टूलिंग विकसित करने की आवश्यकता है, तो मैं अपनी संपत्ति को कितनी आसानी से संपादित कर सकता हूं।
काइलोटन

जवाबों:


4

मैं इस समय premultiplied Alpha (देशी Premultiplied अल्फा समर्थन 4.0 में जोड़ा गया था) के साथ XNA 3.1 का उपयोग करता हूं।

अधिकतर यह मेरे समय को बचाता है और सुनिश्चित करता है कि मेरी छवियों के पारदर्शी क्षेत्रों में सही रंग हैं। मैं सिल्वरलाइट को भी पोर्ट करता हूं, जो डिफ़ॉल्ट रूप से प्रीमेटिप्लीकेशन करता है।

XNA में एक कंटेंट पाइपलाइन है जो प्री -प्लेस्ड अल्फा प्रीप्रोसेसिंग सुपर-आसान को जोड़ता है।

उस लिंक में रूपांतरण करने के लिए कोड है। प्रत्येक पिक्सेल के लिए:

c.R = (byte)(c.R * c.A / 255);
c.G = (byte)(c.G * c.A / 255);
c.B = (byte)(c.B * c.A / 255);

कंटेंट पाइपलाइन होने के लिए बहुत कुछ कहा जा सकता है। यदि आप XNA का उपयोग नहीं कर रहे हैं, लेकिन विज़ुअल स्टूडियो का उपयोग कर रहे हैं, तो आप स्वयं को एक साथ फेंक सकते हैं । कोई अन्य आईडीई / निर्माण प्रक्रिया भी सक्षम होनी चाहिए।

और अंत में, यदि आपके पास अपने निर्माण में सामग्री प्रसंस्करण कदम नहीं है (और इसलिए कि आपके पास वैसे भी बहुत अधिक सामग्री नहीं है), तो आप अपने बनावट को लोड करने के समय रनटाइम पर आसानी से प्रीमोलिपीलेशन कर सकते हैं। यह आपकी बनावट लोड समय में कुछ स्थिर कारक जोड़ेगा।

(यदि निहितार्थ स्पष्ट नहीं था: आप शायद छवियों को संपादित नहीं किया जाना चाहिए । यदि आप कर सकते हैं, तो उन्हें प्रीप्लेप्टेड निर्यात करें या बेहतर अभी तक उन्हें प्रीप्रोसेस करें।)


धन्यवाद। यह शार्पलेट्स जैसे कि प्रीमैलिप्लीड अल्फ़ा XNA में पर्याप्त रूप से समर्थित है (या जल्द ही होगा)। मैं अभी भी अपनी पाइपलाइन बनाने के लिए गैर-एक्सएनए उपकरण की तलाश कर रहा हूं।
deft_code

3

यदि आप XNA का उपयोग कर रहे हैं, तो पूर्व-गुणा किए गए अल्फा के लिए काफी समर्थन है। आमतौर पर रूपांतरण सामग्री पाइपलाइन में किया जाता है, लेकिन आपको इसे स्वयं करने से कोई रोक नहीं सकता है।


1

मैं अपने इंजन में डिफ़ॉल्ट रूप से premultiplied अल्फा का उपयोग करता हूं (कलाकार सामग्री परिभाषा फ़ाइल में गैर-गैर-सूचीबद्ध को बाध्य कर सकता है, अगर यह किसी विशेष प्रभाव के लिए आवश्यक है)

उपकरण, जैसा कि आपने देखा है, प्रीमैलिप्लिड अल्फा के साथ अच्छी तरह से व्यवहार नहीं करते हैं - कलाकार रंग और अल्फा चैनल को पूरी तरह से स्वतंत्र रूप से सेट कर सकता है। मैंने चीजों को सेट किया है, इसलिए मेरा कलाकार गैर-प्रीमियर अल्फा (जो कलाकार दिमाग पर आसान लगता है) के साथ बनावट की छवियां बना सकता है, और उपकरण जो इंजन के बनावट प्रारूप में परिवर्तित होता है, डिफ़ॉल्ट रूप से अल्फा को गुणा करता है। वहाँ एक स्विच है तो गैर- premultiplied उत्पन्न किया जा सकता है अगर यह बिल्कुल जरूरत है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.