जटिल ध्वनि स्कैप्स के निर्माण के लिए गोलाकार हार्मोनिक्स का उपयोग करना


16

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

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

वैसे भी किसी को भी इस विषय पर किसी भी कागजात का पता नहीं है, खासकर यह कि यह वास्तविक समय में कैसे किया जाएगा। असफल होना कि किसी को भी कोई सलाह या उपयोगी सामान्य जानकारी मिली?


1
यह मुझे इंडी गेम डेविल्स ट्यूनिंग फोर्क की याद दिलाता है: indiegames.com/blog/2009/11/freeware_game_pick_devils_tuni.html (इसके लिए एक अच्छा अनुभव प्राप्त करने के लिए वीडियो देखें!)
आरटीआई

जवाबों:


5

हाँ, यह एक अच्छा विचार है। मल्हम ने पहले से ही इस पर एक पेपर लिखा था, जो कि मेन्ज़ीज़ द्वारा कुछ टिप्पणियों (1999 में वापस!) पर आधारित था ।

यह भी ध्यान दें कि नोसेल के एमएएससी थीसिस में ध्वनिकी के लिए रेडियोसिटी का उपयोग करने पर चर्चा की गई थी।

प्रकाश व्यवस्था के लिए, (जो कार्यों के 3 सेट करता है, आर के लिए एक, जी के लिए एक, बी के लिए एक) आपको प्रत्येक रफ फ़्रीक्वेंसी बैंड के लिए एसएच फ़ंक्शंस का एक अलग "सेट" करने की आवश्यकता होगी, (एक के लिए कहें) कम आवृत्ति, 60Hz-1kHz, मध्य 1kHz-2kHz के लिए एक, उच्च 10kHz-20kHz, आदि के लिए एक)। 60Hz से नीचे सब कुछ गुजरने दो (जो वास्तविक जीवन में ध्वनि बहुत अधिक है)

आपको प्रत्येक सामग्री की ध्वनिक परावर्तन क्षमताओं को मॉडल करने की आवश्यकता होगी, हालांकि, जैसे ही प्रकाश सामग्री प्रत्येक आरजीबी के लिए अलग-अलग प्रतिक्रिया देती है।


3

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

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

जिन क्षेत्रों के बारे में मुझे कम जानकारी है, उनमें एक बीएसपी पेड़ ऐसा लगता है कि यह लहरों के लिए उपयोगी हो सकता है जो चारों ओर कोनों के रूप में झुकते हैं (मुझे लगता है) यह वॉल्यूम और उनके कनेक्शन को अन्य संस्करणों में परिभाषित करता है।

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


यह मुझ पर प्रहार करता है कि आप स्पेक्युलर और डिफ्यूज़ प्रतिबिंब के साथ-साथ "झुकने वाले गोल कोनों" को भी प्राप्त कर सकते हैं और सभी के लिए, बहुत ज्यादा, कुछ फैशन में गोलाकार हार्मोनिक्स का उपयोग करके मुक्त कर सकते हैं ...
Goz

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

3

2

मैंने वास्तव में यह कोशिश नहीं की है, लेकिन मैंने हमेशा सोचा है कि ऑडियो के लिए प्रकाश प्रसार वॉल्यूम जैसे दृष्टिकोण का उपयोग किया जा सकता है। प्रकाश प्रसार मात्रा में एक छोटे से 3 डी बनावट का उपयोग किया जाता है (32x32x32 मेरा मानना ​​है) जिसमें 3 डी बनावट को भरने के लिए बाढ़ द्वारा प्रकाश उछलता है और कटाव का अनुकरण किया जाता है। चूंकि यह गोलाकार हार्मोनिक्स का उपयोग करता है, इसलिए यह ऑडियो के साथ भी ऐसा करने में सक्षम हो सकता है। मैं हालांकि एक ऑडियो विशेषज्ञ नहीं हूँ


2

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

हालांकि, उनमें से कुछ के माध्यम से पढ़ने के लिए यह आपके लिए उपयोग का हो सकता है। यह आपको सुझाव दे सकता है कि कैसे आगे बढ़ना है और / या अपने दृष्टिकोण को संशोधित करने के लिए cruder है, लेकिन वास्तविक समय के प्रदर्शन के लिए पर्याप्त कुशल है।

