एक शीर्ष रंग क्या है?


31

मेरा सवाल यह है कि शीर्षक में क्या लिखा गया है। यह शब्द "शीर्ष रंग" बहुत दिखाई देता है। इसे समझने के लिए मुझे कठिन समय मिल रहा है।

उदाहरण के लिए:

3 डी अंतरिक्ष पर एक सरल बिंदु नहीं है? यदि हां, तो एक बिंदु का रंग कैसे हो सकता है? या इस "रंग" का अर्थ कुछ और है?

अवास्तविक इंजन के सामग्री संपादक में "वर्टेक्स कलर" नोड है।

क्या कोई मेरे सवाल पर प्रकाश डाल सकता है? जब मैं "क्या एक शीर्ष रंग है" googled जब मैं उपयोगी कुछ भी नहीं मिल सकता है, लेकिन दस्तावेज़ जो मेरे लिए बहुत तकनीकी हैं।


2
ज्यामिति में एक शीर्ष स्थान में एक बिंदु है। लेकिन 3 डी रेंडरिंग के लिए आप चाहते हैं कि चीजें अच्छी दिखें, जिसका अर्थ हो सकता है कि प्रत्येक शीर्ष पर अधिक जानकारी संलग्न करना, जैसे एक रंग, या एक बनावट समन्वय, या कंकाल भार ताकि आप जाल को अधिक आसानी से, या प्रकाश में उपयोग करने के लिए एक सामान्य दिशा को चेतन कर सकें। गणना।
1925 में user253751

3
मुझे लगता है कि आपके भ्रम का एक बड़ा हिस्सा 3 डी / ग्राफिक्स में "वर्टेक्स" और "स्थिति" के लगातार टकराव के कारण है। गणितीय रूप से, आपका कथन "3D स्थान पर एक साधारण बिंदु नहीं है?" सही है, लेकिन गेम इंजन और ग्राफिक्स के दायरे में, नहीं, कोई स्थान 3D स्थान में एक साधारण बिंदु है; और (मेश) जाली एक डेटा का एक टुकड़ा है जिसमें लगभग हमेशा एक स्थिति होती है, लेकिन इसमें एक सामान्य, स्पर्शरेखा, बनावट समन्वय, रंग और / या डेटा के कई अन्य टुकड़ों में से कोई भी हो सकता है । एक मेष वर्टेक्स वास्तव में डेटा का एक हिस्सा है जो प्रतिपादन के शीर्ष स्तर पर संसाधित होता है।
स्लिप डी। थॉम्पसन

जवाबों:


29

वर्टेक्स रंग उस प्रासंगिक नहीं हैं जब आपके पास पूरी तरह से बनावट वाला 3 डी मेष हो। लेकिन यह दिलचस्प हो जाता है जब आपके पास एक अस्पष्ट लेकिन रंग का जाल होता है। उस स्थिति में आप प्रत्येक शीर्ष पर एक रंग असाइन करते हैं। फिर shader तीनों कोने के रंगों के बीच में जाकर एक बहुभुज के प्रत्येक पिक्सेल को रंग देगा।

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


2
btw, वर्टेक्स रंग का उपयोग कुछ पुराने खेलों में किया गया था, जिसमें कोई गतिशील बिजली / छाया नहीं थी। उदाहरण के लिए 2004 से रिचर्ड बर्न्स रैली अलग दिखने वाली बनावट बनाने और छाया लागू करने के लिए शीर्ष रंग का उपयोग कर रही है।
मार्टिन

गवाह एक हालिया खेल है जो वर्टेक्स रंगों और लाइटमैप्स का व्यापक उपयोग करता है, लेकिन कई बनावट नहीं।
user253751

@Philipp "क्योंकि वर्टिकल शेडर को आमतौर पर बहुत कम बार निष्पादित किया जाता है" क्यों? क्या रेंडरिंग पाइपलाइन के वर्टेकर शेड का हिस्सा नहीं है और इस प्रकार प्रत्येक फ्रेम को निष्पादित किया जाता है? इतनी कम बार क्यों? क्या वर्टेक्स "रंग" की गणना हर फ्रेम के साथ ही नहीं की जाएगी, जैसे कि यह पिक्सेल छाया में था?
निकोस

