Q100407: कैशिंग के उपयोग से तेजी से ब्लेंड मोड लागू करें

अनुसरण करें

सारांश

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

अधिक जानकारी

डायनामिक शेडर कंपाइलेशन मोड भारी शेडर होने की कीमत पर शेडर संकलन गति में सुधार करता है। हालाँकि यह डायनामिक मोड कई ऑपरेशनों को कैश करके संकलन दरों में कटौती करता है, फिर भी कुछ कलाकार विभिन्न ब्लेंड मोड के बीच स्विच करते समय नियमित रूप से शेडर पुनर्संकलन का सामना करते हैं।

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

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

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

ध्यान दें: डिफ़ॉल्ट शेडर संकलन मोड स्वचालित है, जो अधिकांश Mari सत्रों के लिए आदर्श है, क्योंकि यह आवश्यकतानुसार डायनामिक और ऑप्टिमाइज़्ड दोनों मोड का उपयोग करता है।

ब्लेंड मोड कैश स्टेट्स से लाभ उठाने के लिए कस्टम नोड्स को कैसे समायोजित करें

जो डेवलपर्स अपने कस्टम नोड्स के भीतर ब्लेंड मोड विशेषताओं का उपयोग कर रहे हैं, उनके कस्टम नोड XML में निम्नलिखित या समान हो सकते हैं:
 <Attribute Name="BlendMode" PrettyName="Mode" Group="" Type="userenum">Dynamic:  MriBlendMode:Comp_Default</  Attribute> 
ब्लेंड मोड का उपयोग करने के लिए, डेवलपर के पास दो संभावित विकल्प होते हैं:
  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_COMPOSITION)

    हम चाहते हैं कि खेद व्यक्त करते हैं

    कृपया हमें बताएँ कि