2 डी सॉफ्ट-बॉडी भौतिकी इंजन?


9

नमस्ते इसलिए मैंने हाल ही में SFML ग्राफिक्स लाइब्रेरी सीखी है और इसके साथ उपयोग करने के लिए एक गैर-कठोर बॉडी 2D भौतिकी प्रणाली का उपयोग या बनाना चाहूंगा। मेरे तीन सवाल हैं:

Box2d में कठोर शरीर की परिभाषा है

पदार्थ का एक हिस्सा जो इतना मजबूत होता है कि किसी भी चीज के दो टुकड़ों के बीच की दूरी पूरी तरह से स्थिर रहती है।

और यह वही है जो मैं नहीं चाहता, जैसा कि मैं लोचदार, विकृत, टूटने योग्य और फिर से कनेक्शन निकायों को बनाना चाहता हूं। 1. क्या कोई सरल 2 डी भौतिकी इंजन है, लेकिन इस प्रकार की विशेषताओं के साथ? अधिमानतः मुक्त या ओपनसोर्स?

2. यदि मैं box2d का उपयोग नहीं कर सकता और इसे बंद करने के लिए काम कर सकता हूं, भले ही यह कठोर निकायों पर आधारित हो?

3. अंत में, अगर इस तरह का एक सरल भौतिकी इंजन है, तो क्या मुझे अनुभव के लिए और भौतिकी गणित के ज्ञान को बढ़ाने के लिए वैसे भी एक नया बनाने की असफलता से गुजरना चाहिए? मुझे लगता है कि अगर मैं कभी किसी मौजूदा इंजन के कोड को संशोधित करना चाहता हूं, या वास्तव में अद्वितीय भौतिकी के साथ एक गेम बनाना चाहता हूं तो यह मदद करेगा।

धन्यवाद!


1
इस इंजन को JelloPhysics (C #) कहा जाता था, लेकिन लगता है कि यह साइट डाउन है। यहाँ एक वीडियो है: youtube.com/watch?v=SvqY_pgA6DU
bummzack

जवाबों:


6

आप नरम शरीर और तरल पदार्थ की गतिशीलता बनाने के लिए कठोर शरीर प्रणालियों का उपयोग कर सकते हैं। इसके पीछे शारीरिक कारण? ठीक है, अनिवार्य रूप से, परमाणु छोटे कठोर शरीर हैं। यह पूरी तरह से सही नहीं है, लेकिन सादगी के लिए आप उन्हें इस तरह देख सकते हैं। और नरम शरीर स्पष्ट रूप से परमाणुओं से बने होते हैं।

तो, आप Box2D जैसे कठोर बॉडी इंजन का उपयोग करके "सॉफ्ट बॉडीज" कैसे बनाते हैं?

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

लेकिन यह सिर्फ एक मोटा विवरण है। Box2D के साथ बहुत से "प्राथमिक क्षेत्र का काम" ewjordan द्वारा किया गया है, जो Box2D के जावा-पोर्ट के डेवलपर्स में से एक है। यहाँ एक अच्छा प्रारंभिक बिंदु है: http://www.box2d.org/forum/viewtopic.php?f=8&t=1978


कोमल शरीर के "आकार" को बनाए रखने के लिए तनाव / संपीड़न स्प्रिंग्स के मिश्रण की आवश्यकता होती है, साथ ही इसे पूरे रखने के लिए वॉल्यूम की गणना भी की जाती है।
जोनाथन कॉननेल

हां, लेकिन यह सब वास्तव में जोड़ों के माध्यम से किया जाता है, अगर हम Box2D के बारे में बात कर रहे हैं। निश्चित रूप से उन्हें अपने व्यवहार में बदलाव लाना होगा, लेकिन यहीं से उन्हें शुरुआत करनी होगी। उदाहरण के लिए Gish-like blobs में निरंतर वॉल्यूम प्रभाव के लिए, JBox2D में कॉन्स्टैंटवोल्यूमजॉइंट है।
ट्रैविसग

हाँ, मैं Box2D से परिचित नहीं हूँ, मुझे अभी पता है कि कैसे कुछ कॉलेजियम ने बबल का अनुकरण करने के लिए PhysX का इस्तेमाल किया। ^
जोनाथन कॉनेल

1

आप जिस शब्द की तलाश कर रहे हैं वह सॉफ्ट-बॉडी फिजिक्स है।

विकिपीडिया की एक अच्छी सूची है। वे सभी 3D AFAICS हैं, लेकिन अच्छा होना चाहिए।

इसके अलावा इस एसओ प्रश्न की जाँच करें ।

एक महान पुस्तक (यह कठोर शरीर है, लेकिन सभी गणित और भौतिकी हैं; यह 3 डी भी है, लेकिन 2 डी में स्थानांतरित करने के लिए तुच्छ है) खेल भौतिकी इंजन विकास है । यह कठोर निकायों और टकराव पर जाने से पहले एक कण आधारित प्रणाली को लागू करता है।


1

नरम शरीर को अनुकरण करने का एक सरल तरीका यह है कि छोटे कठोर शरीर को लोचदार जोड़ों से जोड़ा जाए। फिर मुश्किल हिस्सा अपने मॉडल के मापदंडों को ठीक करना और अंतर्निहित मॉडल की बनावट को मैप करना है।

निम्नलिखित ब्लॉग पोस्ट cocos2d इंजन के साथ एक ख़राब गेंद का कार्यान्वयन प्रदान करता है: http://2sa-studio.blogspot.com/2014/05/soft-bodies-with-cocos2d-v3.html


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