AABB في لعبة ذات أحرف/كائنات/كائنات قابلة للتدوير وقابلة للتدوير

StackOverflow https://stackoverflow.com/questions/4102602

  •  29-09-2019
  •  | 
  •  

سؤال

في تلك اليوم ، أقوم بإنشاء أول لعبة ثلاثية الأبعاد الخاصة بي وقد واجهت مشكلات.

قرأت عن تقاطع AABB وفكرة بناء الأشجار منه ، لكن الشيء الوحيد الذي لم أستطع فهمه هو ، إذا كان "شخصيتي" تدور أثناء اللعبة ، فإن مفهوم المحاور المحاذاة لم يتم الحفاظ عليها!

لقد راجعت بعض المكتبات (مثل Oz-Collide و OpCode والمزيد) ، ورأيت أن التطبيقات كانت مصنوعة للكائنات الثابتة ، لأنها تستخدم الصناديق بدون أصل (من أجل غير ثابت ، جميع العقد في الشجرة يجب تحديثها بعد كل حركة).

من المفترض أن تكون تلك المكتبات فائقة السرعة ، وربما أخطأت في مكان ما.

هل يمكن لأحد أن يساعدني في تسليط بعض الضوء على هذا الموضوع؟

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

المحلول

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

يكون AABB سريعًا لأن اختبار التقاطع بسيط للغاية ، لكن كما اكتشفت بالفعل ، يصبح هناك مشكلة عندما تكون هناك حاجة إلى تقاطعات دقيقة على الكائنات التي لا تتوافق مع محاور AABBS.

لا يزال AABB مفيدًا للاختبارات السريعة ، والتي أظن أن هذه الأشجار تصنع لها. مع شجرة AABB ، يمكنك القضاء بسرعة على مساحات كبيرة من الكائنات من مرحلة اختبار أكثر دقة. إذا كان الاستعلام يعيد بضعة كائنات إضافية ، فلا يهم كثيرًا. في حالة شخصيتك المدورة ، قد يعني هذا أن شخصيتك تعتبر في منطقة عندما لا يكون كذلك.

تضع Aabb-Tree نفسها بسهولة حيث تقوم في كل مرة تجري فيها اختبارًا بعمق في الشجرة وإلى مزيد من التفاصيل.

يمكنك استخدام مربع محيط موجه (OBB) عندما تحتاج إلى تقاطعات دقيقة حقًا. يمكن تنفيذها مع فصل نظرية المحور. أرى Oz-Collide لديها دعم لـ OBBS بالفعل.

هناك الكثير من الموارد على OBBS ، ساعدني هذا:gpwiki على فصل نظرية المحور

ها هو تطبيق.

يمكنك حساب AABB من OBB إذا كنت بحاجة إلى ذلك.

نصائح أخرى

يعمل OzCollide مع الكيانات المنقولة وهو مستقل للوقت (عليك فقط إعطاء متجه السرعة). كما أنه يعمل مع OBB (ليس فقط AABB).

تحقق من الوثائق عبر الإنترنت:http://www.tsarevitch.org/ozcollide/docs/ رابط مكسور

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