सारांश
Katana एप्लिकेशन में कस्टम कोड जोड़ने के लिए तीन भाषाओं का समर्थन करता है: पायथन, लुआ और सी++। यह आलेख इस बात का अवलोकन देता है कि Katana में स्क्रिप्टिंग और प्रोग्रामिंग के साथ कैसे शुरुआत करें और प्रत्येक भाषा कौन से कार्यों के लिए सबसे उपयुक्त है।
अधिक जानकारी
Katana में उपलब्ध प्रत्येक भाषा की अपनी ताकत है, इसलिए यह विशिष्ट उपयोग के मामले पर निर्भर करता है कि कौन सा सबसे उपयुक्त है।
अजगर
तेजी से अनुप्रयोग विकास के लिए पायथन का व्यापक रूप से उपयोग किया जाता है, विशेष रूप से एपीआई के संदर्भ में ताकि उपयोगकर्ताओं को एप्लिकेशन को अनुकूलित करने की अनुमति मिल सके, उदाहरण के लिए जब परियोजनाओं के साथ काम करना , नोड्स के साथ काम करना , नोड प्रकारों को अनुकूलित करना , उपयोगकर्ता इंटरफ़ेस को अनुकूलित करना , या पायथन-आधारित पैरामीटर अभिव्यक्तियां ।
आगे के उदाहरण Katana उपयोगकर्ता गाइड में पायथन के साथ स्क्रिप्टिंग पर और निम्नलिखित लेखों में वर्णित हैं जो विभिन्न पायथन वर्कफ़्लो के बारे में विस्तार से बताते हैं :
- Q100091: Katana में एकाधिक फ़्रेम कैसे प्रस्तुत करें
- Q100108: नोड्स के संदर्भ मेनू में कस्टम मेनू आइटम कैसे जोड़ें
- Q100109: पैरामीटर एक्सप्रेशंस में उपयोग के लिए कस्टम फ़ंक्शन कैसे बनाएं
- Q100401: Katana में शेल्फ आइटम कैसे बनाएं
- Q100385: पायथन का उपयोग करके Katana में कॉलबैक और इवेंट हैंडलर कैसे पंजीकृत करें
- Q100439: स्टार्टअप के दौरान वैश्विक ग्राफ़ स्थिति चर को कैसे संशोधित करें
- Q100372: पायथन के साथ इनपुट और आउटपुट पोर्ट का नाम बदलना
- Q100358: जियोलिब3 क्लाइंट का उपयोग करके पायथन के माध्यम से दृश्य ग्राफ़ स्थानों की विशेषताओं को कैसे क्वेरी करें
- Q100277: पायथन के माध्यम से नए नोड्स कैसे बनाएं और रखें
- Q100098: यूआई में अपना स्वयं का कस्टम टैब कैसे बनाएं
पायथन - प्रदर्शन संबंधी विचार
जहां तेज प्रदर्शन की आवश्यकता होती है, वहां पायथन हमेशा एक आदर्श विकल्प नहीं होता है (आंशिक रूप से खतरनाक जीआईएल के कारण )।
पैरामीटर अभिव्यक्तियों के संदर्भ में, नोड्स या मापदंडों को संदर्भित करने वाले सरल अभिव्यक्तियों के लिए पायथन अभिव्यक्तियों का एक तेज़ विकल्प उपलब्ध है। उन्हें संदर्भ अभिव्यक्तियाँ कहा जाता है , और आप इनके बारे में अधिक जानकारी Katana डेवलपर गाइड में पा सकते हैं।
लुआ बेहतर प्रदर्शन प्रदान करता है, जिससे यह ओपस्क्रिप्ट नोड्स का उपयोग करके दृश्य ग्राफ प्रसंस्करण संचालन के लिए एक पसंदीदा स्क्रिप्टिंग भाषा बन जाती है।
लुआ
लूआ का उपयोग Katana में ऑपस्क्रिप्ट नोड के भीतर किया जाता है। OpScript/Lua का उपयोग करके Op API तक पहुंचना संभव है, जो Python की तुलना में तेज़ और अधिक शक्तिशाली है। विशेष रूप से, ऑपस्क्रिप्ट नोड आपको दृश्य ग्राफ़ पदानुक्रम की संरचना को संशोधित करने की अनुमति देता है, जैसे स्थानों को हटाना, नए चाइल्ड स्थान बनाना और साथ ही विशेषताओं को सेट करना और संपादित करना।
लुआ दृश्य ग्राफ़ पर विकासशील संचालन के लिए तेज़ विकास टर्नअराउंड समय (और अधिक जटिल संचालन के प्रोटोटाइप के लिए जिन्हें बाद में ऑप प्रकार के रूप में लागू करने की योजना बनाई गई है) और एक दृश्य को पकाने के हिस्से के रूप में तेज़ निष्पादन समय और स्थिरता के बीच एक उचित संतुलन का प्रतिनिधित्व करता है।
कुछ स्थितियों में OpScript/Lua का उपयोग करने के बजाय एक कस्टम Op प्रकार प्लग-इन लागू करने की सलाह दी जा सकती है। इसका लाभ है या नहीं यह मौजूदा वास्तविक उपयोग के मामले पर निर्भर करता है: किसी परियोजना की जटिलता और उसकी संपत्ति, किए जाने वाले संचालन की संख्या, लक्षित किए जाने वाले दृश्य ग्राफ़ स्थानों की संख्या। यह सलाह दी जाती है कि एफएक्स डेटा को ऑपस्क्रिप्ट/लुआ के बजाय ऑप्स/सी++ में कण सिमुलेशन की तरह संसाधित किया जाए।
ऑपस्क्रिप्ट और ऑप एपीआई का उपयोग करने के परिचय के लिए, कृपया कटाना में सहायता > उदाहरण प्रोजेक्ट Katana में ऑपस्क्रिप्ट ट्यूटोरियल देखें।
ऑप एपीआई पर अधिक जानकारी Katana यूजर गाइड के साथ-साथ Katana डेवलपर गाइड में पाई जा सकती है ।
आपको निम्नलिखित लेखों में भी रुचि हो सकती है:
- Q100136: ओपस्क्रिप्ट का उपयोग करके दृश्य ग्राफ़ स्थानों के बीच विशेषताओं की प्रतिलिपि कैसे बनाएं
- Q100291: ऑपस्क्रिप्ट के लिए सीईएल स्टेटमेंट एकत्र करते समय दक्षता में सुधार कैसे करें
सी++
जब प्रदर्शन महत्वपूर्ण होता है, उदाहरण के लिए बड़े डेटा सेट के साथ काम करते समय, एक Lua OpScript को C++ Op प्रकार प्लग-इन में पोर्ट किया जा सकता है।
कृपया इंटरफ़ेस के दस्तावेज़ीकरण के लिए Katana डेवलपर गाइड देखें, और निम्नलिखित स्थान पर Katana स्रोत कोड के साथ भेजे गए "हैलोवर्ल्ड" ऑप का उदाहरण देखें: $KATANA_ROOT/plugins/Src/Ops/HelloWorld
बिल्ड निर्देश यहां पाए जा सकते हैं: $KATANA_ROOT/plugins/Src/README.md
एक उदाहरण ऑप संकलित करने के बारे में कुछ और संकेतों और निर्देशों के लिए, कृपया निम्नलिखित लेख देखें: Q100326: अपना पहला कस्टम ऑप कैसे लिखें और उसका परीक्षण करें
आपको निम्नलिखित सामग्री में भी रुचि हो सकती है:
Q100351: C++ Op के अंदर से सिस्टम ग्राफ़ स्टेट डेटा को कैसे क्वेरी करें
अग्रिम पठन
कृपया प्रत्येक भाषा के लिए गाइड और आगे के संदर्भ के लिए Katana उपयोगकर्ता गाइड और डेवलपर गाइड देखें:
अजगर
- https://learn.foundry.com/ katana /Content/ug/script_editing/scripting.html
- https://learn.foundry.com/ katana /dev-guide/Scripting/WorkingWithProjects.html
- https://learn.foundry.com/ katana /dev-guide/py-modindex.html
लुआ
- https://learn.foundry.com/ katana /dev-guide/OpsAndOpScript/Attributes/OpScript.html
- https://learn.foundry.com/ katana /dev-guide/OpsAndOpScript/CookInterface/OpScript.html
- https://learn.foundry.com/ katana /dev-guide/lua-modindex.html
सी++
- Q100326: अपना पहला कस्टम ऑप कैसे लिखें और उसका परीक्षण करें
- Q100351: C++ Op के अंदर से सिस्टम ग्राफ़ स्टेट डेटा को कैसे क्वेरी करें
- https://learn.foundry.com/ katana /dev-guide/OpsAndOpScript/CookInterface/Cpp.html
- https://learn.foundry.com/ katana /dev-guide/OpsAndOpScript/Attributes/Cpp.html
- https://learn.foundry.com/ katana /Content/tg/op_api/op_api_explained.html
- https://learn.foundry.com/ katana /dev-guide/cpp-index.html
हम चाहते हैं कि खेद व्यक्त करते हैं
कृपया हमें बताएँ कि