क्या सफेद रंग सबसे अच्छा आधार रंग है, जब एकता के भीतर छाया को छिड़कने की योजना है?


10

मैं एकता में एक खेल को प्रदर्शित कर रहा हूं जिसमें ठोस वर्ग स्प्राइट / टाइल शामिल होंगे। मुझे लगता है कि मैं खेल में प्रत्येक टाइल के लिए विभिन्न रंगों के साथ विभिन्न प्रकार की वस्तुओं का प्रतिनिधित्व कर सकता हूं।

मुझे लगता है कि मैं एक एकल वर्ग स्प्राइट आयात कर सकता हूं और इसे एकता में शेड कर सकता हूं क्योंकि कई अलग-अलग रंगों के आयातित वर्गों के विपरीत।

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

चूंकि सफेद वस्तुएं उचित रंग में ढालने पर लगती हैं, जब एकता में परिवर्तन होता है, मेरी आंत मुझे बताती है कि यह सबसे अच्छा आधार रंग है, जिसका अर्थ है कि मैं एक ही सफेद वर्ग स्प्राइट का आयात कर सकता हूं और विभिन्न वस्तुओं का प्रतिनिधित्व करने के लिए बस रंग समायोजित कर सकता हूं और ऑब्जेक्ट स्टेट्स।

क्या एक सफेद स्प्राइट वास्तव में सबसे अच्छा रंग स्प्राइट है, जिसके साथ शुरू करना है और फ़ोटोशॉप के भीतर रंग और संतृप्ति को समायोजित करने के विरोध में यूनिटी में ऐसा क्यों काम करता है?

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


सबसे पहले, "सर्वश्रेष्ठ" को परिभाषित करें।
क्रिटिक

जवाबों:


13

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

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

एकता का रंग प्रकार 0 से 1 तक सम्मिलित है।

रंग.हाइट के बराबर है (1, 1, 1, 1)

उस 1समय को जानना ही कुछ भी है।

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

किसी स्प्राइट को टिन्ट करना


आप अपने पसंदीदा छवि संपादक जैसे कि फ़ोटोशॉप या जीआईएमपी में मल्टीप्ले ब्लेंड मोड के साथ खेल सकते हैं।

फोटोशॉप सेटअप


4

स्प्राइट्स-Additive.shader - गिटहब जिस्ट

एकता के रंगों में 4 फ्लोट वैल्यू हैं जो कि कई रंग प्रारूपों आरजीबीए के विशिष्ट हैं, जो व्यक्तिगत प्रतिशत रंग मूल्यों रेड, ग्रीन, ब्लू और अल्फा पारदर्शिता चैनल के अनुरूप हैं।

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

इसके साथ समस्या यह है कि, एक गुणक रंग गणित शेडर हमेशा उसी रंग का उत्पादन करेगा (यदि आप "सफेद से" गुणा करते हैं) या गहरे रंग का यदि आप किसी और चीज से गुणा करते हैं। मैं उस स्थिति में आया था जहां मैं एक लोहार प्रकार की स्थिति में सटीक विपरीत प्रभाव चाहता था। गहरे रंग की धातु को गहरे रंग का उत्पादन करने के लिए पीले रंग से गुणा नहीं किया जाना चाहिए:

पीली द्वारा गुणक shader

इसके बजाय, मैं एक ऐडिटिव होने के लिए यूनिटी की डिफॉल्ट मल्टीफ्लारिटिव शेडर को फिर से लिखता हूं। परिणाम मैं क्या देख रहा था की लाइनों के साथ अधिक थे:

योजक shader

अगर किसी को दिलचस्पी है, तो मैं फिर से लिखी स्प्राइट-एडिटिव.शेडर को एक गिव प्रदान करूँगा ।

यहाँ रंग शब्दावली और तौर-तरीकों पर एक अच्छा संदर्भ दिया गया है: http://www.northlite.net/ps/blend.htm


टिप्पणी करने के लिए पर्याप्त प्रतिष्ठा के बिना एक उपयोगकर्ता ने इस आशय के shader कोड को देखने में रुचि व्यक्त की है। क्या आपके पास अभी भी साझा करने के लिए उपलब्ध है?
DMGregory

1
अरे, मेरे पास अब यह आसानी से उपलब्ध नहीं है, लेकिन मैं इसे खोदूंगा और जितनी जल्दी हो सके एक लिंक प्राप्त करूंगा। अगर संभव हो तो आज रात।
जो

2
मैं इसे वापस लेता हूं, मैंने इसे अपेक्षाकृत आसानी से पाया और इसे अपने गीथहब पर जीस्ट में जोड़ा। एक additive और गुणक shader के बीच एक MAJOR अंतर पारदर्शिता के साथ काम कर रहा है। Additive shader में मैंने कम अल्फा मान वाले पिक्सेल के सापेक्ष अल्फा को बनाए रखने के लिए 10% पारदर्शिता कटऑफ निर्धारित की है। आपको उस गणित की प्रकृति के कारण कई गुना अधिक इस प्रकार की चिंता करने की ज़रूरत नहीं है।
जो
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.