عن المشروع
Bevy Hanabi هي إضافة نظام جسيمات حديثة مدفوعة بوحدة معالجة الرسومات (GPU) لمحرك الألعاب Bevy. تنقل معظم أعمال المحاكاة والعرض إلى وحدة معالجة الرسومات عبر تظليل الحوسبة (compute shaders)، مما يتيح مؤثرات بصرية (VFX) في الوقت الفعلي وعلى نطاق واسع. التصميم مستوحى من أنظمة الجسيمات في محركات الألعاب الرائدة في المجال.
**الميزات الرئيسية:**
- **Spawn:** معدل ثابت، انفجار لمرة واحدة، انفجار متكرر، إعادة تعيين، تنشيط/إلغاء تنشيط، ومعاملات عشوائية.
- **Initialize:** الموضع على الأشكال (دائرة، كرة، مخروط/مخروط مقطوع)، إزاحات عشوائية، السرعة على الأشكال، لون/حجم/عمر/مدة حياة لكل جسيم.
- **Update:** تكامل الحركة بأسلوب أويلر، القوى (الجاذبية، القطرية، المماسية، حقول القوى، السحب الخطي)، مدة الحياة، تغيرات الحجم/اللون بمرور الوقت، شروط المحاكاة (دائمًا أو فقط عند الظهور).
- **Render:** أرباع ذات نسيج، شبكات ثلاثية الأبعاد عامة، تشوه (تمدد، آثار/شرائط)، دعم الكاميرا (ثنائية/ثلاثية الأبعاد، كاميرات مزدوجة، منافذ عرض متعددة، HDR/bloom)، لوحات مواجهة للكاميرا (billboarding)، أوضاع التوجيه، وتحجيم في فضاء الشاشة.
- **Expressions API:** تخصيص سمات الجسيمات (الموضع، اللون، إلخ) عبر نظام تعبيرات قائم على الرسم البياني.
**الاستخدام:**
1. أضف `bevy_hanabi = "0.19"` إلى `Cargo.toml`.
2. سجّل `HanabiPlugin` في تطبيق Bevy الخاص بك.
3. أنشئ `EffectAsset` بإعدادات Spawn والمهيئات (initializers) والمحدّثات (updaters) ومعدّلات العرض (render modifiers).
4. أنشئ مكوّن `ParticleEffect` مع مقبض (handle) إلى الأصل (asset).
**التوافق:**
- متوافق مع إصدارات Bevy >= 0.6؛ يتابع فرع `main` أحدث إصدار من Bevy.
- دعم WebAssembly (عبر WebGPU) متاح منذ الإصدار v0.13.
**ميزات Cargo:**
- `2d` (افتراضي): تمكين عرض الكاميرا ثنائية الأبعاد.
- `3d` (افتراضي): تمكين عرض الكاميرا ثلاثية الأبعاد.
- يمكن للمستخدمين تعطيل الميزات الافتراضية لتحسين نوع كاميرا واحد.
**الحالة:** قيد التطوير المكثف؛ مناسب للمؤثرات متوسطة الحجم. نرحب بالملاحظات والمساهمات.
**الترخيص:** ترخيص مزدوج بموجب MIT أو Apache-2.0.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.