كشف التصادم

يُعدّ اكتشاف التصادم مشكلة حسابية تتمثل في رصد تقاطع جسمين أو أكثر في الفضاء الافتراضي. وبشكل أدق، يتناول هذا المجال مسائل ما إذا كان جسمان أو أكثر يتقاطعان ، ومتى، وأين . ويُعتبر اكتشاف التصادم مشكلة كلاسيكية في الهندسة الحسابية، وله تطبيقات في رسومات الحاسوب ، والمحاكاة الفيزيائية ، وألعاب الفيديو ، والروبوتات (بما في ذلك القيادة الذاتيةوالفيزياء الحسابية . ويمكن تقسيم خوارزميات اكتشاف التصادم إلى خوارزميات تعمل على أجسام مكانية ثنائية الأبعاد أو ثلاثية الأبعاد. [ 1 ]

ملخص

تُعد كرات البلياردو التي تصطدم ببعضها البعض في الفضاء الافتراضي مثالاً كلاسيكياً حيث تكون هناك حاجة إلى حسابات اكتشاف التصادم.

يرتبط اكتشاف التصادم ارتباطًا وثيقًا بحساب المسافة بين الأجسام، إذ يحدث التصادم عندما تكون المسافة بينها أقل من أو تساوي الصفر. [ 2 ] تشير المسافات السالبة إلى أن أحد الأجسام قد اخترق جسمًا آخر. ويتطلب اكتشاف التصادم معلومات أكثر من مجرد المسافة بين الأجسام.

يُعدّ تحديد نقاط التلامس بدقة على سطحي الجسمين أمرًا بالغ الأهمية لحساب استجابة تصادم دقيقة فيزيائيًا. وتزداد صعوبة هذه المهمة مع ازدياد مستوى التفاصيل في تمثيلات الجسمين: فكلما كان النموذج أكثر تعقيدًا، زادت التكلفة الحسابية. [ 3 ]

غالباً ما تتضمن عملية اكتشاف التصادم أجساماً متحركة، مما يضيف بُعداً زمنياً إلى حسابات المسافة. فبدلاً من مجرد قياس المسافة بين الأجسام الثابتة، تهدف خوارزميات اكتشاف التصادم عادةً إلى تحديد ما إذا كانت حركة الأجسام ستؤدي بها إلى نقطة زمنية تكون فيها المسافة بينها صفراً، وهي عملية تضيف عبئاً حسابياً كبيراً. [ 4 ] [ 3 ]

في عملية الكشف عن التصادمات التي تشمل عدة أجسام، يتطلب النهج البسيط الكشف عن التصادمات لجميع التوليفات الثنائية للأجسام. ومع ازدياد عدد الأجسام، يزداد عدد المقارنات المطلوبة بسرعة: لـن{\displaystyle n}أشياء،ن(ن-1)/2{n(n-1)}/{2}تُعدّ اختبارات التقاطع ضرورية حتى مع اتباع نهج بسيط. هذا النمو التربيعي يجعل هذا النهج مكلفًا حسابيًا.ن{\displaystyle n}[ 4 ] [ 5 ]

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

يتمثل أحد الأساليب الشائعة لتسريع العمليات الحسابية المطلوبة في تقسيم العملية إلى مرحلتين: المرحلة العامة والمرحلة الضيقة . [ 4 ] [ 6 ] تهدف المرحلة العامة إلى الإجابة على سؤال ما إذا كان من الممكن أن تتصادم الأجسام، باستخدام نهج متحفظ ولكنه فعال لاستبعاد الأزواج التي من الواضح أنها لا تتقاطع، وبالتالي تجنب العمليات الحسابية غير الضرورية.

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

مرحلة واسعة

تهدف هذه المرحلة إلى تحديد الأجسام أو أجزاء منها بسرعة، والتي يمكن تحديد عدم الحاجة إلى مزيد من اختبارات التصادم بشأنها. ومن الخصائص المفيدة لهذا النهج حساسيته للمخرجات . في سياق اكتشاف التصادم، يعني هذا أن التعقيد الزمني لاكتشاف التصادم يتناسب طرديًا مع عدد الأجسام المتقاربة. ومن الأمثلة المبكرة على ذلك مشروع I-COLLIDE [ 5 ] ، حيث كان عدد اختبارات التصادم المطلوبة في المرحلة الضيقةيا(ن+م){\displaystyle O(n+m)}أينن{\displaystyle n}هو عدد الأشياء وم{\displaystyle m}يمثل هذا عدد الأجسام المتقاربة. وهذا تحسن ملحوظ مقارنةً بالتعقيد التربيعي للطريقة البسيطة.

التقسيم المكاني

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

التسلسل الهرمي لحجم التحديد

التسلسل الهرمي للأحجام المحيطة (BVH) هو بنية شجرية لمجموعة من الأحجام المحيطة . يتم تحديد التصادم من خلال اجتياز الشجرة بدءًا من الجذر. إذا لم يتقاطع حجم الجذر المحيط مع الكائن المراد دراسته، يمكن إيقاف الاجتياز. أما إذا حدث تقاطع، فيستمر الاجتياز ويفحص الفروع بحثًا عن أي تقاطع. يمكن استبعاد الفروع التي لا يوجد بها تقاطع مع الحجم المحيط من اختبارات التقاطع اللاحقة. وبالتالي، يمكن تحديد عدم تقاطع عدة كائنات في آن واحد. يمكن استخدام BVH مع الكائنات القابلة للتشوه مثل القماش أو الأجسام المرنة، ولكن يجب تعديل التسلسل الهرمي للأحجام مع تغير شكل الكائن. بالنسبة للكائنات القابلة للتشوه، يجب مراعاة التصادمات الذاتية أو التقاطعات الذاتية، ويمكن استخدام BVH لهذا الغرض أيضًا. يُحسب التصادم بين جسمين بحساب تقاطع الحجوم المحيطة بجذر الشجرة، وعند حدوث تصادم، نتعمق في الأشجار الفرعية المتقاطعة. أما التصادمات الدقيقة بين الجسمين أنفسهما، أو أجزائهما (غالباً مثلثات شبكة مثلثية )، فتُحسب فقط بين الأوراق المتقاطعة. [ 7 ] وينطبق النهج نفسه على التصادمات الثنائية والتصادمات الذاتية.

استغلال التماسك الزمني

خلال المرحلة العامة، عندما تتحرك الأجسام في العالم أو تتشوه، يجب تحديث هياكل البيانات المستخدمة لإزالة التصادمات. في الحالات التي تكون فيها التغييرات بين إطارين أو خطوتين زمنيتين صغيرة، ويمكن تقريب الأجسام جيدًا باستخدام مربعات إحاطة محاذية للمحاور ، يمكن أن تكون خوارزمية المسح والتقليم [ 5 ] نهجًا مناسبًا.

تساهم عدة ملاحظات أساسية في كفاءة التنفيذ: يتقاطع مربعان محيطان إذا وفقط إذا كان هناك تداخل على طول المحاور الثلاثة؛ ويمكن تحديد التداخل، لكل محور على حدة، عن طريق فرز الفواصل الزمنية لجميع المربعات؛ وأخيرًا، تكون التحديثات بين إطارين صغيرة عادةً (مما يجعل خوارزميات الفرز المُحسَّنة للقوائم شبه المرتبة مناسبة لهذا التطبيق). تتتبع الخوارزمية المربعات المتقاطعة حاليًا، ومع تحرك الكائنات، تساعد إعادة فرز الفواصل الزمنية في تتبع الحالة. [ 8 ]

التقليم الزوجي

بمجرد اختيار زوج من الأجسام المادية لمزيد من الدراسة، يجب فحص التصادمات بعناية أكبر. مع ذلك، في العديد من التطبيقات، تُوصف الأجسام الفردية (إذا لم تكن قابلة للتشوه بشكل كبير) بمجموعة من الأشكال الهندسية الأولية الأصغر، وهي في الغالب مثلثات. لذا، توجد مجموعتان من المثلثات،S=S1،S2،...،Sن{\displaystyle S={S_{1},S_{2},\dots ,S_{n}}}وتي=تي1،تي2،...،تين{\displaystyle T={T_{1},T_{2},\dots ,T_{n}}}(لتبسيط الأمر، تحتوي كل مجموعة على نفس عدد المثلثات.)

الشيء البديهي الذي يجب فعله هو فحص جميع المثلثاتSج{\displaystyle S_{j}}ضد جميع المثلثاتتيك{\displaystyle T_{k}}للتصادمات، لكن هذا ينطوي علىن2{\displaystyle n^{2}}تُعدّ المقارنات غير فعّالة للغاية. يُفضّل، إن أمكن، استخدام خوارزمية تقليم لتقليل عدد أزواج المثلثات التي يجب فحصها.

تُعرف عائلة الخوارزميات الأكثر استخدامًا باسم طريقة الحجوم المحيطة الهرمية . كخطوة تمهيدية، لكل كائن (على سبيل المثال،S{\displaystyle S}وتي{\displaystyle T}) يحسب تسلسلًا هرميًا للأحجام المحيطة . ثم، في كل خطوة زمنية، عندما يلزم التحقق من التصادمات بينS{\displaystyle S}وتي{\displaystyle T}تُستخدم الحجوم المحيطة الهرمية لتقليل عدد أزواج المثلثات قيد الدراسة. ولتبسيط الأمر، سنقدم مثالاً باستخدام الكرات المحيطة، مع العلم أن استخدام الكرات غير مرغوب فيه في كثير من الحالات.

لوهـ{\displaystyle E}هي مجموعة من المثلثات، ويتم حساب الكرة المحيطة مسبقًا.ب(هـ){\displaystyle B(E)}هناك العديد من طرق الاختيارب(هـ){\displaystyle B(E)}، ب(هـ){\displaystyle B(E)}هي كرة تحتوي بالكاملهـ{\displaystyle E}ويكون صغيراً قدر الإمكان.

قبل الموعد المحدد،ب(S){\displaystyle B(S)}وب(تي){\displaystyle B(T)}يمكن حساب ذلك. من الواضح أنه إذا لم تتقاطع هاتان الكرتان (وهذا سهل الاختبار للغاية)، فلن تتقاطع أي منهما أيضًا.S{\displaystyle S}وتي{\displaystyle T}لكن هذا ليس أفضل بكثير من خوارزمية تقليم الأجسام المتعددة .

لوهـ=هـ1،هـ2،...،هـم{\displaystyle E={E_{1},E_{2},\dots ,E_{m}}}إذا كانت مجموعة من المثلثات، فقم بتقسيمها إلى نصفين.ل(هـ):=هـ1،هـ2،...،هـم/2{\displaystyle L(E):={E_{1},E_{2},\dots ,E_{m/2}}}وR(هـ):=هـم/2+1،...،هـم-1،هـم{\displaystyle R(E):={E_{m/2+1},\dots ,E_{m-1},E_{m}}}طبّق هذا علىS{\displaystyle S}وتي{\displaystyle T}وحساب الكرات المحيطة (مسبقًا)ب(ل(S))،ب(R(S)){\displaystyle B(L(S)),B(R(S))}وب(ل(تي))،ب(R(تي)){\displaystyle B(L(T)),B(R(T))}والأمل هنا هو أن تكون هذه الكرات المحيطة أصغر بكثير منب(S){\displaystyle B(S)}وب(تي){\displaystyle B(T)}وإذا، على سبيل المثال،ب(S){\displaystyle B(S)}وب(ل(تي)){\displaystyle B(L(T))}إذا لم تتقاطع المثلثات، فلا جدوى من فحص أي مثلث فيS{\displaystyle S}ضد أي مثلث فيل(تي){\displaystyle L(T)}.

كعملية حسابية مسبقة ، خذ كل جسم مادي (مُمثل بمجموعة من المثلثات) وقم بتفكيكه بشكل متكرر إلى شجرة ثنائية ، حيث كل عقدةشمال{\displaystyle N}يمثل مجموعة من المثلثات، ويمثل طفلاهال(شمال){\displaystyle L(N)}وR(شمال){\displaystyle R(N)}. عند كل عقدة في الشجرة، احسب مسبقًا الكرة المحيطةب(شمال){\displaystyle B(N)}.

عندما يحين وقت اختبار زوج من الأجسام للتصادم، يمكن استخدام شجرة الكرة المحيطة بها لإزالة العديد من أزواج المثلثات.

يتم الحصول على العديد من متغيرات الخوارزميات عن طريق اختيار شيء آخر غير الكرة لـب(تي){\displaystyle B(T)}إذا تم اختيار مربعات إحاطة محاذية للمحاور ، فسيتم الحصول على أشجار AABBTrees. أما أشجار مربعات الإحاطة الموجهة فتُسمى أشجار OBBTrees. بعض الأشجار أسهل في التحديث عند تغيير الكائن الأساسي. كما أن بعض الأشجار يمكنها استيعاب أشكال هندسية أولية ذات رتبة أعلى، مثل المنحنيات التكعيبية، بدلاً من المثلثات البسيطة.

المرحلة الضيقة

تُمرَّر الأجسام التي لا يمكن فصلها بشكل قاطع في المرحلة العامة إلى المرحلة الضيقة. في هذه المرحلة، تكون الأجسام قيد الدراسة متقاربة نسبيًا. ومع ذلك، تُجرى محاولات أولية لتحديد ما إذا كان التقاطع الكامل ضروريًا. تُسمى هذه الخطوة أحيانًا بالمرحلة المتوسطة. [ 4 ] بمجرد اجتياز هذه الاختبارات (مثل احتمال تصادم الجسمين)، تُحدِّد خوارزميات أكثر دقة ما إذا كان هذان الجسمان يتقاطعان بالفعل. إذا حدث ذلك، غالبًا ما تحسب المرحلة الضيقة الوقت والموقع الدقيقين للتقاطع.

الأحجام المحيطة

بما أن التحقق من تقاطع جسمين قد يكون عملية مكلفة نسبيًا، فإن إحدى الطرق السريعة لتجنب هذه العملية الحسابية هي التحقق من تقاطع الحجوم المحيطة بالجسمين. تُستخدم الحجوم المحيطة عادةً في المرحلة المبكرة (التقليم) من عملية اكتشاف التصادم، بحيث لا تتم مقارنة سوى الأجسام ذات الحجوم المتداخلة بالتفصيل. [ 9 ] إذا لم تتداخل الحجوم، فلا داعي للتحقق من الأجسام الفعلية. يتطلب حساب التداخل أو التصادم بين الحجوم المحيطة عمليات حسابية إضافية، لذا لكي يُضيف اختبار الحجوم المحيطة قيمة، يجب: أ) أن تكون تكلفة تقاطع الحجوم المحيطة منخفضة، ب) أن تكون الحجوم المحيطة ضيقة بما يكفي لتقليل عدد حالات التقاطع "الإيجابية الكاذبة". في هذه الحالة، تعني حالة التقاطع الإيجابية الكاذبة أن الحجوم المحيطة تتقاطع ولكن الأجسام الفعلية لا تتقاطع. توفر أنواع الحجوم المحيطة المختلفة مزايا وعيوبًا مختلفة لهذه الخصائص.

