Q100418: 3डी मोशन ब्लर के लिए स्कैनलाइनरेंडर के विकल्प के रूप में वेक्टरब्लर का उपयोग करके मोशन ब्लर रेंडर समय में सुधार करना

सारांश

Nuke में 3D ऑब्जेक्ट के लिए मोशन ब्लर बढ़ाने का मानक तरीका, स्कैनलाइनरेंडर नोड के भीतर नमूनों को बढ़ाना है। ये नमूना मान फ़्रेम के बीच गणना करने के लिए उपयोग किए जाने वाले इंटरपोलेटेड डेटा की मात्रा को नियंत्रित करते हैं। इस प्रकार, नमूना मान जितना बड़ा होगा गति धुंधलापन उतना ही अधिक विस्तृत होगा।

इन नमूना मूल्यों को बढ़ाने से छवि प्रसंस्करण समय में काफी वृद्धि होगी और यह अधिक जटिल परियोजनाओं के भीतर प्रदर्शन को प्रभावित कर सकता है।

इस प्रसंस्करण ओवरहेड से बचने के लिए, एक विकल्प के रूप में आप इस गणना को स्कैनलाइनरेंडर नोड के बाहर ही संसाधित कर सकते हैं। इसे वेक्टरब्लूर नोड के भीतर स्कैनलाइनरेंडर नोड के जेनरेट किए गए मोशन वैक्टर का उपयोग करके प्राप्त किया जा सकता है।

यह आलेख बताता है कि वेक्टरब्लर नोड (वेक्टरब्लर2 पुनरावृत्ति) का उपयोग करके वर्कफ़्लो कैसे बनाया जा सकता है और इसमें उदाहरण परिदृश्य भी शामिल है।

अधिक जानकारी

डिफ़ॉल्ट रूप से स्कैनलाइनरेंडर नोड, Nuke में एक 3डी ऑब्जेक्ट से मोशन वेक्टर पास उत्पन्न करता है। मोशन वेक्टर एक परत के लाल और हरे चैनलों के भीतर स्थितीय जानकारी को संख्यात्मक मानों के रूप में संग्रहीत करता है। इन पासों के मान किसी इच्छित रंग के प्रतिनिधि नहीं हैं, लेकिन शॉट में चलती वस्तुओं की दिशा, गति और स्थिति में परिवर्तन निर्धारित करने के लिए Nuke द्वारा उपयोग किया जाता है।

स्कैनलाइनरेंडर नोड के भीतर मोशन वेक्टर जानकारी डिफ़ॉल्ट रूप से आगे की परत में संग्रहीत होती है, लेकिन इसे मोशन परत या कस्टम निर्मित परत में भी संग्रहीत किया जा सकता है।

यह मोशन वेक्टर जानकारी जो उत्पन्न की जा रही है, उसे छवि प्रसंस्करण के तेज़ स्तर की अनुमति देने के लिए वेक्टरब्लूर नोड में पढ़ा जा सकता है। यह प्रक्रिया स्कैनलाइनरेंडर नोड से उत्पन्न होने वाली परत के रूप में यूवी चैनल स्रोत को परिभाषित करने जितनी सरल है। कई प्रीसेट विकल्प हैं, लेकिन हम सर्वोत्तम परिणामों के लिए Nuke स्कैनलाइनरेंडर प्रीसेट का सुझाव देते हैं।

इस वर्कफ़्लो के कई फायदे हैं:

1) चूंकि वेक्टरब्लूर नोड में प्रसंस्करण के लिए जीपीयू का उपयोग करने का विकल्प है, यदि आपकी मशीन जीपीयू त्वरण के लिए हमारे अनुशंसित विनिर्देशों से मेल खाती है, तो यह प्रक्रिया काफी कुशल होगी।

जीपीयू एक्सेलेरेशन के लिए हमारी अनुशंसित न्यूनतम विशिष्टताओं के बारे में अधिक जानकारी के लिए, कृपया निम्नलिखित लिंक देखें: Nuke सिस्टम आवश्यकताएँ

