क्या एक 2d भौतिकी इंजन है जो तरल पदार्थ और गैसों को मॉडल कर सकता है? [बन्द है]


20

इस बिंदु पर मंच और प्रोग्रामिंग भाषा कोई फर्क नहीं पड़ता मैं जानना चाहूंगा कि क्या इसके लिए कुछ मौजूद है। किसी भी मदद की सराहना की है।


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

जवाबों:


8

Pixeljunk शूटर के लिए उपयोग किए जाने वाले Q- गेम्स में देखें। यह सुंदर तरल पदार्थ भौतिकी के साथ एक 2d खेल है। मुझे यकीन नहीं है कि उन्होंने एक होमग्रोन या मिडलवेयर भौतिकी इंजन का उपयोग किया है, लेकिन जानकारी शायद कहीं बाहर है।


8
उन्होंने एक होमग्रॉन इंजन का उपयोग किया है, लेकिन ऐसी तकनीकों को शामिल किया है जिन्हें किसी भी कस्टम कोड एन भौतिकी कोड का उपयोग करके लागू किया जा सकता है। वास्तव में जीडीसी में उनके तरल पदार्थ की गतिशीलता के बारे में एक बहुत ही जानकारीपूर्ण बात की (स्लाइड यहाँ: gdcvault.com/play/1012447/Go-With-the-Flow-Fluid )
भूत

6

वैसे मैंने इस पर ध्यान नहीं दिया, लेकिन मैं इस तथ्य के लिए जानता हूं कि लगभग कोई भी भौतिकी इंजन विचार का अनुकरण कर सकता है। Box2D, आदि।

मूल रूप से चारों ओर उछल-कूद करने वाले कण, सतहों और प्रत्येक अभिभावकों (तेजी से गैसों के लिए) होते हैं, लेकिन उन्हें प्रभाव की तरह एक निरंतर गुरुत्वाकर्षण देते हैं (तरल पदार्थ सभी समान होंगे, लेकिन कुछ गैसें जिन्हें आप धीरे-धीरे उठना चाह सकते हैं)।

यदि आप बाहरी कणों को जोड़ते हैं तो आपको बहुभुज आकार मिलेगा जो कि द्रव्यमान का प्रतिनिधित्व करता है

या

यदि आप प्रत्येक कण के ऊपर एक पिक्सेल या कण ग्राफिक खींचते हैं, तो आप इसके बजाय द्रव्यमान के लिए एक क्लाउड प्रभाव प्राप्त कर सकते हैं।


4
यह उत्तर वास्तविक समय के खेल के लिए व्यावहारिक आकार में अनुकूल नहीं है।
अटैकिंगहोबो

3
मुझे यकीन नहीं है कि आप ऐसा क्यों कहेंगे, क्योंकि द्रव गतिकी बहुत बार कणों के रूप में मॉडलिंग की जाती है। उदाहरण के लिए यूट्यूब पर द्रव कणों पर एनवीडिया तकनीक के वीडियो देखें, कार्यक्रम अल्गोडू (जिसे पहले फुं कहा जाता है) या क्यू-गेम्स ने उनके PixelJunk शूटर गेम ( gdcvault.com/play/101847/Go-With-the-- पर स्लाइड्स के बारे में दिया) प्रवाह-द्रव )। उत्तरार्द्ध मामले में, क्यू-गेम दिखाता है कि वे कणों के संग्रह से बाहर बहुभुज का निर्माण कैसे करते हैं। मुझे लगता है कि यह पुष्टि करता है कि यह उत्तर वास्तविक समय के कार्यान्वयन IMHO के लिए काफी मान्य है।
भूत

वाह क्यों घटता है? मैं उग्र नहीं हूं, सिर्फ यह जानना चाहता हूं कि क्यों। यह एक यथार्थवादी तकनीक है और इसका उपयोग किया जाता है।
जोएल

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

कण काफी अच्छे काम करते हैं en.wikipedia.org/wiki/Smoothed-particle_hydrodynamics । FLT: s के नवीनतम डेमो में इस्तेमाल किया गया था जैसा कि directtovideo.wordpress.com/2011/05/03/numb-res में वर्णित है। यह क्रियान्वयन थोड़ा भारी हो सकता है, लेकिन पिक्सेल जंक शूटर GDC टॉक में सरल सन्निकटन ठीक काम करना चाहिए।
शून्य

6

केवल पुस्तकालय मैं तरल पदार्थ के साथ जो विशिष्ट रूप से सौदों के साथ आ सकता है Fluidic । यह सुंदर अल्फा है और केवल एक रिलीज है, हालांकि। भौतिकी पुस्तकालय बुलेट 'स्मूथेड-पार्टिकल हाइड्रोडायनामिक्स' का समर्थन करता है, जो एक तकनीक है जो तरल पदार्थ का उपयोग करता है। हालाँकि लाइब्रेरी को 3D की ओर गियर किया गया है, आप इसे 2 डी में काम करने के लिए एक धुरी पर बाधाओं को लागू कर सकते हैं।

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

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


आपके द्वारा लिंक किया गया वीडियो केवल बहुत से मंडलियों का उपयोग कर रहा है। वह एसपीएच नामक एक तकनीक का उपयोग करता है। आग बंदरगाह की Flui ° डी ° emo Box2D टकराव खोजने के लिए और लागू बलों लेकिन का उपयोग करता है SPH तरीकों बलों Box2D का नहीं कठोर शरीर गणना करने के लिए उपयोग करता है।
deft_code

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

3

इस प्रश्न को पोस्ट किए हुए कुछ साल हो गए हैं, लेकिन मैं इसे खोजते हुए आया, इसलिए मैंने सोचा कि मैं इसे अपडेट कर दूंगा।

Google ने Box2D सिस्टम के लिए लिक्विडफुन (खुला स्रोत) जारी किया। इसकी कुछ सीमाएँ हैं, लेकिन यह तरल, रेत, आदि कणों के साथ बहुत अच्छे प्रदर्शन के साथ आरंभ करने का एक त्वरित तरीका है।

https://github.com/google/liquidfun

PixelJunk में एक शानदार दृष्टिकोण है, लेकिन यह एक निजी पुस्तकालय है। उन्होंने GCD 2010 में अपनी बात में एक अद्भुत स्तर का विवरण साझा किया।

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