تُعدّ الصناديق المحيطة المحاذية للمحاور (AABB) والمكعبات شائعة الاستخدام نظرًا لبساطتها وسرعة اختبارات التقاطع. [ 10 ] أما الحجوم المحيطة مثل الصناديق المحيطة الموجهة (OBB) و K-DOPs والأغلفة المحدبة، فتُقدّم تقريبًا أدقّ للشكل المغلق، ولكن على حساب اختبار تقاطع أكثر تعقيدًا .

الكشف الدقيق عن التصادمات الزوجية

يجب أن تخضع الكائنات التي لم تتمكن أساليب التقليم من استبعاد إمكانية حدوث تصادم لها لحساب دقيق للكشف عن التصادم.

اكتشاف التصادم بين الأجسام المحدبة

وفقًا لنظرية المستويات الفاصلة ، فإنه لأي جسمين محدبين منفصلين ، يوجد مستوى بحيث يقع أحد الجسمين بالكامل على أحد جانبيه، بينما يقع الجسم الآخر على الجانب المقابل. تتيح هذه الخاصية تطوير خوارزميات فعالة للكشف عن التصادم بين الأجسام المحدبة. تتوفر عدة خوارزميات لإيجاد أقرب النقاط على سطح جسمين متعددي السطوح محدبين، وتحديد التصادم بينهما. ومن الأمثلة على ذلك العمل المبكر لمينغ سي. لين [ 11 ] الذي استخدم صيغة معدلة من خوارزمية سيمبلكس من البرمجة الخطية ، وخوارزمية مسافة جيلبرت-جونسون-كيرثي [ 12 ] . تقترب هذه الخوارزميات من زمن ثابت عند تطبيقها بشكل متكرر على أزواج من الأجسام الثابتة أو بطيئة الحركة، ويتم تهيئة كل خطوة بناءً على فحص التصادم السابق. [ 11 ]

