كيف تتعامل المحركات ثلاثية الأبعاد عادةً مع دوران الكائن؟ (مصور)

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

سؤال

أقوم ببناء محرك ثلاثي الأبعاد سريع للعبة أقوم بتطويرها.

حاليًا أتعامل مع دوران الكائنات ثلاثية الأبعاد عن طريق التناوب حول المحور العالمي Y ، X ثم Z. هل هذه هي الطريقة الصحيحة للقيام بذلك ، أم هل يجب أن أقوم بتدوير كائنات حول محورها المحلي؟

أيهما تنصح ولماذا؟

إذا كانت طريقة المحور المحلي هي الطريقة الصحيحة ، فهل يجب استخدام مصفوفة 3D 3x3 أو 4x4 لحساب الدورات بشكل صحيح؟ كيف؟

alt text

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

المحلول

4x4 مصفوفات يمنحك المزيد من المرونة. على سبيل المثال ، يمكنك سلسل العديد من التحولات (الترجمة ، الدوران ، إلخ) من خلال تكاثر المصفوفة.

نصائح أخرى

ماذا تحاول تحقيقه؟ إذا كنت ترغب في رؤية الكائن "تدور" ، فيجب إجراء الدورات حول الأصل المحلي. من ناحية أخرى ، فإن الدوران حول الأصل العالمي سيؤدي إلى "يدور" الأصل العالمي.

انظر إلى المناقشة المتعلقة بترتيب التحول هنا للحصول على توضيح.

لا يوجد حقًا صحيح ترتيب الدورات. إذا كنت تصنع محرك اللعبة الخاص بك ، فإن الطلب متروك لك حقًا.

ومع ذلك ، هذا لا يعني أنه لا يمكنك اختيار أن تكون متسقًا مع محركات الألعاب الأخرى. الوحدة ، على سبيل المثال ، تطبق دورات زاوية euler بالترتيب z ، x ، y. (مصدر) ولا يمكنني تأكيد 100 ٪ ، لكن تجربتي مع الوحدة تقودني إلى الاعتقاد بأنه يستخدم المحاور العالمية ، وليس محليًا.

إذا اتبعت النهج المذكور في إجابات أخرى ومصفوفات دوران 4 × 4 ، فمن المحتمل أن تحصل على سلوك المحور المحلي.

ولكن في الحقيقة ، إذا كنت تريد تجنب كل هذه المشكلات ، فربما يجب أن تتعلم فقط عن الرباعي ...

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