इस प्रोजेक्ट के बारे में
Avian एक ECS-संचालित 2D और 3D भौतिकी इंजन है जो विशेष रूप से Bevy गेम इंजन के लिए डिज़ाइन किया गया है। किसी मौजूदा इंजन को लपेटने के बजाय, इसे शुरू से ही Bevy के Entity Component System को मूल में रखकर बनाया गया है, इसलिए भौतिकी की स्थिति खेल के बाकी संस्थाओं के समान दुनिया में रहती है।
डिज़ाइन सिद्धांत
- Bevy के लिए, Bevy के साथ बनाया गया, मौजूदा इंजनों के आसपास कोई रैपर नहीं।
- एर्गोनोमिक, परिचित API।
- अलग भौतिकी दुनिया के बजाय ECS का भारी उपयोग।
- मॉड्यूलर प्लगइन आर्किटेक्चर ताकि इंजन के हिस्सों को बदला जा सके।
- दस्तावेज़ीकरण पर जोर।
विशेषताएं
- कठोर पिंड: गतिशील, गतिज और स्थिर, रैखिक और कोणीय वेग, बाहरी बल, टॉर्क और आवेग, गुरुत्वाकर्षण और गुरुत्वाकर्षण पैमाने, रैखिक और कोणीय अवमंदन, अक्ष लॉकिंग, कठोर पिंड प्रभुत्व, निरंतर टकराव का पता लगाना (CCD), और सोने के माध्यम से स्वचालित निष्क्रियता।
- Parry द्वारा संचालित टकराव का पता लगाना: कॉन्फ़िगर करने योग्य टकराव परतों, घनत्व और सामग्री गुणों वाले कोलाइडर; मेश और पूरे दृश्यों के लिए कोलाइडर निर्माण; टकराव की घटनाएं; टकराने वाली संस्थाओं तक पहुंच; टकरावों को फ़िल्टर करने और संशोधित करने के लिए टकराव हुक; मैनुअल संपर्क क्वेरी और प्रतिच्छेदन परीक्षण।
- बाधाएं और जोड़: अंतर्निहित फिक्स्ड, दूरी, प्रिज़्मेटिक, रिवोल्यूट और गोलाकार जोड़, साथ ही XPBD का उपयोग करके कस्टम जोड़ और बाधाओं के लिए समर्थन।
- स्थानिक क्वेरी: रेकास्टिंग, शेपकास्टिंग, बिंदु प्रक्षेपण और प्रतिच्छेदन परीक्षण, घटक-आधारित API, लचीले SpatialQuery सिस्टम पैरामीटर और क्वेरी फ़िल्टर के साथ।
- निश्चित समय चरणों के लिए ट्रांसफ़ॉर्म इंटरपोलेशन और एक्सट्रपोलेशन।
- कोलाइडर, AABB, संपर्क, जोड़ और स्थानिक क्वेरी के लिए डीबग रेंडरिंग।
- कॉन्फ़िगर करने योग्य शेड्यूलिंग, उच्च अनुकूलन क्षमता, मॉड्यूलर प्लगइन्स, कस्टम टकराव बैकएंड के लिए समर्थन, और f32/f64 परिशुद्धता (डिफ़ॉल्ट रूप से f32)।
उपयोग
Cargo.toml में avian2d या avian3d जोड़ें, Bevy के DefaultPlugins के साथ PhysicsPlugins पंजीकृत करें, फिर RigidBody, Collider, AngularVelocity और Transform जैसे घटकों के साथ संस्थाएं बनाएं। README में एक पूर्ण 3D उदाहरण शामिल है जहां एक घूमता हुआ घन एक स्थिर बेलनाकार प्लेटफ़ॉर्म पर गिरता है।
उदाहरण और संस्करण
कई 2D और 3D उदाहरण crates/avian2d/examples और crates/avian3d/examples के अंतर्गत हैं। वे f32 और f64 दोनों परिशुद्धताओं का समर्थन करते हैं; f64 के लिए डिफ़ॉल्ट सुविधाओं को अक्षम करना और आयाम और परिशुद्धता को मैन्युअल रूप से चुनना आवश्यक है। एक संस्करण तालिका Bevy रिलीज़ को Avian रिलीज़ से मैप करती है (उदाहरण के लिए Bevy 0.19 के साथ Avian 0.7), और माइग्रेशन गाइड प्रदान किए गए हैं। Avian, Bevy XPBD का उत्तराधिकारी है।
समुदाय और लाइसेंस
मुद्दों और पुल अनुरोधों के माध्यम से योगदान का स्वागत है, पहले समीक्षा करने के लिए AI नीति के साथ। विकास चर्चा Avian Dev Discord और Bevy Discord पर होती है। परियोजना उपयोगकर्ता की पसंद पर MIT या Apache-2.0 के तहत दोहरी लाइसेंस प्राप्त है।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.