نتيجة كل هذا العمل الخوارزمي هي أنه يمكن إجراء اكتشاف التصادم بكفاءة لآلاف الأجسام المتحركة في الوقت الفعلي على أجهزة الكمبيوتر الشخصية النموذجية ووحدات التحكم في الألعاب.

التقليم المسبق

عندما تكون معظم العناصر المعنية ثابتة، كما هو الحال في ألعاب الفيديو، يمكن استخدام الطرق المسبقة باستخدام الحساب المسبق لتسريع التنفيذ.

يُعد التقليم مرغوبًا فيه أيضًا هنا، سواء كان تقليمًا للأجسام المتعددة أو تقليمًا ثنائيًا، ولكن يجب أن تأخذ الخوارزميات الوقت وأنواع الحركات المستخدمة في النظام الفيزيائي الأساسي في الاعتبار.

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

على سبيل المثال، لنفترض مثلثين يتحركان مع مرور الوقتv1(ت)،v2(ت)،v3(ت){\displaystyle {v_{1}(t),v_{2}(t),v_{3}(t)}}وv4(ت)،v5(ت)،v6(ت){\displaystyle {v_{4}(t),v_{5}(t),v_{6}(t)}}في أي وقت، يمكن التحقق من تقاطع المثلثين باستخدام المستويات العشرين المذكورة سابقًا. إذاP(u،v،w){\displaystyle P(u,v,w)}هل تمر الطائرة عبر النقاطu،v،w{\displaystyle u,v,w}فيR3{\displaystyle \mathbb {R} ^{3}}ثم هناك عشرون طائرةP(vأنا(ت)،vج(ت)،vك(ت)){\displaystyle P(v_{i}(t),v_{j}(t),v_{k}(t))}للتتبع. يجب تتبع كل مستوى مقابل ثلاثة رؤوس، مما ينتج عنه ستون قيمة للتتبع. باستخدام دالة البحث عن الجذور على هذه الدوال الستين، نحصل على أوقات التصادم الدقيقة للمثلثين المعطيين والمسارين المعطيين. إذا افترضنا أن مسارات الرؤوس عبارة عن كثيرات حدود خطية فيت{\displaystyle t}عندئذٍ، تكون الدوال الستون الأخيرة في الواقع كثيرات حدود من الدرجة الثالثة، وفي هذه الحالة الاستثنائية، يُمكن تحديد وقت التصادم بدقة باستخدام صيغة جذور المعادلة التكعيبية. ويشير بعض المحللين العدديين إلى أن استخدام صيغة جذور المعادلة التكعيبية ليس مستقرًا عدديًا مثل استخدام أداة إيجاد جذور كثيرات الحدود.

