GLSL शेडर इफेक्ट्स: मोशन ब्लर कैसे करें?


16

मेरे पास पूर्ण 2 डी वातावरण है, जिसमें स्प्राइट परिदृश्य, पात्रों, आदि के रूप में घूम रहा है।

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

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


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

@ knight666 यह बेहतर नहीं होगा (मेमोरी निश्चित रूप से, गति मुझे निश्चित नहीं है) 1 अतिरिक्त बफर रखने के लिए (इसे कॉल करें) और आउटपुट बफ़र (स्क्रीन पर जाने) के साथ इसमें से कुछ अंश (0.75) मिलाएं। इसे B) कहें और फिर B से A को बाद में कॉपी करें। यह एक रोलिंग औसत पैदा करेगा और गति में वृद्धि से धुंधला कुछ अतिरिक्त खर्च नहीं होगा।
एल्वा

1
मेरा मतलब यह टिप्पणी करना था, लेकिन टिप्पणी बटन नहीं मिला। वैसे भी, डेव ओ का कहना है कि शायद आप सबसे अच्छा दांव हैं और क्रैसिस जैसे गेम में इसका क्या उपयोग है। यह इस तरह से काम करता है। ऑब्जेक्ट रेंडर के दौरान, रेंडर ऑब्जेक्ट वेग एक अलग बफर में। एमआरटी इसे थोड़ा तेज कर देगा, और वेगों की गणना करने के कई तरीके हैं, लेकिन आप एक अतिरिक्त बफर के साथ समाप्त करना चाहते हैं जिसमें पूरे रेंडर बफर के लिए वेग हैं। फिर एक प्रक्रिया के बाद shader में, हर पिक्सेल पर वेग के आधार पर, आप वेलोक की विपरीत दिशा में कलर बफर में नमूना लेते हैं
Arelius

27-1 को सूचीबद्ध करने में एचएलएसएल / सीजी कोड एक पूर्ण-स्क्रीन पोस्ट-प्रोसेसिंग पिक्सेल शेडर में पिछले समीकरणों का उपयोग किसी दिए गए पिक्सेल पर दी गई वस्तुओं की विश्व-स्थान की स्थिति की गहराई बफ़र और वर्तमान के व्युत्क्रम का उपयोग करने के लिए करता है। दृश्य-प्रक्षेपण मैट्रिक्स। ... HLSL .... आपके कोड में यह GLSL नहीं है .....

जवाबों:


6

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


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

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

19

मैं इस विधि का उपयोग करने की सलाह दूंगा : मोशन ब्लर पोस्ट-प्रोसेसिंग इफेक्ट के रूप में

लागू करने के लिए बहुत सरल है, यह एक है जो मैंने अपने glsl डेमो Ruin द्वीप [लिंक] में उपयोग किया है


यह विधि पिछले फ्रेम में सम्मिश्रण करने के लिए बहुत बेहतर है ...
स्टीवन लू

जैसा कि अभी है, यह उत्तर केवल एक लिंक प्रदान करता है। यदि भविष्य में लिंक टूट जाता है, तो किसी को भी पता नहीं चलेगा कि वास्तव में उनकी समस्या को कैसे हल किया जाए। लिंक आपको जो आवश्यक जानकारी देता है उसे कम से कम शामिल करने का प्रयास करें

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