1
@ निकोस ए वर्टेक्स शेडर को प्रति बार एक बार कहा जाता है। एक पिक्सेल shader को प्रति पिक्सेल एक बार कहा जाता है। 3 कोने वाले बहुभुज का परिणाम आमतौर पर 3 से अधिक ऑन-स्क्रीन पिक्सेल (यदि आपका गेम बहुत सारे पॉलीगनों की गणना करता है, जो 3 पिक्सेल से कम होता है, तो आप यह देखना चाहते हैं कि आप culling और LOD के बारे में क्या कर सकते हैं)।
फिलीपींस

25

सिद्धांत रूप में, वर्टेक्स कलर बनावट के साथ परेशान किए बिना एक मॉडल को रंग देने की अनुमति देता है। यह CAD में काफी सामान्य है।

यहां छवि विवरण दर्ज करें यहां छवि विवरण दर्ज करें यहां छवि विवरण दर्ज करें यहां छवि विवरण दर्ज करें

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

"3D स्पेस पर वर्टेक्स सरल बिंदु नहीं है?"

यही मैं सोचता था, जब मैंने पहली बार 3 डी के साथ शुरुआत की थी। मुझे जल्दी पता चला कि मैं गलत था

आप एक वर्टेक्स को डेटा ब्लॉब के रूप में सोच सकते हैं जो एक त्रिकोण के एक कोने को बनाता है जिसे आप स्क्रीन पर पेंट करना चाहते हैं (और न तो "कोने" भाग और न ही "त्रिकोण", "पेंट", या "स्क्रीन" भाग हमेशा सही होते हैं )। स्थिति एक-दत्तक - उस डेटा बूँद का पहलू है जिसे हम वर्टेक्स कहते हैं।

अतिरिक्त डेटा को वर्टेक्स में संलग्न करके आप बहुत कुछ कर सकते हैं। सबसे प्रसिद्ध उदाहरण यह है कि आप उस त्रिकोण पर एक बनावट बनाने के लिए यूवी निर्देशांक जोड़ सकते हैं। आप (आमतौर पर) तय नहीं कर सकते हैं कि त्रिकोण पर आकर्षित करने के लिए बनावट का क्या हिस्सा है यदि आपके पास बस एक बिंदु है - आपको बनावट निर्देशांक भी चाहिए।

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


2
".. के रूप में एक डेटा बूँद जो एक त्रिकोण के किनारे बनाता है" यहां तक ​​कि जरूरी नहीं है। वर्टेक्स को ठीक बिंदुओं के रूप में प्रस्तुत किया जा सकता है।
क्रॉम्स्टर का कहना है कि

3
शेडर इफेक्ट्स के कुछ बेहतरीन उदाहरणों के लिए जो आप वर्टिकल कलर्स का उपयोग करके प्राप्त कर सकते हैं, मैं अत्यधिक पिछले साल से नेटली बर्क की जीडीसी से बात करने की सलाह देता हूं, "एनिमेटेड विद मैथ" (वीडियो इस समय केवल सदस्य है, लेकिन स्लाइड्स यहां मुफ्त हैं ) । वह दिखाती है कि डेस्टिनी के गियर, चरित्र के बाल और कपड़े में कितने एनिमेशन हैं, और यहां तक ​​कि उनके दुश्मनों और वातावरण के कुछ हिस्सों को भी शीर्ष रंगों का उपयोग करके प्राप्त किया गया था, जो कि शीर्ष रंग चैनलों के साथ आकार और नियंत्रित थे।
DMGregory

5
मेरा तर्क है, कि वे वर्टेक्स रंग नहीं थे, लेकिन वर्टेक्स विशेषताओं को आसान धारणा के लिए रंगों के रूप में दिखाया गया है।
क्रॉम्स्टर का कहना है कि

में कुछ इसी तरह के आविष्कारशील उपयोग हैं फोर्टनाइट के बारे इस बात में वर्टेक्स शेड्स के , हालांकि अगर मुझे सही ढंग से याद है तो मुझे लगता है कि उन्होंने ज्यादातर कलर चैनलों के बजाय वर्टिस के यूवी चैनलों का इस्तेमाल किया।
DMGregory

3
एक ज्यामिति / गणित-आधारित दृष्टिकोण से सख्ती से बोलना एक स्थान में एक बिंदु है। 'वर्टेक्स कलर' एक विशेषता है जो GPU द्वारा उपयोग किए जाने वाले वर्टेक्स के 'विचार' द्वारा वर्टेक्स पर लागू होती है। यह एक रंग होने या न होने वाले सर्कल के समान है। एक वृत्त के ज्यामितीय / गणितीय 'विचार' में एक रंग नहीं होता है, लेकिन एक वृत्त का प्रतिपादन सॉफ्टवेयर 'विचार' एक रंग को वृत्त से जोड़ता है। इस प्रकार @ Kromster का तर्क तकनीकी रूप से अधिक सही है।
फराप