قطاعات مركز المثلث

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

متجه موضع مركز المثلث هو متوسط ​​متجهات موضع رؤوسه. لذا، إذا كانت إحداثيات رؤوسه ديكارتية(x1،y1،z1){\displaystyle (x_{1},y_{1},z_{1})}،(x2،y2،z2){\displaystyle (x_{2},y_{2},z_{2})}و(x3،y3،z3){\displaystyle (x_{3},y_{3},z_{3})}ثم يكون مركز الثقل((x1+x2+x3)3،(y1+y2+y3)3،(z1+z2+z3)3){\displaystyle \left({\frac {(x_{1}+x_{2}+x_{3})}{3}},{\frac {(y_{1}+y_{2}+y_{3})}{3}},{\frac {(z_{1}+z_{2}+z_{3})}{3}}\right)}.

هذه هي الدالة لحساب المسافة بين نقطتين ثلاثيتي الأبعاد باستخدام قطعة مستقيمة.دأناsتأنجهـ=(z2-z1)2+(x2-x1)2+(y2-y1)2{\displaystyle \mathrm {distance} ={\sqrt {(z_{2}-z_{1})^{2}+(x_{2}-x_{1})^{2}+(y_{2}-y_{1})^{2}}}}

هنا، يُعد طول/مسافة القطعة معيارًا قابلًا للتعديل لتحديد حجمها. ومع اقتراب الأجسام، يقل الطول تدريجيًا حتى يصل إلى قيمة العتبة. وتُصبح الكرة المثلثية هي الاختبار الهندسي الفعال. ويمكن تحديد حجم الكرة المتمركزة عند مركز المثلث بحيث تشمل جميع رؤوسه.

