मैं इन उदाहरणों में एक जैसे प्रभाव के माध्यम से एक एकता को प्राप्त करना चाहता हूं:
मेरे विशिष्ट परिदृश्य में कुछ आवश्यकताएँ हैं:
- स्प्राइट अल्फा सम्मिश्रण का उपयोग कर रहे हैं, और स्प्राइट में पारदर्शी क्षेत्र हैं।
- 2 प्रकार के तत्व हैं जो चरित्र को कम करते हैं। एक को सिल्हूट प्रभाव बनाना चाहिए, और दूसरे को सामान्य की तरह व्यवहार करना चाहिए।
उन तत्वों को शामिल करने के लिए जो मैं सिल्वेट बनाता हूं जो ZWrite को सक्षम करता है, और इसे उन तत्वों के लिए अक्षम करता है जो नहीं करते हैं।
चरित्र के लिए मैंने shader की कतार को पारदर्शी + 1 में सेट करने का प्रयास किया, और इस पास को जोड़ा:
Pass
{
ZTest Greater
Lighting Off
Color [_Color]
}
और प्रभाव आंशिक रूप से काम करता है:
सिल्हूट को पूरे चरित्र में खींचा जाता है, यहां तक कि उन हिस्सों को भी जो पारदर्शी होते हैं। पारदर्शी भागों को एक सिल्हूट नहीं बनाना चाहिए।
सिल्हूट तब बनाया जाता है जब चरित्र स्प्राइट के पीछे होता है, भले ही स्प्राइट का वह हिस्सा पारदर्शी हो। स्प्राइट के एक पारदर्शी हिस्से के पीछे होने से सिल्हूट नहीं बनना चाहिए।
यह चरित्र बाकी तत्वों को प्रभावित करता है, भले ही यह उनके पीछे हो। मुझे लगता है कि यह इसलिए है क्योंकि कतार को ट्रांसपेरेंट + 1 में सेट करना है। लेकिन अगर मैं इसे ट्रांसपेरेंट के रूप में छोड़ता हूं, तो चरित्र सही क्रम में खींचा जाता है, लेकिन सिल्हूट कभी नहीं देखा जाता है।
मैंने इन युक्तियों का पालन करने की कोशिश की जो किसी ने मुझे दी, लेकिन मैं इसे काम करने में असमर्थ हूं:
1) पास को छोड़ दें जो स्प्राइट्स को प्रस्तुत करता है जैसा कि है।
2) एक पास जोड़ें जो z- बफर को लिखता है, लेकिन इसमें एक शेडर है जो अल्फा पर आधारित पिक्सल को त्यागने के लिए क्लिप () का उपयोग करता है। आप MSAA और अल्फा-इन कवरेज का उपयोग किए बिना सॉफ्ट z- परीक्षण करने के लिए z- बफर का उपयोग नहीं कर सकते। उस की गुणवत्ता महान नहीं होगी, लेकिन यह सबसे अच्छा आप कर सकते हैं। एक तेज विकल्प एक पैटर्न या शोर या तो है, या एक अच्छा पुराने जमाने की दहलीज है अगर आपके स्प्राइट सभी में काफी तेज किनारों हैं।
3) ओब्-टेस्ट करने योग्य वस्तुओं में तीसरा पास जोड़ें जो जेड-टेस्ट का उपयोग करके रोड़ा रंग बनाता है और सुनिश्चित करें कि यह अंतिम पास के रूप में तैयार किया गया है।
मैं विशेष रूप से यूनिटी में शेड्स के लिए नया हूं, और मैं अभी यह पता नहीं लगा सकता कि इसे कैसे ठीक से काम करना है।