8

ऊर्ध्वाधर रंग हो सकते हैं, यह सामान्य की तरह ही एक संपत्ति है।

3 डी वातावरण में एक त्रिकोण उनके रंग की जानकारी के आधार पर रंगीन हो जाता है। वियरेक्स ए के सबसे करीबी अंशों को इसका रंग मिलता है, वर्टेक्स बी को क्लोजर को कोलोर्नोफ बी मिलता है, और रंग 2 के बीच प्रक्षेपित होता है।

यह वर्टेक्स लाइटिंग की तरह ही काम करता है

यह एक बनावट का उपयोग किए बिना एक मॉडल में रंगों को जोड़ने का एक आसान तरीका है।


एक और इसी तरह के शीर्ष गुण का एक (उम्मीद है) परिचित उदाहरण देने के लिए +1
एसी

शीर्ष रंग और मानदंड के साथ समस्या यह है कि वे मानते हैं कि शीर्ष एक जाल का हिस्सा है (घुमावदार सतह का एक अनुमान)। यदि आप तेज किनारों या अलग-अलग रंगों के चेहरे (जैसे कि क्यूब पर) चाहते हैं, तो आपको प्रत्येक चेहरे के लिए अलग-अलग कोने चाहिए, जिससे मेमोरी का उपयोग बढ़ जाता है (और रेंडरिंग धीमा हो जाता है)।
एम आई

@aml आप glsl में फ्लैट "ऑपरेटर" का उपयोग कर सकते हैं ताकि शेडिंग लुक फ्लैट हो जाए। यह पूरा नहीं है, लेकिन यह काम करता है।
बैलिंट

अन्य प्रक्षेपित विशेषता: बनावट समन्वय और z- बफर! हम शीर्ष शेडर त्रिकोण के 3 कोने से प्रत्येक के लिए कुछ डेटा कंप्यूटिंग है, उन स्क्रीन (या कुछ बफर में) पर त्रिकोण ड्राइंग जब अंतर्वेशित रहे हैं, और पिक्सेल शेडर प्रत्येक तैयार पिक्सेल के लिए अंतर्वेशित मूल्य के साथ कहा जाता है
user1952009

@aml of बेशक x2 एक अड़चन नहीं है। और उसके लिए ज्यामिति के शेड्स बनाए गए हैं, मैं कहूँगा (उदाहरण: एक गहराई बनावट को त्रिकोण में बदलना )
user1952009

2

यहां पहले से ही ठोस जवाब हैं - मैं सिर्फ एक और सामान्य तरीके से झंकारना चाहता हूं, जिसमें आपको वर्टेक्स के रंगों का इस्तेमाल होगा:

एकल बैच / ड्रॉ कॉल के भीतर ऑब्जेक्ट रंग (या अन्य विशेषताएँ) भिन्न करना।

आप देखेंगे कि इसका उपयोग कण प्रणालियों, पाठ और बैच किए गए (आमतौर पर अछूता) स्प्राइट के प्रतिपादन में किया जाता है।

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

एकता कण रंग भिन्नता के लिए इस तकनीक का उपयोग करने के लिए प्रकट होती है, साथ ही एक बैच में एक साथ प्रदान किए गए टेक्स्टमेश या स्प्राइट्स में व्यक्तिगत पात्रों को रंगने के लिए।

मेरा मानना ​​है कि आप ज्यामिति के उदाहरण के साथ कुछ ऐसा ही कर सकते हैं, लेकिन मुझे नहीं पता कि दोनों प्रदर्शन में तुलना कैसे करते हैं। यह संभव है कि आज इस तरह के इंस्टेंट ट्विकिंग को वर्टेक्स रंगों के माध्यम से करने से आधुनिक पीसी के लिए सबसे अच्छा अभ्यास होने के बजाय कुछ मोबाइल उपकरणों की तरह ओपन-ओपन 3.1 / DX9 हार्डवेयर का समर्थन करने की अधिक संभावना है। मैं उन लोगों की टिप्पणियों का स्वागत करता हूं, जिन्होंने बैचों के साथ अधिक प्रदर्शन ट्यूनिंग किया है और यह स्पष्ट करने में मदद करने के लिए कि क्या इन तकनीकों ने इस उद्देश्य के लिए वर्टेक्स रंगों का समर्थन किया है। :)

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.