الاستخدام

اكتشاف التصادم في المحاكاة الحاسوبية

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

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

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

بمعنى آخر، تعمل المحاكيات الفيزيائية عادةً بإحدى طريقتين: إما باكتشاف التصادم بعد وقوعه (بعد حدوثه) أو قبل وقوعه (قبل حدوثه). إضافةً إلى التمييز بين الاكتشاف بعد وقوع التصادم والاكتشاف قبل وقوعه ، تُقسّم جميع خوارزميات اكتشاف التصادم الحديثة تقريبًا إلى تسلسل هرمي من الخوارزميات. وغالبًا ما يُستخدم مصطلحا "منفصل" و"متصل" بدلًا من الاكتشاف بعد وقوع التصادم والاكتشاف قبل وقوعه .

الاحتمال اللاحق (المنفصل) مقابل الاحتمال القبلي (المتصل)

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

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

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

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

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

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

ألعاب الفيديو

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

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

استخدمت الألعاب ثلاثية الأبعاد أساليب التقسيم المكاني لـن{\displaystyle n}- تقليم الجسم، ولفترة طويلة تم استخدام كرة واحدة أو بضع كرات لكل كائن ثلاثي الأبعاد فعلي لإجراء عمليات التحقق الثنائية. عمليات التحقق الدقيقة نادرة جدًا، إلا في الألعاب التي تحاول محاكاة الواقع بدقة. وحتى في هذه الحالة، لا تُستخدم عمليات التحقق الدقيقة بالضرورة في جميع الحالات.

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

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