उसकी साइट यहाँ है:

http://www.cs.cornell.edu/~djames/

विशेष रूप से रुचि उनके "हार्मोनिक तरल पदार्थ" और "हार्मोनिक गोले" पत्र हो सकते हैं।


1

मैंने भी कुछ सोचा है। मैंने महसूस किया कि प्राथमिक चिंता (यथार्थवाद / प्रदर्शन व्यापार-बंद के संदर्भ में) यह थी कि स्थानिक रूप से आपके कान आपकी आंखों से हीन हैं - और काफी आसानी से कुछ ऐसा स्वीकार करते हैं जो शायद उतना वास्तविक नहीं हो जितना आपकी आंखों को चाहिए। एक बहुत अच्छा मौका है कि स्थानीय वातावरण में पूरी तरह से मॉडल ध्वनि की कोशिश कर रहा है ओवरकिल - EAX शायद 'अच्छा पर्याप्त' है।

एक बंद वातावरण में (उदाहरण के लिए) मैं सबसे पहले प्रत्येक कमरे के बारे में दो गुणों की गणना करूँगा: 'ट्रांसफरेंस' और विसर्जन:

ट्रांसफरेंस यह संकेत देगा कि इस कमरे से यात्रा करने से ध्वनि कैसे प्रभावित होगी और यह सबसे अधिक पैरामीट्रिक ईक्यू की ओर गिना जाएगा (आदर्श रूप से आप प्रत्येक कमरे से प्रतिध्वनि / reverb जोड़ेंगे, लेकिन आपके EAX चिप में यह अधिक बैंडविड्थ नहीं हो सकता है)। पैरामीट्रिक EQ भी अंततः ध्वनि क्षीणन का अनुकरण करेगा।

कमरे को नौ क्यूब्स में विभाजित करके विसर्जन की गणना की जाएगी (संभवतः, यहां तक ​​कि बस एक बहुत अच्छी हो सकती है) और उस दृष्टिकोण से स्थानीय ध्वनि गुणों की गणना। इन मापदंडों का उपयोग EAX वातावरण में किया जाएगा।

अंत में आपके प्रत्येक कमरे को एक ग्राफ से जोड़ा जाएगा, जहां ग्राफ के प्रत्येक बिंदु प्रत्येक कमरे को जोड़ने वाले पोर्टल हैं।

जब ध्वनि ट्रिगर होती है तो आप एक बाढ़ भराव (कोई ए * खोज) नहीं करेंगे और ट्रांसफ़रेंस और दूरी की यात्रा पर नज़र रखेंगे। जब ध्वनि खिलाड़ी तक पहुँचती है तो आप इसे भविष्य में किसी बिंदु पर खेलने के लिए कतार में लगाएंगे; की दूरी के आधार पर यात्रा की। आप पास किए गए ग्राफ़ बिंदुओं की संख्या पर नज़र रख सकते हैं और अंततः ध्वनि को 'अन्य शब्दों में (लगातार बाढ़ का भराव') कह सकते हैं। ऐसा करने के लिए आपको CUDA का उपयोग करना पड़ सकता है क्योंकि यह CPU को बाध्य कर सकता है।

जब कोई साउंड बजाता है तो आप एक 3D साउंड API (OpenAL) का उपयोग करेंगे और उसे उस पोर्टल पर रखें, जिस पर वह प्रवेश करता है, तब आपको पता चलेगा कि वर्तमान में कौन सा नौ क्यूब्स कौन सा है और उस EAX वातावरण को लागू करें।

यहां साफ-सुथरी बात यह है कि यदि आपका वातावरण पर्याप्त रूप से जटिल है, तो आपको मुफ्त 'वैश्विक' गूँज मिलेगी और खिलाड़ी सही दिशा से आने वाली आवाज़ का अनुभव करेंगे; और यदि आपको EAX का वातावरण सही मिलता है तो उम्मीद है कि यह प्रभाव पर्याप्त होगा कि मस्तिष्क इसे स्वीकार करेगा।

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