2012-03-07 17 views
12

के लिए ओपनजीएल ईएस ड्रॉप छायाएं मुझे स्प्रेइट्स के समूह के साथ एक ओपनजीएल दृश्य मिला है, और मैं स्वचालित रूप से उन सभी को ड्रॉप छाया जोड़ना चाहता हूं। यहाँ एक चित्र दिखा रहा है मैं क्या मतलब है:2 डी स्प्राइट्स

enter image description here

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

  1. प्रत्येक स्प्राइट दो बार सामान्य रूप से एक सा दृश्य में गहरी ड्रॉप छाया शेडर किसी तरह के साथ दूसरे ड्रा, पहले,। यकीन नहीं है कि यह संभव है?
  2. एक स्प्राइट ड्रा करें, फिर इसे फिर से खींचे, अंधेरे और कुछ अल्फा के साथ, कई बार यादृच्छिक जिटर के साथ वर्टिस्क्रिप्ट पर लागू होता है। यह मूर्खतापूर्ण लग सकता है और बिल्कुल छाया की तरह नहीं।
  3. पृष्ठभूमि के बिना मूल दृश्य को बनावट पर खींचें, फिर धुंधला करें और इसे एक बड़ी बूंद छाया बनाने के लिए अंधेरा करें। फिर ड्रॉप छाया बनावट पर अंत दृश्य को खींचें, फिर अंत में पृष्ठभूमि पर। हालांकि, यह sprites के बीच छाया खो देंगे।
  4. एसएसएओ एक पोस्ट-प्रोसेसिंग पास में। सबसे गतिशील और स्वचालित हो सकता है, लेकिन अस्पष्ट/दागदार और वास्तव में धीमी चीजें नीचे देख सकता है।
  5. निर्माण समय पर, प्रत्येक स्प्राइट के लिए छाया बनावट उत्पन्न करें। प्रतिपादन के लिए, एक स्प्राइट खींचें और उसके दृश्य दृश्य में दृश्य थोड़ा गहरा हो। मुझे लगता है कि मैं लोडिंग समय और अतिरिक्त मेमोरी आवश्यकताओं के कारण इसे टालना चाहूंगा, लेकिन यह सबसे तेज़ और सबसे अच्छा दिखने वाला हो सकता है?

मैं बाहरी बनावट के साथ कोई छाया काम नहीं करना चाहता, क्योंकि मैं अलग-अलग पैमाने पर एक ही स्प्राइट बनावट का उपयोग करता हूं, और पूर्व-बेक्ड छायाएं अनैसर्गिक रूप से स्केल होती हैं।

तो क्या इनमें से कोई भी दूसरों की तुलना में बेहतर है? क्या ऐसे अन्य विकल्प हैं जिनके बारे में मैं सोच नहीं रहा हूं? धन्यवाद!

+0

# 3 के लिए, आपको पोस्टप्रोकैसिंग के लिए कल्पना तकनीकों की सिफारिशों में रुचि हो सकती है: http://www.imgtec.com/powervr/insider/docs/PowerVR.Post%20Processing%20Effects%20Development%20 अनुशंसाएं .1.7 एफ। बाहरी.pdf, जिसमें एक उच्च दक्षता ब्लूम फ़िल्टर का विवरण शामिल है। अपने ऑब्जेक्ट्स के अंधेरे संस्करणों को प्रस्तुत करने के साथ अपने उच्च-पास फ़िल्टर को प्रतिस्थापित करना एक अच्छी, त्वरित ड्रॉप छाया उत्पन्न करना चाहिए। –

+0

अच्छा पढ़ा, ब्रैड। यदि मैं # 3 के साथ जाता हूं तो मैं उस विधि का उपयोग कर सकता हूं। – Josh

उत्तर

5

उन सभी कुछ विकल्प सुविचारित, यहाँ प्रत्येक

  1. पर मेरे विचार कर रहे हैं यह निश्चित रूप से एक शेडर उपयोग करना संभव है, लेकिन यह सबसे शक्तिशाली विकल्प नहीं हो सकता है, के बाद से धुंधला होना होगा शेडर के अंदर किया गया और इसमें कई बनावट लुकअप शामिल हो सकते हैं।
  2. बनावट को कई बार चित्रित करना एक छाया की तरह दिखता है, क्योंकि प्रत्येक "jittered" छवि में अल्फा मानों को थोड़ा संशोधित किया जाएगा। लेकिन फिर, प्रत्येक स्प्राइट के मिश्रण और एकाधिक रेंडर जोड़े जाएंगे और प्रदर्शन को प्रभावित कर सकते हैं।
  3. मुझे यह विकल्प पसंद है और इसकी अनुशंसा करते हैं, क्योंकि आप एक शेडर सेट कर सकते हैं जो रंगीन पिक्सेल (अल्फा पर विचार करने) के बजाय काले पिक्सल डालता है, स्क्रीन (1/4 वें?) से छोटे लक्ष्य को प्रस्तुत करता है और फिर इसे छाया बनावट के रूप में उपयोग करता है । चूंकि बनावट अब फैली हुई है, इसलिए आपको मुफ्त में "धुंधला" भी मिल जाएगा। "ब्लैकिंग" करने वाला पिक्सेल शेडर बहुत आसान होगा और प्रदर्शन को बहुत अधिक प्रभावित नहीं करेगा।
  4. जब तक आपको वास्तव में उच्च गुणवत्ता वाले छाया की आवश्यकता नहीं होती है (और पिछली विधि पर्याप्त नहीं होती है) मैं इसकी अनुशंसा नहीं करता।
  5. यह निश्चित रूप से सबसे लचीला विकल्प है और इसमें x2 प्रतिपादन जटिलता है। दुर्भाग्य से, यह उपरोक्त सभी अन्य विकल्पों की तुलना में अधिक स्मृति का उपभोग करेगा।

उम्मीद है कि इससे मदद मिलती है!

+0

आपके विचारों के लिए धन्यवाद! – Josh

+0

# 5 के साथ जाने के लिए जा रहा है, ऐसा लगता है कि यह मुझे सबसे अच्छा प्रदर्शन प्राप्त करेगा। – Josh