2) वेक्टरब्लूर नोड केवल यू और वी मानों के माध्यम से 2डी-आधारित जानकारी की व्याख्या कर रहा है, जो बदले में आवश्यक प्रसंस्करण की मात्रा को कम करता है।

3) चूंकि वेक्टरब्लर नोड और मोशन वेक्टर गणना स्कैनलाइनरेंडर नोड के बाहर हैं, इसलिए वेक्टरब्लर नोड को अक्षम करके मोशन ब्लर को अक्षम करना आसान है।

4) मोशन वेक्टर गणनाओं को 2डी डेटा के रूप में प्रस्तुत किया जा सकता है और Nuke में वापस पढ़ा जा सकता है, फिर 3डी दृश्य के माध्यम से किसी भी पिछले प्रसंस्करण से बचने के लिए उपयोग किया जाता है।

इस प्रक्रिया को फिर से बनाने के लिए चरणों की सूची के साथ वर्कफ़्लो का एक उदाहरण नीचे दिया गया है।

उदाहरण वर्कफ़्लो

इस प्रक्रिया के लिए दो चरणों की आवश्यकता होती है। पहला चरण स्कैनलाइनरेंडर नोड में मोशन वेक्टर पासों का सही निर्माण है, और दूसरा चरण वेक्टरब्लर नोड में इन मोशन वेक्टर पासों का सही एकीकरण है।

चरण 1: स्कैनलाइनरेंडर

1) 3डी ऑब्जेक्ट के लिए शेडर के रूप में उपयोग करने के लिए एक चेकरबोर्ड नोड बनाएं

2) एक स्फीयर नोड बनाएं, ट्रांसलेशन एक्स पर '-2' के मान पर एक कीफ्रेम सेट करें और फ्रेम 10 पर '2' के मान पर एक अन्य कीफ्रेम सेट करें। (इसका उपयोग 3डी स्पेस में स्फीयर को एनिमेट करने और आधार बनाने के लिए किया जाएगा) मोशन ब्लर का)

फ़्रेम 1 फ़्रेम 10

फ्रेम1.पीएनजीफ्रेम10.पीएनजी

3) स्फीयर नोड के img इनपुट को चेकरबोर्ड नोड से कनेक्ट करें

4) एक कैमरा नोड बनाएं और ट्रांसलेशन z मान को '10' पर सेट करें। (यह गोले को 3डी स्पेस में फ्रेम करेगा)

5) एक स्कैनलाइनरेंडर नोड बनाएं और कैमरा [3डी क्लासिक] नोड को कैम इनपुट से और स्फेयर नोड को ओबीजे/एससीएन इनपुट से कनेक्ट करें।

6) स्कैनलाइनरेंडर के भीतर, सुनिश्चित करें कि मल्टीसैंपल टैब में नमूना मान नॉब '1' पर सेट है

7) यह भी सुनिश्चित करें कि मोशन वेक्टर के लिए शेडर टैब का नॉब 'दूरी' पर और मोशन वेक्टर चैनल 'फॉरवर्ड' पर सेट है।

Screen_Shot_2018-06-22_at_5.15.58_PM.png

चरण 2: वेक्टरब्लर

1) एक वेक्टरब्लूर नोड बनाएं और इनपुट को स्कैनलाइनरेंडर नोड में कनेक्ट करें

2) यूवी चैनल नॉब को बदलें और ' फॉरवर्ड ' लेयर पर सेट करें

3) सुनिश्चित करें कि एमवी प्रीसेट नॉब ' Nuke स्कैनलाइनरेंडर' पर सेट है

4) ब्लर यूवी नॉब को बदलें और इसे ' लीनियर ' पर सेट करें। (यदि यह डिफ़ॉल्ट रहता है, तो यह किनारों पर गलत इंटरपोलेशन बनाएगा)

5) मोशन अमाउंट नॉब को बदलें और अपनी इच्छित मोशन ब्लर की वांछित मात्रा पर सेट करें।

6) मोशन फ़ॉलऑफ़ नॉब को ' 0.2 ' के मान में बदलें। (इस नियंत्रण का उपयोग इच्छित प्रक्षेप के आधार पर फ़ॉलऑफ़ को नियंत्रित करने के लिए किया जा सकता है)