المحاكاة القوية هي التي تتفاعل مع أي مدخلات بطريقة منطقية. على سبيل المثال، تخيل لعبة فيديو لسباق سيارات عالية السرعة ، فمن المتوقع أن تقطع السيارات مسافة كبيرة على مضمار السباق من خطوة محاكاة إلى أخرى. إذا كان هناك عائق بسيط على المضمار (مثل جدار من الطوب)، فليس من المستبعد أن تقفز السيارة فوقه تمامًا، وهذا أمر غير مرغوب فيه على الإطلاق. في حالات أخرى، لا يتم تطبيق "التصحيح" الذي تتطلبه خوارزميات ما بعد التجربة بشكل صحيح، مما يؤدي إلى ظهور أخطاء قد تحاصر الشخصيات في الجدران أو تسمح لها بالمرور من خلالها والسقوط في فراغ لا نهاية له، حيث قد يكون هناك أو لا يكون هناك هاوية قاتلة لا قعر لها ، والتي يشار إليها أحيانًا باسم "الجحيم الأسود" أو "الجحيم الأزرق" أو "الجحيم الأخضر"، اعتمادًا على اللون السائد. هذه هي سمات نظام كشف التصادم والمحاكاة الفيزيائية الفاشل. لعبة Big Rigs: Over the Road Racing مثال سيئ السمعة على لعبة ذات نظام كشف تصادم فاشل أو ربما مفقود.

