سؤال

أنا أكتب لعبة بلغة C++ ولدي مستوى يتكون من العديد من الشبكات المنفصلة، ​​ولكل منها مخزن مؤقت خاص بها.أنا أستخدم vmmlib (متوافق مع gl المجاني الرائع.مكتبة المتجه/المصفوفة ) لإنشاء أداة إعدام القطع الخاصة بي واختبارها مقابل المجال المحيط بكل شبكة في المستوى.للأسف، يمكن أن يتكون مستواي من ما يصل إلى 800 شبكة، ويكون التكرار عبرها جميعًا بطيئًا.ما هي أفضل طريقة لتحسين الكود حتى لا أضطر إلى إلقاء نظرة على جميع الشبكات في كل تكرار؟أحجام محيطة داخل الإحباط؟

هل كانت مفيدة؟

المحلول

نعم، الكائن المحيط هو الطريق الصحيح، يجب أن تهتم باختيار حجم محيط مناسب، على سبيل المثال بالنسبة للشبكات التي تتحرك حول المشهد مثل الروبوتات والتي لا تستلقي على شكل أسطوانة فهي الحجم الأفضل، بينما يتم تمثيل بعضها الآخر بشكل أفضل بواسطة المكعبات (المحور) محاذاة أم لا).

ثم تقوم بإنشاء رباعية أو ثماني لتقسيم بيانات الشبكة بشكل هرمي.

هذا يعمل بشكل جيد للغاية بالنسبة لإعدام الإحباط في الهواء الطلق.

بالنسبة للأماكن الداخلية، يعد BSP هو أفضل طريقة للذهاب حيث أن لديك الكثير من الجدران لتقسيم المساحة الخاصة بك.لا يزال يتعين عليك ربط حجم شبكاتك التي تحتوي على أكثر من 10 مضلعات.

نصائح أخرى

أردت فقط أن أضيف أنه في الوقت الحالي يُفضل بشكل عام بوابات الأيام على BSP أو بالاشتراك معها، لكن ليس لدي سمعة كافية لتحرير المنشور الأصلي.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top