एकमात्र तरीका मुझे पता है कि एक स्लाइडर का उपयोग करना है:
import maya.cmds as Cmds cmds.colorSliderGrp ('बहुभुज रंग', लेबल = "रंग", एचएसवी = (1, 1, 1))
फिर उस से आरजीबी मान लेना:
rgb = cmds.colorSliderGrp ('polygoncolor', query = true, rgbValue = true)
और फिर बहुभुज को एक सामग्री निर्दिष्ट करना और उस सामग्री को रंग देना:
myShader = cmds.shadingNode ('lambert', as shader = true, name = 1], आरजीबी [2], टाइप = 'डबल 3')
क्या कोई स्लाइडर का उपयोग किए बिना / या सामग्री निर्दिष्ट किए बिना एक आसान तरीका है?
यदि आप मौजूदा shader (नया) को एक नया रंग आवंटित करना चाहते हैं, तो यह एक सरल setAttr () । प्रत्येक शेडर के पास अपनी विशेषता सेट है, इसलिए आपको निर्धारित करने के लिए सटीक मानों को आप जिस प्रकार के शाader के प्रकार चाहते हैं, उस पर निर्भर करते हैं, लेकिन सामान्य मामलों (लैंबर्ट, फोंग और ब्लिन) के लिए यह सिर्फ
.color
विशेषता है । रंग की स्थापना करना आपके लिए आवश्यक आरजीबी मूल्यों में गुजरती है:
cmds.setAttr (shader + '.color', 0, 1, 0) # हरा
एक विशेष चेहरे पर शेडर प्राप्त करना आसान नहीं है। सबसे आसान बात यह है कि अपना चेहरा प्राप्त करें और सभी छायांकन एंजिनी नोड्स की जांच करें:
शेडिंगइंजिन के लिए cmds.ls (type = "shadingEngine"): यदि cmds.sets ('pCube1.f [0] 'im = shadingEngine): shaderball = cmds.listConnections (sshadingEngine, type =' lambert ') [0] प्रिंट "चेहरा% s को असाइन किया गया है"% shaderball
आप I cmds.sets ('pCube1.f [99]', fe = 'initialShadingGroup') द्वारा चेहरे को एक शेडर आवंटित कर सकते हैं
जहां fe
का तर्क छायांकनइंजिन है नोड। शेडर बॉल - जिस चीज को आप हाथ से संपादित करते हैं - छायांकन इंजिन की .surfaceMaterial
विशेषता से जुड़ा हुआ है, आप इसे जिस तरह से मैंने किया था, उससे प्राप्त कर सकते हैं।
यदि आप इसे बदलना चाहते हैं किसी चेहरे का रंग बिना शेडर असाइनमेंट आप इसके बजाय शीर्ष रंग बनाना चाहते हैं। मेनू रंग> रंग लागू करें है, कमांड है पॉलीकोलरपरवेट्टेक्स (चेहरे, आरजीबी = (आर, जी, बी)
। इसलिए एक घन पर एक चेहरे का रंग दिखाना जैसे
cmds.polyColorPerVertex ('pCube1', rgb = (1,0,0)) # लाल
में शीर्ष रंग का प्रदर्शन व्यूपोर्ट को .displaycolors
विशेषता या रंग> टॉगल डिस्प्ले रंग विशेषता मेनू आइटम द्वारा नियंत्रित किया जाता है।
No comments:
Post a Comment