منطقة الإصابة

مثال على مناطق الاصطدام لشخصية مهاجمة في لعبة قتال . تمثل منطقة الاصطدام الخضراء منطقة تصادم الشخصية، بينما تمثل منطقة الاصطدام الحمراء منطقة إصابة الهجوم.

منطقة الاصطدام هي شكل غير مرئي يُستخدم عادةً في ألعاب الفيديو للكشف عن التصادمات في الوقت الفعلي؛ وهي نوع من أنواع الصناديق المحيطة. غالبًا ما تكون مستطيلة (في الألعاب ثنائية الأبعاد) أو متوازي مستطيلات (في الألعاب ثلاثية الأبعاد) متصلة بنقطة على جسم مرئي (مثل نموذج أو صورة متحركة) وتتبعها. كما أن الأشكال الدائرية أو الكروية شائعة أيضًا، على الرغم من أنها لا تزال تُسمى في الغالب "صناديق". من الشائع أن تحتوي الكائنات المتحركة على مناطق اصطدام متصلة بكل جزء متحرك لضمان الدقة أثناء الحركة. [ 14 ]

تُستخدم مناطق الاصطدام لاكتشاف التصادمات أحادية الاتجاه، مثل تلقي الشخصية لكمة أو رصاصة. وهي غير مناسبة لاكتشاف التصادمات المصحوبة بردود فعل (مثل الاصطدام بجدار) نظرًا للصعوبة التي يواجهها كل من البشر والذكاء الاصطناعي في إدارة مواقع منطقة الاصطدام المتغيرة باستمرار؛ وعادةً ما تُعالج هذه الأنواع من التصادمات باستخدام مربعات إحاطة أبسط بكثير ومُحاذية للمحاور . ويمكن للاعبين استخدام مصطلح "منطقة الاصطدام" للإشارة إلى هذه الأنواع من التفاعلات على أي حال.

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

مناطق الاصطدام

انظر أيضاً

