عن المشروع
Avian هو محرك فيزياء ثنائي وثلاثي الأبعاد مبني على ECS مصمم خصيصًا لمحرك الألعاب Bevy. بدلاً من تغليف محرك موجود، تم بناؤه من الصفر مع نظام مكونات الكيانات (ECS) الخاص بـ Bevy في جوهره، لذا تعيش حالة الفيزياء في نفس عالم بقية كيانات اللعبة.
مبادئ التصميم
- مصنوع مع Bevy، ومن أجل Bevy، دون أي أغلفة حول محركات موجودة.
- واجهة برمجة مريحة ومألوفة.
- استخدام مكثف لـ ECS بدلاً من عالم فيزياء منفصل.
- بنية إضافات معيارية بحيث يمكن استبدال أجزاء المحرك.
- التركيز على التوثيق.
الميزات
- الأجسام الصلبة: ديناميكية، حركية، وثابتة، مع سرعة خطية وزاوية، قوى خارجية، عزم دوران واندفاعات، جاذبية ومقياس جاذبية، تخميد خطي وزاوي، قفل محاور، هيمنة الأجسام الصلبة، كشف التصادم المستمر (CCD)، وإلغاء التنشيط التلقائي عبر النوم.
- كشف التصادم مدعوم من Parry: مصادمات بطبقات تصادم قابلة للتكوين، خصائص كثافة ومواد؛ توليد مصادمات للشبكات والمشاهد بأكملها؛ أحداث التصادم؛ الوصول إلى الكيانات المتصادمة؛ خطافات تصادم لتصفية وتعديل التصادمات؛ استعلامات اتصال يدوية واختبارات تقاطع.
- القيود والمفاصل: مفاصل ثابتة، مسافة، منشورية، دوارة، وكروية مدمجة، بالإضافة إلى دعم مفاصل وقيود مخصصة باستخدام XPBD.
- الاستعلامات المكانية: تتبع الأشعة، تتبع الأشكال، إسقاط النقاط واختبارات التقاطع، مع واجهة برمجة قائمة على المكونات، ومعامل نظام SpatialQuery مرن وفلاتر استعلام.
- استيفاء واستقراء التحويل لخطوات زمنية ثابتة.
- عرض تصحيح للمصادمات، AABBs، الاتصالات، المفاصل والاستعلامات المكانية.
- جدولة قابلة للتكوين، تخصيص عالي، إضافات معيارية، دعم خلفيات تصادم مخصصة، ودقة f32/f64 (f32 افتراضيًا).
الاستخدام
أضف avian2d أو avian3d إلى Cargo.toml، وسجّل PhysicsPlugins جنبًا إلى جنب مع DefaultPlugins الخاصة بـ Bevy، ثم أنشئ كيانات بمكونات مثل RigidBody وCollider وAngularVelocity وTransform. يتضمن README مثالًا ثلاثي الأبعاد كاملاً حيث يسقط مكعب دوار على منصة أسطوانية ثابتة.
الأمثلة والإصدارات
توجد أمثلة ثنائية وثلاثية الأبعاد عديدة تحت crates/avian2d/examples وcrates/avian3d/examples. تدعم كلا الدقتين f32 وf64؛ تتطلب f64 تعطيل الميزات الافتراضية واختيار البعد والدقة يدويًا. يربط جدول الإصدارات إصدارات Bevy بإصدارات Avian (على سبيل المثال Bevy 0.19 مع Avian 0.7)، ويتم توفير أدلة الترحيل. Avian هو خليفة Bevy XPBD.
المجتمع والترخيص
المساهمات مرحب بها عبر القضايا وطلبات السحب، مع سياسة ذكاء اصطناعي للمراجعة أولاً. تجري مناقشة التطوير على خادم Avian Dev Discord وخادم Bevy Discord. المشروع مرخص بموجب ترخيص مزدوج MIT أو Apache-2.0، حسب اختيار المستخدم.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.