Create a ticket
अनुसरण करें

Q100170: कटाना में बनावट को संभालना

सारांश

बनावट पुस्तकालयों और स्टूडियो पाइपलाइनों द्वारा विभिन्न तरीकों से विभिन्न तरीकों से नियंत्रित किया जाता है और कटाना कुछ सामान्य सम्मेलनों का पालन करते हुए, बनावट असाइन करने के लिए एक लचीली रूपरेखा प्रदान करता है।

नीचे अर्नोल्ड और रेंडरमैन दोनों के साथ काम करने के लिए इन विकल्पों में से कुछ का सारांश दिया गया है। कृपया संलग्न उदाहरण दृश्य भी देखें जो यहां बताए गए दोनों दृष्टिकोणों को प्रदर्शित करता है।

अधिक जानकारी

बनावट की घोषणा करने के लिए सामग्री विशेषताओं का उपयोग करना

प्रत्येक वस्तु को अपनी बनावट देने का सबसे सरल तरीका है प्रति वस्तु एक सामग्री बनाना और स्पष्ट रूप से बनावट में स्ट्रिंग मापदंडों के रूप में बनावट की घोषणा करना। प्रत्येक वस्तु को तब संबंधित सामग्री सौंपी जाती है।

यह दृष्टिकोण सबसे अधिक श्रम-गहन है, खासकर जब एक दृश्य के साथ काम करना जिसमें बड़ी संख्या में ऑब्जेक्ट होते हैं, और लचीलेपन की कमी होती है जब एक सामग्री में परिवर्तन करना पड़ता है।

अक्सर कई ऑब्जेक्ट एक ही सामग्री को साझा कर सकते हैं, लेकिन अलग-अलग बनावट को सौंपा जाना चाहिए। इस मामले में यह दृश्य सेट करना संभव है ताकि प्रत्येक वस्तु अपने स्वयं के बनावट को चुन ले:

बनावट को घोषित करने के लिए ऑब्जेक्ट विशेषताओं का उपयोग करना

सामग्री पर बनावट सेट करने के बजाय, प्रदान की जाने वाली वस्तुएं एक मनमाना विशेषता के माध्यम से प्रासंगिक बनावट फ़ाइल को इंगित कर सकती हैं।

रेंडरमैन प्राइवर्स

रेंडरमैन का उपयोग करते समय, रेंडरमैन प्राइमर के रूप में टेक्सचर फाइल रेंडरर को पास की जा सकती है।

कटाना में किसी भी स्ट्रिंग विशेषता जिसे textures.xxx कहा जाता है, स्वचालित रूप से रेंडरमैन को xxx नामक प्राइमर के रूप में लिखा जाता है । यदि आपके shader का समान नाम का स्ट्रिंग पैरामीटर है, तो RenderMan इस शेंडर पैरामीटर को सेट करने के लिए ज्यामिति से प्राइमर के मान का उपयोग करेगा।

अपने बनावट का नाम ज्यामिति पर एक मनमाना विशेषता में निहित है, तो आप इन texture.xxx प्रारूप कि RenderMan द्वारा मान्यता प्राप्त हो जाएगा में जिम्मेदार बताते हैं स्थापित करने के लिए एक OpScript उपयोग कर सकते हैं।