مراجع

  1. تيشنر، م.؛ كيمرلي، س.؛ هايدلبرغر، ب.؛ زاخمان، ج.؛ راغوباثي، ل.؛ فورمان، أ.؛ كاني، م.-ب.؛ فور، ف.؛ ماغنانات-ثالمان، ن.؛ ستراسر، و.؛ فولينو، ب. (2005). "كشف التصادم للأجسام القابلة للتشوه" . منتدى رسومات الحاسوب . 24 : 61-81 . CiteSeerX 10.1.1.58.2505 . doi : 10.1111/j.1467-8659.2005.00829.x . S2CID 1359430 .  
  2. غودمان، جاكوب إي.؛ أورورك، جوزيف؛ توث، تشابا د.، محرران (2018). "39". دليل الهندسة المنفصلة والحسابية . الرياضيات المنفصلة وتطبيقاتها ( الطبعة الثالثة). بوكا راتون، لندن، نيويورك: مطبعة سي آر سي، مجموعة تايلور وفرانسيس، كتاب تشابمان وهول. ISBN  978-1-4987-1139-5.
  3. 1 2 أندروز، شيلدون؛ إيرليبن، كيني؛ فيرغسون، زاكاري (2022-08-02). "محاكاة التلامس والاحتكاك لرسومات الحاسوب" . دورات ACM SIGGRAPH 2022. ACM. الصفحات 1-172 . doi : 10.1145/3532720.3535640 . ISBN  978-1-4503-9362-1.
  4. 1 2 3 4 هاداب، سونيل؛ إيبرلي، ديف؛ فولينو، باسكال؛ لين، مينغ سي؛ ريدون، ستيفان؛ إريكسون، كريستر (8 أغسطس 2004). "اكتشاف التصادم واستعلامات التقارب" . ملاحظات دورة ACM SIGGRAPH 2004. ACM. ص 15. doi : 10.1145/1103900.1103915 . ISBN  978-1-4503-7801-7.
  5. 1 2 3 كوهين، جوناثان د.؛ لين، مينغ س.؛ مانوشا، دينش؛ بونامجي، مادهاف (1995). "I-COLLIDE: نظام تفاعلي ودقيق للكشف عن التصادم في البيئات واسعة النطاق" . وقائع ندوة عام 1995 حول الرسومات ثلاثية الأبعاد التفاعلية - SI3D '95 . مطبعة ACM. الصفحات 189 وما بعدها. doi : 10.1145/199404.199437 . ISBN  978-0-89791-736-0.
  6. ^ أكينين مولر، توماس. هينز، اريك. هوفمان، ناتي. بيسي، أنجيلو؛ إيوانيكي، ميشال؛ هيلير ، سيباستيان (2018). تقديم في الوقت الحقيقي . كتاب AK Peters ( الطبعة الرابعة). بوكا راتون لندن نيويورك: CRC Press، Taylor & Francis Group. رقم ISBN  978-1-138-62700-0.
  7. كلوسوفسكي، جيمس ت؛ هيلد، مارتن؛ ميتشل، جوزيف إس بي؛ سويزرال، هنري؛ زيكان، كاريل (1998). "الكشف الفعال عن التصادم باستخدام التسلسلات الهرمية للأحجام المحيطة من k-DOPs". معاملات IEEE في التصور ورسومات الحاسوب . 4 (1). IEEE: 21-36 . doi : 10.1109/2945.675649 .
  8. إريكسون، كريستر (22 ديسمبر 2004). الكشف عن التصادم في الوقت الحقيقي . سلسلة مورغان كوفمان في تكنولوجيا ثلاثية الأبعاد التفاعلية (محرر ). أمستردام هايدلبرغ: إلسيفير. ص 329-338 . ISBN   978-1-55860-732-3.
  9. غان، باي تشيانغ؛ دونغ، تشيو بينغ (2022). "خوارزمية مثلى محسّنة للكشف عن التصادم في صندوق الإحاطة الهرمي الهجين" . الذكاء التطوري . 15 (4): 2515-2527 . doi : 10.1007/s12065-020-00559-6 .
  10. كالدول، دوغلاس ر. (29 أغسطس/آب 2005). "كشف أسرار المربع المحيط" . مركز أبحاث وتطوير مهندسي الجيش الأمريكي، مركز الهندسة الطبوغرافية، قسم الأبحاث، فرع توليد المعلومات وإدارتها. مؤرشف من الأصل في 28 يوليو/تموز 2012. تم الاطلاع عليه في 13 مايو/أيار 2014 .
  11. 1 2 لين، مينغ سي (1993). "الكشف الفعال عن التصادم في الرسوم المتحركة والروبوتات (أطروحة)" (ملف PDF) . جامعة كاليفورنيا، بيركلي. مؤرشف من الأصل (ملف PDF) بتاريخ 28-07-2014.
  12. جيلبرت، إي جي؛ جونسون، دي دبليو؛ كيرثي، إس إس (1988). "إجراء سريع لحساب المسافة بين الأجسام المعقدة في الفضاء ثلاثي الأبعاد" (ملف PDF) . مجلة IEEE للروبوتات والأتمتة . 4 (2): 193-203 . doi : 10.1109/56.2083 .
  13. "مكونات أميغا: MC68000 ورقائق أميغا المخصصة" (دليل مرجعي) ( الطبعة 2.1). الفصل 1. مؤرشف من الأصل بتاريخ 17 يوليو 2018. تم الاطلاع عليه بتاريخ 17 يوليو 2018. بالإضافة إلى ذلك، يمكنك استخدام مكونات النظام لاكتشاف التصادمات بين العناصر وجعل برنامجك يتفاعل مع هذه التصادمات. 
  14. "Hitbox" . مجتمع مطوري Valve . Valve . تم الاطلاع عليه بتاريخ 18 سبتمبر 2011 .