7) इस उदाहरण के अनुसार, यदि आपके स्कैनलाइनरेंडर नोड का आउटपुट काले रंग पर है और छवि के क्षेत्र की गणना करने के लिए बाउंडिंग बॉक्स का उपयोग कर रहे हैं, तो आपको विस्तार ब्लर बॉक्स नॉब को उस मान में बदलने की आवश्यकता होगी जो आपके बाउंडिंग बॉक्स को अनुमति देगा छवि को काटें नहीं.

यह आकार आपकी इनपुट छवि के आधार पर अलग-अलग होगा, मेरे उदाहरण में मैं ' 50 ' का मान उपयोग कर रहा हूं।

आप विभिन्न मूल्यों की तुलना नीचे देख सकते हैं:

ब्लर बॉक्स का विस्तार करें = 0 ब्लर बॉक्स का विस्तार करें = 50

bbox_0.PNGbbox_50.PNG

ध्यान दें: उपरोक्त वर्कफ़्लो को संलग्न स्क्रिप्ट के भीतर भी फिर से बनाया गया है: वैकल्पिक3डीमोशनब्लूर.एनके

परिणाम तुलना परीक्षण

उदाहरण के तौर पर, आप मूल प्रक्रिया और वेक्टरब्लर द्वारा सुझाई गई वैकल्पिक प्रक्रिया के बीच तुलना की एक स्क्रीन रिकॉर्डिंग संलग्न पा सकते हैं: वैकल्पिक3डीमोशनब्लूर_तुलना.mp4।

इसके अलावा, हमने तुलनात्मक परीक्षण जोड़ा है जो आपको निम्नलिखित संलग्न स्क्रिप्ट के भीतर इस परीक्षण को स्वयं चलाने की अनुमति देगा: वैकल्पिक3डीमोशनब्लूर.एनके

ऊपर उल्लिखित रिकॉर्डिंग से नीचे दो तुलनात्मक छवियां दी गई हैं जो दिखाती हैं कि वेक्टरब्लर नोड के माध्यम से उत्पन्न मोशन ब्लर 25 फ्रेम रेंडर की तुलना करते समय काफी तेज है:

वेक्टरब्लर

वेक्टरब्लर.jpg

स्कैनलाइनरेंडर

स्कैनलाइन.jpg

ध्यान दें: समान परिणाम प्राप्त करने के लिए आवश्यक न्यूनतम मात्रा में नमूनों का उपयोग करते हुए, स्कैनलाइनरेंडर नोड में मोशन ब्लर नमूनों का यथासंभव बारीकी से मिलान किया गया है।

आप उपरोक्त तुलना से देख सकते हैं कि स्कैनलाइनरेंडर नोड के नमूनों को बढ़ाने के विकल्प के रूप में वेक्टरब्लर नोड के भीतर मोशन वैक्टर का उपयोग करने से आवश्यक प्रसंस्करण की मात्रा कम हो जाती है। यह बड़ी और जटिल 3डी रेंडरिंग-आधारित स्क्रिप्ट में अधिक ध्यान देने योग्य होगा।

ध्यान दें: इस प्रक्रिया को स्कैनलाइनरेंडर नोड के बजाय रेरेंडर नोड के साथ भी प्राप्त किया जा सकता है। इसे सही ढंग से काम करने के लिए रेरेंडर नोड्स 'एओवी' टैब के भीतर निम्नलिखित विकल्पों को बदलने की आवश्यकता होगी:

rayrender.PNG '

1) आउटपुट एओवी चेकबॉक्स को चालू करना होगा

2) हमारे उदाहरण में 'फॉरवर्ड' लेयर के ऊपर से, सही लेयर को आउटपुट करने के लिए मोशन वेक्टर पास को सेट करने की आवश्यकता होगी।

अग्रिम पठन

वेक्टरब्लर और स्कैनलाइनरेंडर दोनों नोड्स पर अधिक जानकारी Nuke दस्तावेज़ के निम्नलिखित लिंक के माध्यम से पाई जा सकती है:

वेक्टर ब्लर नोड
स्कैनलाइनरेंडर नोड

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

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