एक टिकट बनाएं
अनुसरण करें

Q100407: मारी 3.4v1 और 4.1v1 में ब्लेंड मोड कैशिंग

सारांश

मारी में 3.3v1 और इससे पहले, एक परत के ब्लेंड मोड को बदलने से कभी-कभी काफी कठिन प्रक्रिया हो सकती है क्योंकि shader को फिर से तैयार करना होगा। यह आलेख बताता है कि आप प्रदर्शन को बेहतर बनाने और गतिशील मोड में आवश्यक shader recompilations की संख्या को कम करने के लिए मारी 3.4v1 / 4.1v1 में ब्लेंड मोड कैशिंग का उपयोग कैसे कर सकते हैं।

अधिक जानकारी

मारी 3.3v1 में पेश किया गया डायनामिक शेडर कंपलीशन मोड , शेयर्ड संकलन गति को बेहतर बनाता है, बल्कि भारी शेडर होने की कीमत पर। जब भी यह डायनामिक मोड कई ऑपरेशनों को रोककर संकलन दरों में कटौती करता है, तब भी कुछ कलाकार एक परत के विभिन्न ब्लेंड मोड्स के बीच स्विच करते समय नियमित रूप से shader recompilation का सामना करते हैं।

मारी 3.4v1 के रूप में, ब्लेंड मोड्स को अब डायनामिक कैशिंग सिस्टम के भीतर शामिल किया गया है ताकि जगह पर होने वाली पुनर्मिलन की संख्या को कम किया जा सके। अब, यदि कोई उपयोगकर्ता किसी लेयर के ब्लेंड मोड, मर्ज नोड, या पेंट बफ़र को बदलता है, तो व्यूपोर्ट में पूरा करने के लिए कताई व्हील के लिए प्रतीक्षा करने के बजाय तत्काल परिवर्तन होना चाहिए।

कैशिंग सिस्टम पांच ब्लेंड मोड्स के एक 'इतिहास' का समर्थन करता है जिसे कलाकार पुनर्संयोजन में चलाने के बिना उपयोग करने में सक्षम है।

नोट: ब्लेंड मोड्स के बारे में अधिक जानकारी के लिए कृपया हमारी मारी ऑनलाइन सहायता से पेंट ब्लेंडिंग मोड्स अनुभाग देखें।

अतिरिक्त मोड CACHE राज्यों से लाभ प्राप्त करने के लिए कस्टम नोड्स का उपयोग कैसे करें

जो डेवलपर्स अपने कस्टम नोड्स के भीतर ब्लेंड मोड विशेषताओं का उपयोग कर रहे हैं, उनके कस्टम नोड XML में निम्न या समान हो सकते हैं:
<विशेषता नाम = "ब्लेंडमोड" सुंदर नाम = "मोड" समूह = "" प्रकार = "उपयोगकर्ता नाम"> MriBlendMode: Comp_Default </ गुण>
ब्लेंड मोड्स का उपयोग करने के लिए, एक डेवलपर के पास दो संभावित विकल्प हैं:
  1. गतिशील: MriBlendMode: Comp_ डिफ़ॉल्ट - सामान्य मिश्रण मोड प्रकार (सभी मोड) के लिए।

  2. गतिशील: MriBlendModeNoAlpha: Comp_Default - उस प्रकार के लिए जिसमें कोई अल्फ़ा मिश्रण मोड नहीं है।
त्वरित संकलन ब्लेंड मोड के लिए समर्थन जोड़ने के लिए, XML फ़ाइल को इन परिवर्तनों को सक्षम करने के लिए संशोधित करने की आवश्यकता होगी, जैसे:
पहले:

Output = $BlendMode(_Base, _Over, #Mask.r * AdvancedBlendAmount);
के बाद :
 #if defined(MRI_GENERAL_  COMPOSITION)
Output = Comp_General($BlendMode, _Base, _Over, #Mask.r * AdvancedBlendAmount);
#else
Output = $BlendMode(_Base, _Over, #Mask.r * AdvancedBlendAmount);
#endif // defined(MRI_GENERAL_C OMPOSITION)

क्या यह लेख उपयोगी था?
/

We're sorry to hear that!

Please tell us why.
2 में से 2 के लिए उपयोगी रहा

टिप्पणियां