रेंडरमैन प्राइमरों का उपयोग करके एक उदाहरण दृश्य सेट करने के लिए, निम्नलिखित कार्य करें:

  1. सहायता> मैं एक टट्टू चाहता हूं पर क्लिक करके कैमराक्रिएट और दो पोनी नोड्स जोड़ें । सुनिश्चित करें कि आप पोनीज़ का नाम दें।
  2. विशेषता 'ज्यामिति.आर्बिटवर्थ.टेक्सफाइल' बनाने के लिए एट्रीब्यूटसेट नोड्स का उपयोग करें। इसमें से एक पर _ flag_uk.tx ’और दूसरे पर usa flag_usa.tx’ सेट करें।
  3. मर्ज नोड का उपयोग करके सभी नोड्स मर्ज करें।
  4. एक सामग्री बनाएं और उसमें एक RMSGPSurface Shader जोड़ें।
  5. MaterialAssign नोड का उपयोग करके सामग्री को रूट / वर्ल्ड / जियो // * को असाइन करें।
  6. PxrStdAreaLight के साथ GafferThree नोड जोड़ें।
  7. अब OpScript नोड बनाएं जो टेक्सचर को हैंडल करेगा।
    - एक कस्टम सीईएल स्थान पर इसे लागू करें: / रूट / दुनिया / भू // //। इसका मतलब यह है कि ओपस्क्रिप्ट को भू के नीचे सभी वस्तुओं पर पुन: लागू किया जाएगा।
    - बनावटपथ नामक एक उपयोगकर्ता पैरामीटर जोड़ें और उस मूल्य को सेट करें जहां कटाना के साथ शामिल डेमो के लिए बनावट संग्रहीत हैं, उदाहरण के लिए
    लिनक्स पर या ./opt/Foundry/Katana2.5v3/demos/tx_files/
    C: / प्रोग्राम फ़ाइलें / Katana2.5v3 / डेमो / tx_files / विंडोज पर
    - निम्नलिखित लुआ कोड जोड़ें:
    स्थानीय टेक्सपैथ = इंटरफ़ेस.गेटऑपअर्ग ('user.texturePath')
    स्थानीय फ़ाइलनाम = इंटरफ़ेस। GetAttr ('ज्योमेट्री.बिटबिट.टेक्स फ़ाइल')
    स्थानीय फ़ाइलपट = (टेक्सपाथ: getValue () .. फ़ाइलनाम: getValue ())

    Interface.SetAttr ('textures.SurfaceMap', StringAttribute (फ़ाइलपथ))



  8. इसे रेंडर करें और आप देखेंगे कि प्रत्येक पॉनीज़ को ज्यामिति द्वारा निर्दिष्ट बनावट सौंपी गई है।

कटाना में पैरामीटर्स के आंतरिक नाम को देखने के लिए, इस मामले में सरफेस मैप की तरह, आप इसे स्क्रिप्ट एडिटर के टेक्स्ट फ़ील्ड में मध्य-माउस खींच सकते हैं। परिणामी आदेश आपको बताएगा कि विशेषता के लिए किस नाम का उपयोग करना है।

टेक्सट्री के नाम या फ़ाइल पथ वाले किसी टैग को ज्योमेट्री में जोड़ने के बारे में अधिक जानकारी प्राप्त करने के लिए। इसके विपरीत, सेटलाइन टेक्सट का उपयोग करने के लिए कटान ऑनलाइन हेल्प का उपयोग करें

{attr: xxx} shader पैरामीटर्स के लिए सिंटैक्स

एक अन्य विकल्प, जो अर्नोल्ड और रेंडरमैन दोनों के साथ काम करेगा, shader पैरामीटर्स के लिए {attr: xxx} सिंटैक्स का उपयोग करना है। यह सामग्री के किसी भी पैरामीटर को सेट करके काम करता है, उदाहरण के लिए, जब आप सामग्री बनाते हैं, तो {attr: tex.SurfaceMap}।

पुनरावृत्ति के समय, रेंडरर एक विशेषता की तलाश करेगा, जिसका नाम टेक्स। सुरफेसपोट दिया जाएगा, जिसे ज्यामिति पर प्रस्तुत किया जाना है। शेडर पैरामीटर को उस मान पर सेट किया जाएगा जो ज्यामिति विशेषता से पढ़ा जाता है।

इस दृष्टिकोण के लिए, ऊपर दिए गए उदाहरण में वर्णित दृश्य को सेट करें, लेकिन सतह मानचित्र पैरामीटर के मान के रूप में {attr: tex.SurfaceMap} जोड़ें (बनावट नहीं) यह दिखाने के लिए कि हम प्राइमर का उपयोग नहीं कर रहे हैं), और परिवर्तन करें। ओपस्क्रिप्ट कोड की अंतिम पंक्ति

Interface.SetAttr ('tex.SurfaceMap', StringAttribute (filePath))

अधिक जानकारी के लिए कृपया "टेक्सचर हैंडलिंग - ओवरव्यू" उदाहरण परियोजना और कटाना ऑनलाइन हेल्प का टेक्सचर हैंडलिंग विकल्प अनुभाग देखें।

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

We're sorry to hear that!

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

टिप्पणियां