जब कोई शेडर एक बनावट से पढ़ता है, जबकि यह एक ही बनावट को एक साथ प्रस्तुत करता है, तो परिणाम अनिर्धारित होते हैं। यही कारण है कि GlBlendFunc और glBlendEquation के साथ "पारंपरिक" या निश्चित-कार्यक्षमता मिश्रण उपयोगी है।
पारंपरिक मिश्रण का उपयोग करके दो छवियों को मिश्रण करने के लिए, आप पहली छवि प्रस्तुत करते हैं, मिश्रण मोड, फ़ंक्शन और समीकरण सेट करते हैं, और दूसरी छवि प्रस्तुत करते हैं। यह सही परिणाम देने की गारंटी है, और आमतौर पर पारदर्शिता जैसे प्रभाव प्राप्त करने का सबसे तेज़ तरीका है।
एक शेडर के साथ समान प्रभाव प्राप्त करने के लिए, आपको पहली छवि को एक सहायक बनावट, शेडर्स बदलने, और दूसरी छवि को वास्तविक फ्रेमबफर में प्रस्तुत करने की आवश्यकता है, जो टुकड़े टुकड़े में अंतिम चरण के रूप में मिश्रण कर रहा है। बनावट के अतिरिक्त ओवरहेड की वजह से यह आमतौर पर धीमा होता है, और निश्चित रूप से सहायक बनावट के लिए अधिक GPU स्मृति का उपयोग करेगा।
आधुनिक हार्डवेयर पर, दोनों तकनीकों के बीच का अंतर छोटा होता है।
स्रोत
2013-07-16 01:20:06
क्या इसका मतलब यह है कि एक शेडर दो बनावट मिश्रण नहीं कर सकता है और उन्हें मिश्रण मोड लागू कर सकता है और 1 नया बनावट आउटपुट कर सकता है? मुझे लगता है कि लोग कुछ हद तक अजीब हैं अगर लोग वेब पर फ़ोटोशॉप ब्लेंड मोड शेडर्स पोस्ट कर रहे हैं। क्या आप विस्तार से बता सकते हैं? धन्यवाद! – polyclick
नहीं, आप अभी भी एक शेडर में दो बनावट मिश्रण कर सकते हैं, लेकिन यह मिश्रण नहीं है। मिश्रण वर्तमान पिक्सेल फ्रेमबफर के साथ मिश्रण करता है। आप अभी भी अन्य माध्यमों (बनावट और मिश्रण करने के लिए ड्राइंग) द्वारा एक ही प्रभाव प्राप्त कर सकते हैं। @bartcla – Tim
ठीक है, तो अगर मैं सही ढंग से समझता हूं: 'glblendFunc' के माध्यम से मिश्रण एक शेडर में बनावट मिश्रण से बिल्कुल अलग है? मान लें कि मैं दो फोटो को "गुणा" मिश्रण मोड के साथ मिश्रित करना चाहता हूं। यह 'glblendFunc' का उपयोग करने के बजाए एक शेडर में किया जाना चाहिए? क्या आप एक उदाहरण दे सकते हैं जहां 'glblendFunc' का उपयोग किया जाता है? – polyclick