3d physical bodies interaction, augmented reality approach - documentation

114
5/23/2012 VIRTUAL REALITY | JAEGER & ZGTR & HASSNOV & POD 2102 و عبد ا إسماعيل أبحمد شاكر مه سرحانمد حس مح زوجي مهديوص مدحت الصSTYX 2D and 3D Physics Engines with Augmented Reality

Upload: mohammad-shaker

Post on 14-May-2015

323 views

Category:

Entertainment & Humor


9 download

DESCRIPTION

An engine that enables the user to fully interact and manipulate the virtual physical bodies around him with his own hands through a computer screen and a camera. My CRUST 3D V1.0 has been used as the physics engine.

TRANSCRIPT

Page 1: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

5/23/2012

VIRTUAL REALITY | JAEGER & ZGTR & HASSNOV & POD

2102

محمد شاكرإسماعيل أبو عبد اهلل

مهدي زوجي محمد حسه سرحان

مدحت الصوص

STYX 2D and 3D Physics Engines with Augmented Reality

Page 2: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 1

اىفهشط

6 ............................................................................................. المشروع مقدمة .1

Abstract ..................................................................................................... 6 تمهد

6 ............................................................................................................ مقدمة .1.1

6 .......................................................................................................... الفكرة .1.1.1

6 .......................................................................................... المشروع توصف .1.1.1

7 ................................................................................................. مفتاحة كلمات .1.1

7 ............................................................................................... المشروع أهداف .1.1

Laws of Motion ........................................................ 11 الحركة ف األساسة القوانن .2

11 ......................................................................................................... مقدمة .2.1

11 ........................................................................................... االنسحابة الحركة .1.1

D’Alembert’s Principle ............................................................... 11 دالمبر بدأم .2.3

Newton’s Law ....................................................... 11 التحرك ف األساسة العالقة .1.2

Origin of a Body .............................................................. 11 الجسم إحداثات مبدأ .1.3

11 ............................................................................................ الدورانة الحركة .1.4

11 ............................................................... الدوران التحرك ف األساسة العالقة .1.4.1

Rotation ............................................................................ 12 الدوران تمثل .1.4.1

13 ..................................................................... األجسام على المؤثرة الخارجة القوى.2.7

Gravity ....................................................................................... 13 الثقل قوة .2.7.1

Friction .................................................................................... 13 االحتكاك .1.5.1

13 ......................................................... الصلب الجسم معلومات وتحدث القوى حساب .1.6

14 ....................................................... (االنسحابة الحركة) الجسم معلومات تحدث .1.6.1

14 ................................................................................................. التسارع .2.8.1.1

14 ................................................................................................... السرعة .1.6.1.1

14 ................................................................................................... .الموقع 1.6.1.1

14 ......................................................... (الدورانة الحركة) الجسم معلومات تحدث .1.6.1

15 ........................................................................................ الزاوي التسارع .2.8.2.1

Page 3: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 2

15 ........................................................................................ الزاوة السرعة .1.6.1.1

15 ................................................................................................... الزاوة .1.6.1.1

12 ................................................................................................... الصدم محرك .1

Collision Types ......................................................................... 12 الصدم أنواع .1.1

Generating Contacts .................................... 12 الصدم نوع بحسب الصدم نقاط تولد .3.2

Contact Data .............................................................................. 11 التماس بنة .3.3

Contacts .................................................................................. 11 التماس أنواع .3.4

Point-Face Contact ............................................ 11 حافة – نقطة نوع من تالمس .1.2.1

Edge-Edge Contact ............................................ 12 حافة – حافة نوع من تالمس .1.2.1

Edge-Face Contact .............................................. 12 وجه - حافة نوع من تالمس .1.2.1

Face-Face Contact ............................................. 13 وجه – وجه نوع من تالمس .3.4.4

Collision Detection .................................................................... 14الصدم كشف .1.3

Colliding Spheres ................................................................. 15 كرتن تصادم .1.3.1

Colliding a Sphere and a Plane .................................... 15مستوي -كرة تصادم .1.3.1

Colliding a Box and a Plane ...................................... 16مستوي – مكعب تصادم .1.3.1

Colliding a Sphere and a Box ....................................... 17 مكعب -كرة اصطدام .1.3.2

Colliding two boxes ................................................... 12 مكعب - مكعب تصادم .1.3.3

11 ................................... الصدم وكشف التماس نقاط حساب ف المساعدة الخوارزمات .3.5.6

Separating Axes................................................ 11 الفاصلة المحاور خوارزمة .3.5.6.1

11 .................................................................................... مستوي مع مستطل تصادم

11 ........................................................................................ مستطل مع كرة تصادم

11 ............................................................................. آخر مستطل مع مستطل تصادم

Contact Generation ................................................................ 12التماس تولد .3.5.7

حافة – نقطة نوع من التماس Point-Face ................................................................ 12

حافة-حافة نوع من التماس Edge-Edge ................................................................... 13

Collision Resolution ................................................................ 14 الصدم معالجة .1.4

Physics concepts in collision resolution ......... 15الصدم معالجة ف فزائة مفاهم .1.4.1

15 ................................................................................. الحركة كمة شعاع .3.6.1.1

Page 4: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 3

Linear Impulse ............................................................ 16 الخط الدفع شعاع .3.6.1.2

Impulsive Torque ..................................................... 17 العزوم الدفع شعاع .1.4.1.1

Rotating Collisions ........................................................... 21 التصادمات تدور .1.4.1

Impulses ....................................................................... 21 الدفع أشعة - الصدم .1.4.1

Change to contact coordinates ...................... 22 الصدم نقطة إحداثات ف التغر .1.4.2

The Basis Matrix .......................................................... 23 الرئسة المصفوفة .1.4.2.1

Velocity change by Impulse .................... 24 الدفع لشعاع بالنسبة السرعة ف التغر .1.4.3

Impulse change by Velocity .................................. 25 للسرعة بالنسبة الدفع تغر .3.6.6

Calculating the desired velocity change ............. 26 المبتغاة السرعة تغر حساب .3.6.7

Applying Impulse .................................................................... 27 الدفع تطبق .3.6.8

31 ................................................................ الفزائ المحرك وتحسن االتزانة تحقق .2

Resolving Interpenetration ................................................... 31 التداخل معالجة .4.1

Choosing a resolution method .......................... 31 التداخل معالجة طرقة اختار .4.1.1

Nonlinear projection implementation .................. 31 خط الغر اإلسقاط تحقق .4.1.2

Applying the movement ...................................................... 31 الحركة تطبق .4.1.3

Avoiding excessive rotation ......................................... 32 الزائد الدوران تجنب .4.1.4

Resolving penetration ........................................................ 33 التغلغل معالجة .4.1.5

Iterative collision resolution algorithmالتكرارة الخوارزمة تطبق .2.1.3.1

implementation .......................................................................................... 35

Resting Contacts ............................................................... 36 المتساندة التماسات .4.2

Micro-Collision ................................................................. 36 المكروي الصدم .2.1.1

Friction ...................................................................................... 41 االحتكاك .4.2.2

Friction as impulses ........................................... 41 دفع كأشعة ممثالا االحتكاك .4.2.2.1

FRICTION AND SEQUENTIAL CONTACT المتتالة التماس نقاط ومعالجة االحتكاك .2.1.1.1

RESOLUTION ............................................................................... 44

46 .................................................................. الفزائ المحرك على المضافة الخدمات .3

46 ......................................................................... المترابطة النوابض حركة محاكاة .3.1

46 ...................................................................... فزائاا المترابطة النوابض تمثل .3.1.1

46 ........................................................................ المستخدمة الفزائة المتحوالت .3.1.1

Page 5: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 4

47 .............................................................. المترابطة النوابض على الموئرة القوى .3.1.1

52 ............................................................................. النابض على المؤثرة القوى .5.1.4

52 ................................................................................................. النابض توتر قوة

االحتكاك قوة Friction Force ............................................................................... 51

51 ................................. الكتل على المؤثرة األخرى والقوى الهواء مقاومة وقوى الجاذبة قوى

51 ........................................................ المترابطة النوابض طرق عن الحبال محاكاة .3.1.3

51 ............................................................................... والعقد المترابطة النوابض .3.1.4

51 ........................................................... للكتل مختلفة أنماط مع المترابطة النوابض .3.1.5

51 ........................................................................ السوائل ف األجسام حركة محاكاة .3.1

51 ........................................................................................ السوائل ف مفاهم .3.1.1

52 .............................................................. السوائل ف األجسام على الموثرة القوى .3.1.1

55 ................................................................................. البرمج والتحقق التوصف .4

55 ............................................................ المستخدمة والبئة المستخدمة البرمجة اللغة .4.1

55 .............................................................................................. الصفوف تحقق .4.1

57 ............................................................................................. 1 الهرمة .4.1.1

57 ............................................................................................. 1 الهرمة .4.1.1

61 ............................................................................................. 1 الهرمة .4.1.1

Interface IUpdatableComponent ............................................... 61 الواجهة .6.2.4

EngineManager .................................. 61 الرئس الفزائ المحرك تحدث صف .6.2.5

61 ................................................................................... الصدم معالجة صفوف .4.1.4

Enumerable ....................................................................... 62 المتعددة األنماط .6.2.7

PlayPauseMode .............................................................................. 62 المتعدد النمط

ManipulationGameMode ............................................................... 63 المتعدد النمط

Material .......................................................................................... 64 المتعدد النمط

Particles Engine ................................................................... 64 الدقائق محرك .6.2.8

66 ............................................................................................ والخرج الدخل .4.1.7

67 ............................................................................................. المستخدم واجهة .4.1

75 ........................................................................... الفزائ المحرك تعدل واجهة .4.2

Page 6: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 5

121 ................................................................................................... المزاد الواقع .5

121 ......................................................................................................... لفكرةا 5.1

121 ........................................................................ االفتراض والواقع ادالمز الواقع .5.1

121 ..................................................................................... المزاد الواقع تطبقات .5.1

121 ........................................................................................................... التسلة

121 ....................................................................................................... األلعاب

121 ...................................................................................................... االتصاالت

121 ......................................................................................................... الراضة

122 .................................................................................................. المناخ عرض

122 ............................................................................................................ التعلم

123 ............................................................................................... اإلعالن المجال

ة الحاة 123 ................................................................................................... الوم

124 ............................................................................................. المستخدم العتاد .5.2

124 ......................................................................................... دخل أدوات .5.2.1

125 ........................................................................................ خرج أدوات .5.2.1

125 ........................................................................................ معالجة نظام .5.3

126 ................................................................................. المزاد الواقع مع الفزاء .5.4

126 ................................................................................... به قمنا الذي التطبق .5.4.1

127 .............................................................................................. التطبق أجزاء .5.5

127 ............................................................................................ الدخل أجهزة .5.5.1

127 ............................................................................................ الخرج أجهزة .5.5.1

127 ......................................................................................... المعالجة أجهزة .5.5.1

111 .............................................................................................. المستقبلة الرؤة .6

111 .............................................................................................. المراجع .9

Page 7: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 6

Page 8: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 7

الفصل األول

مقدمة المشروع

Page 9: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 8

قذخ اىششوع .1

Abstractتهذ

و١ف collision engineششؿ لغ سة١غ ألغج ثخذش ثف١ض٠جة أال ثظذ ز ثذسثعز ص

، ثذؼغ ف١ض٠جة١ز ػ ثألؽغج ثظذز و١ف١ز صفجػج غ دؼؼجثضطذ١مجس ثزث ثمغ ف ثعضخذث٠ض

جثلغ ثضثددػ١ عجة ثذؼذ عالع ثذؼذ سدط أخ١شث دششؿ و١ف١ز دجء ثقشن ثف١ض٠جة صوج

Augmented Reality طي إ فىشر ؽذ٠ذر دجشدؾ د١ ثقشوجس ثف١ض٠جة١ز ثثلغ .

قذخ .1.1

اىفنشح .1.1.1

فقغخ إج ػ ثالخضذجسثس ػ ثثلغ ١ظ ف٠ؼضذش ثقشن ثف١ض٠جة ػع ج أعجع

ظشث ظؼدز ثعضخذث ثقشوجس قشوجس ثألؼجح أل ٠شى ثؾضء ثألعجع ف أ ؼذز فج١ج.

زه وج ثؾذ٠ش ثؼ ،غضخذ ثضؾجس٠ز السصفجع عج ػذ صقم١ك ؽ١غ ثضطذجس ثف١ض٠جة١ز

ضقم١ك ثض٠ذ ثشز عز ثضؼج غ ثغضخذ ، ره دػ دجء قشن ف١ض٠جة خجص دج

عز ثضؼذ٠ ػ١ أ ثألػجفز ثقزف دذ أؽشثء صؼذ٠الس ػ د١ض ثألعجع١ز ػ ثذ١تض١

.ثثلغ ثضثدثغجة١ز ثغالع١ز ثذؼذ طال إ دؾ غ ثثلغ دطش٠مز ذضىشر ػ ؽش٠ك

تىصف اىششوع .1.1.1

المشروع ببناء نواة لمحاك فزائ لتفاعل األجسام الصلبة فما بنها والوسط المحط مما تح قوم هذا

له عملة التطور ف المستقبل وإضافة مفاهم فزائة جددة عله.

Page 10: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 9

ميبد فتبحخ .1.1

Collision Detection, Collision Resolution, Rigid body, Force, Torque, Linked

spring, spring, liquids, impulse.

الواقع النابض، ، النوابض المترابطةالجسم الصلب، القوة، العزم، اكتشاف الصدم، معالجة الصدم،

، السوائل، الدفع.المزاد

هذاف اىششوع أ .1.1

دجء صؾجسد ثف١ض٠جة١ز لجد إلػجفز ثضط٠ش دق١ظ ٠ض١ـ غضخذ قشن ف١ض٠جة دجء رػ

أ ثضؼذ٠ أ ثإلػجفز ػ١. ثخجطز

ػغ ؾػز ثألؽغج خضفز ثطذ١ؼز ثخثص ثف١ض٠جة١ز ف د١تز ثفذر دسثعز و١ف١ز

.ف ثذ١تض١ عجة١ز عالع١ز ثذؼذ صفجػ ز ثألؽغج غ دؼؼج غ ثعؾ ثق١ؾ

صطذ١ك خذجسServices ػ ثألؽغج ثغجدمز دطش٠مز ؾشدر ػ ثقشن دقذ رثص

ػ ثألؽغج ثف١ض٠جة١ز. ثثلغ ثضثدصطذ١ك

Page 11: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 10

الثانيالفصل

حركة األجسام الصلبة

Page 12: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 11

Laws of Motionاىحشمخ األعبعخ ف قىااى .1

قذخ .1.1

) ذجدا ثضقش٠ه ػ ثألؽغج ثؼض ثطذمزل١ ثم عم ف ز ثفظ دششؿ فغجح

ػقج ف١ج أس ثخش ٠ؾخ صػ١قج إلج دجفىشر دشى وجإ ؽجخ لغ عشػز صغجسع(

اىحشمخ االغحبثخ .1.1

زث مي ػ ؽغ طخ أ ٠ضقشن فشوز ثغقجد١ز إرث وجش وجفز مجؽ ثؾغ صضقشن دفظ ثغجس

ج دجض شوز ثغقجد١ز ضغج٠ز ف و قظزمجؽ ثؾغ ثظخ ثضقشن دق٠ؤد إ أ عشػجس ؽ١غ

(.ضػطج دسثعز فشوز أفذ مجؽ )شوض صؤي دسثعز فشوز ثؾغ إ

D’Alembert’s Principleجذأ داىجش .1.1

أف١جج ذذأ إ ذذأ دثذ١ش ثقشوز ع١ز ف ف١ض٠جء ثألعج ثذجدا دثذ١ش -الغشثؼ ثغ

ثفذ فئ ذذأ دثذ١ش . ٠ضثىالع١ى١ز ػ أ ف فجي ؽد ػذ ر ل صؤع ش ػ ؽغ دآ

دئىجج ثعضذذثج دمر ثفذر دق١ظ ٠ى:

Page 13: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 12

Newton’s Lawاىؼالقخ األعبعخ ف اىتحشل .1.2

٠مي ذذأ ١ص ثألعجع ف ثضقش٠ه:

∑إ ل خجسؽ١ز قظضج mإرث خؼؼش ؽز جد٠ز وضضج "فئ شوض ػطجضج ٠ىضغخ

∑ ف و قظز فج ؽز صغجسػج "

: ٠ى دجضج

صقظ١ فز ز ثؼاللز ٠ىج فغجح ثضغجسع وذذث٠ز ضقذ٠ظ ػغ مجؽ ثؾغ دؼذ ؼش

ػ١ز صطذ١ك ثقشوز ٠ؾخ ثألخز دذؼغ ثالػضذجسثس ثض صغ وج ثم ثؤع شر ػ١

ثالغقجد١ز ػ خضف مجؽ ثؾغ طخ ألج ف ثثلغ ػذ دسثعز ثقشوز ثالغقجد١ز ؾغ

ثظخ ذسط فمؾ فشوز شوض ػطجض.

Origin of a Body جذأ ئحذاثبد اىجغ .1.3

ثؾغ ٠غط غ أؽغج طذز فئ ػذ ثضؼج

ثفذ ر مؾ دآ أ زه ال ٠ىج أ مي ػذ

أ ال . لغ قذد ثؾغ ٠مغ ػذ

٠ى فظش ىج ثؾغ دمطز ثفذر زه وج

دق١ظ ثخض١جس مطز صغ ذذأ ثؾغ ج ال دذ

م١ظ إفذثع١جس ؽ١غ مجؽ ثؾغ ثألخش

أ أ أ ػ١ز ثغقجح ز، دجغذز ز ثمط

Page 14: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 13

دؼذ صطشأ ػ ذذأ ثؾغ صىجفؤج ػ١ز ثغقجح دفظ ثمذثس ػ ؽ١غ مجؽ ثؾغ ثألخش.

: خالي صطذ١ك ثؼاللجس ثضج١زفغجح ثضغجسع ٠ى فغجح لغ عشػز ثألؽغج ره

اىحشمخ اىذوساخ .1.4

اىؼالقخ األعبعخ ف اىتحشل اىذوسا .1.4.1

ف ػض في قس عجدش وج ؽذثء صغجسػ ثضث Iإرث دثس ؽغ طخ ػض ػطجض

ػطجض في ره ثقس غج٠ج ثؼض ثقجط م ثخجسؽ١ز ثؤعشر ف١، دجضج :

خالي دؼذ فغجح ثضغجسع ثضث ٠ى فغجح ثضؽ ثغشػز ثضث٠ز ألؽغج ره

:صطذ١ك ثؼاللجس ثضج١ز

:ف١ظ

ثغشػز ثضث٠ز

ثضغجسع ثضث

Page 15: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 14

ثلغ ثضث

Rotationتثو اىذوسا .1.4.1

ثذسث ثض أؽش٠ش في شوض دؼشفز صث٠ز

ثؼطجز ، ٠ى ثعضضجػ لغ ؽ١غ مجؽ

ثؾغ دؼذ ثذسث دجؼاللز ثضج١ز:

:ف١ظ

ثمذ٠ ثؾغ لغ

T ػ ثؾغ مذثس ثالغقجح ثطذك

ظففز ثذسث

Page 16: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 15

اىقىي اىخبسجخ اىإثشح ػي األجغب .1.5

Gravityقىح اىثقو .1.5.1

٠خضف زث ثضغجسع طمز ألخش ػ g لر شذصج صضؼك دضغجسع ثؾجرد١ز ثألسػ١ز

m.s 9.81عطـ ثألسع ل١ض ػذ خؾ ثالعضثء دغض عطـ ثذقش صغج -2

دزه فج

لر عم أ ؽغ صؼط دجؼاللز:

Frictionاالحتنبك .1.5.1

ػ صالظ غ عطـ آخش، زث صقشن أ قجز ثؾغ ثضقشن ثجصؾز ػثالفضىجن ثم

، ال ٠ و صذذ ثألؽغج ظمز ؽ١ذث شآخش أ ثألسع أ أ فجؽض عجدش آخثغطـ لذ ٠ى ؽغج

.. ع١ض دسثعضج دشى فظ الفمج و ثألؽغج خشز ػ١ج فف١ض٠جة١ج

اىجغ اىصيتحغبة اىقىي وتحذث ؼيىبد .1.6

ثؼض ثؤعشر ػ و ؽغ ضؼج غ ثقظز فمؾ ى ج ج أال دضقظ١ ؽ١غ ثم م

صى ثخطر ثضج١ز دضقذ٠ظ ؼجس ثؾغ فمج جص١ ثقظض١ وج )ذذأ دثذ١ش ثزوس عجدمج(

)صقذ٠ظ ؼجس ثؾغ )ثقشوز ثالغقجد١ز

(ثذسث١زظ ؼجس ثؾغ )ثقشوز صقذ٠

عذسعج ف١ج ٠.

Page 17: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 16

تحذث ؼيىبد اىجغ )اىحشمخ االغحبثخ( .1.6.1

اىتغبسع .1.6.1.1

: ظش٠ز شوض ثؼطجز دجالعضؼجز دذذأ دثذ١ش ؾذ

اىغشػخ .1.6.1.1

صغجسػ ف دذالز عشػض ف ثقظز ثغجدمز ٠ض صقذ٠ظ عشػز ؽغ ف قظز ج

خالي ثؼاللز: ثقظز ثقج١ز

اىىقغ .1.6.1.1

٠ض صقذ٠ذ لغ ؽغ ف قظز ج دذالز عشػض صغجسػ ف ز ثقظز لؼ ف ثقظز

ثغجدمز خالي ثؼاللز:

تحذث ؼيىبد اىجغ ) اىحشمخ اىذوساخ( .1.6.1

ع ،ث١ز م دضقذ٠ذ ثضغجسع ثضثػ ثؼجس ثض صظف فشوز ثؾغ ثذس قظي

.ثغشػز ثضث٠ز ع ثلغ

Page 18: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 17

اىتغبسع اىضاو .1.6.1.1

:٠ى ذ٠ج ظش٠ز ثضغجسع ثضث

اىغشػخ اىضاوخ .1.6.1.1

دذالز عشػض ثضث٠ز ف ثقظز ثغجدمز ٠ض صقذ٠ظ عشػز ؽغ ثضث٠ز ف قظز ج

ف ثقظز ثقج١ز خالي ثؼاللز: صغجسػ ثضث

اىضاوخ .1.6.1.1

ثضث٠ز ف دذالز ثغشػز ثضث٠ز ف صه ثقظز ٠ض صقذ٠ذ ثضث٠ز ف قظز ج

خالي ثؼاللز: ثقظز ثغجدمز

دقغجح ثم ثؤعشر ػ و Frameم ف و ػ١ز صقذ٠ظ إلؽجس ثشع ف ثذشجؼ

.ؽضج شذصج مطز صؤع١شج ؽغج ثؽدر ف ثذ١تز ف١ظؽغ ثأل

ػ ،ثم ففظج ػ شؼجع خجص ٠ؼذش ػ قظز ثم ع فغجح قظز صه

أعجط صه ثقظز دجالعضفجدر ثؼاللز ثألعجع١ز ف ثضقش٠ه عقغخ صغجسع ثؾغ

Page 19: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 18

ثز دذس ٠ىج فغجح ثغشػز ثؾذ٠ذر ؾغ قظ ػ ؽش٠مج ػ ػغ ثؾغ ف

ثإلؽجس ثضج فك ثؼاللز:

Frame tثض إلؽجسثض ثفجط د١ و صقذ٠غ١ ضضج١١

٠ضجعخ ؽشدث غ ك دجضغجسع ف ثؼاللز ثغجدمز ص طغ١ش ؽذث دج أ ثقذ ثضؼ ٠tى

خالي ثقذ ظف شدغ ثض

٠ى إجي زث ثقذ ضظذـ ثؼاللز دجشى:فئ

Page 20: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 19

الفصل الثالث

الصدممحرك

Collision Engine

Page 21: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 20

اىصذحشك .1

Collision Types اىصذ أىاع .1.1

سنشرح فما ل األشكال العددة للصدم، حث سنعالج ف المحرك الفزائ لدنا الشكلن الرئسن

للصدم وهما الكرة ومتوازي المستطل ف المحرك

الثالث البعد والمستطل والدائرة ف المحرك ثنائ

البعد.

الشكل المجاور أنه مكن ف النهاة إرجاع أي بن

شكل معقد البنة إلى معالجة الشكلن الرئسن وهما

المستطل والدائرة حث مكن زادة الدقة بالتقسم

بشكل أدق فأدق ولكن سكون ذلك على حساب األداء.

Generating Contacts ثحغت ىع اىصذ تىىذ قبغ اىصذ .1.1

وكشف نقاط التماس الصدم Collision Detectionبن كشف الصدم بشكل عام من المهم التمز

Contacts Detection:بن الشكل التال الفرق بن المفهومن .

Page 22: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 21

بن المخطط التال األنواع المختلفة لنقاط التماس.

Page 23: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 22

Contact Dataثخ اىتبط .1.1

-كما سنرى-من أجل كل نقطة تماس فنحن بحاجة

نحتفظ بالمعلومات التالة:ألن

Contact Point نقطة التماس .1

تعبر عن نقطة التماس بن الجسمن، عند التطبق عملاا فإن الجسمن ستداخالن وبالتل وجد نقاط

تماس كثرة، اختار أحدها تم اعتباطاا وال أثر على عمل المحرك الفزائ ألننا سنعالج التداخل

دم لمعالجة نقاط تماس مختلفة كما سنرى.ونرجع عملة الص

Contact Normalناظم التماس .2

الت ستحصل بن الجسمن. تم حسابه بسهولة ف بعض الحاالت impactوهو جهة دفع الصدم

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

من الجسم هو أن جهة ناظم التماس دائماا ضمن دراستنا فإننا سنعتبربما إنه وجد جسمن متصادمن

األول للثان.

Page 24: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 23

Penetration Depthعمق التداخل .3

عبر عن عمق تداخل الجسمن المتصادمن فما بنهما، تحسب من خالل المسافة الت مر بها ناظم

التماس بنقطة التماس.

Contacts أىاع اىتبط .1.2

.لنقاط التماسدة ل األشكال المتعد سنوضح فما

Point-Face Contactحبفخ –تالظ ىع قطخ .1.2.1

ط ف ز ثقجز دججظ ج٠ؼط جظ ثض، أ١ز زث ثع ثضظجدجس ثألوغش ش١ػج

وج ٠ػـ ثشى:ثضجط ف مطز ثضجط ػ عطـ

فئ ع١ض إسؽجع ثمطز إعمجؽج غطـ penetratedف فجي وجش ثمطز دثخ ثغطـ

قغجح ع ثضظجد.ره

Page 25: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 24

Edge-Edge Contactحبفخ –تالظ ىع حبفخ .1.2.1

ث ف فجز ثضجعجس ثضغجذر فجز عج أ ع ثضظجدجس Restingجز ؽذ

Contacts. ٠غضؼ ثؾذثء ف١ظ د١ ثقجفض١ؼد ػ ثجط ثجظ ثضجط ج

.قجفز ثألخش ثفذ ثقثف ألمطز ثضجط ثمطز ثأللشح .ثجظ قغجحثشؼجػ

Edge-Face Contact وجه -تالظ ىع حبفخ .1.2.1

)ف فجضج فمؾ د١ غضط١ غ ثألعطـ ثق١زإال ٠قذط ال زث ثع ثضظجدجس

ذ ج دطش٠مز شجدز قجز دثةشر( جظ ثضجط جظ .Point-Faceؼجس ثضجط ص

.ثغطـ

Page 26: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 25

Face-Face Contact وجه –تالظ ىع وجه .1.2.2

جظ غض.أ ق غ آخش عثء وج دثةشر زث ثؾ ٠قذط ػذ صالظ عطـجط ثض

جظ ثؽ ثألي ثز ٠ؾخ أ ٠ى ؼجوغج صجج جظ ثؽ ث٢خش فض ٠قذط ج ثضجط

ره صذؼج قجز ثف١ض٠جة١ز ضظجد عطق١ ثض صمي دؤ عطق١ ال ٠ىج ثضالظ إال ف وج ثضجط

١ ٠ىج أ جظ عطق١ج ضؼجوغ١ ف ثؾز ى ز ثقجز غ١ش وجز ػ ثػضذجس أ ثؾغ

.٠ضذثخال وج عش دجضج فجشؽع ثضؼج غ جظ ثغطـ ثألي ٠ى أؽذ ػذ ثضطذ١ك ػ١ج

.ىوج ٠ذ١ ثش ج ؤخز ثمطز ثألوغش ػمج صذثخال ػجدرجط أش طؼخ غجذج فغجح مطز ثض

Page 27: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 26

Collision Detectionمشف اىصذ .1.3

ومعالجتااه عملااة مكلفااة جااداا فجااب البحااث عاان طاارق لتساارع أي عملااة ضاامن بمااا أن كشااف الصاادم

المرحلتن السابقتن ما أمكن.

تقوم المحركات الفزائة غالباا باللجوء لعدة طرق فما خص تقنات تسرع معالجة المرحلتن السابقتن

المساألة )العاالم الاذي حادث فاه تقوم بعض األفكار بتقسام عاالم معالجته.أو كتعدد مراحل كشف الصدم

( ومان ثام مقارناة األجساام التا تقاع ضامن نفاس المكعاب وتكارار QuadTreeالتصادم( إلى مكعباات )

العملااة للحصااول علااى مكااان التصااادم )فاا حااال وجااوده( بااالتجول عمقاااا ضاامن المكعبااات األصااغر

فاألصغر.

نبؤ( بوجود صادم أم ال وذلاك دون الخاوض فا تقوم الفكرة المطروحة هنا على إمكانة الحصول )أو الت

كل مراحل كشف الصدم كاملة وذلك قل الازمن الاالزم لكشاف الصادم فا حالاة األجساام المتباعادة جاداا

مثالا وبالتال تخفف تعقد الخوارزمة بشكل كبر جداا.

.. ثع((، أ ضط١غعغعضط١ عغ أ )وشر عغ غعضط١ ع ثضظجد وشف ثظذ دجوشثػشفز تعتمد

ععذ١ )غجي: وشر غ غض( أوغش شفز وشف ال صقضجػ إ ثضوج صؽذ دؼغ أثع ثضظجد

زث الفمج وج عش.

ثض صغضذػ فغخ ع ثألؽغج، ٠ى عؼشع ث٢ ؾػز ثإلؽشثة١جس ثخضظز

.ضجط ثجعذز ؼجؾضج الفمج ذف ز ثإلؽشثة١جس دؼذ وشفج ضظجد ص١ذ ؼجس ث

Page 28: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 27

Colliding Spheresت تصبد مش .1.3.1

أج ضظجدضج إرث وج ثذؼذ د١ شوض٠ج أطغش ؾع ظف لطش٠ج.صؼضذش وشصج

ف فجي صظجد وشص١ فئج ع١ضم١ج ف مطز ثفذر دج أ و وشر ىز عطـ ثفذ فئ

.)ؽذؼج غ ثألخز دؼ١ ثالػضذجس ؽد صذثخ( face – faceثضظجد ثجشب ع١ى ع

Colliding a Sphere and a Planeغتى -تصبد مشح .1.3.1

إرث وجش ثغجفز د١ غضثىشر صؼضذش ضظجدز غ

أل ظف لطش ثىشر. ثغض شوض ثىشر

:ثضج١ز دجؼاللز مطز غضصقغخ ثغجفز د١

ناظم المستوي

دؼذ ثغض ػ شوض ثإلفذثع١جس

Vector3 midline = positionOne - positionTwo;

real size = midline.magnitude();

// See if it is large enough.

if (size <= 0.0f || size >= one.radius+two.radius)

{

return 0;

}

Page 29: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 28

دجضج صى ثخثسص١ز دجشى:

Colliding a Box and a Planeغتى –نؼت تصبد .1.3.1

غضثغضط١ غ فجفزػذ صظجد

٠ؼضذش زث ثضظجد صظجد مطض

ثفقض ثز غضؼ ثطشف١ غ ثغطـ.

ىشف ثضظجد ج ٠شذ ثغضخذ غ فىشر

ى ٠طذك ج ػ غضغ صظجد وشر

ى ج ال ٠ؽذ و مطز مجؽ ثشى.

زه ؼذش ػ ثضظجد دؤ ذ٠ج ظف لطش

وج ف ثىشر غ ثغض:٠ى

ناظم المستوي

دؼذ ثغض ػ شوض ثإلفذثع١جس

ف١ظ ٠ؾخ صقمك ثششؽ:

real ballDistance =

plane.direction * position - sphere.radius - plane.offset;

if (ballDistance >= 0) return 0;

Page 30: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 29

Colliding a Sphere and a Boxنؼت -اصطذا مشح .1.3.2

٠ؼمذ ثىؼخ ثؼ١جس دؼغ ثشء. ػذج صظذ ثىشر غ ثىؼخ فئ ؾ ثضجط ٠ى أ

أ ع Edge-Face ؽ-فجفزع أ Face-Faceؽ -٠ى أ شى: ع ؽ

. Point-Face ؽ-مطز

٠ىج صذغ١ؾ ثؼ١ز دؤ م دئسؽجع ثظذ ف ز ثقجز إ صجط ع مطز ػػج ػ

ؼذ وجفز مجؽ ثغضط١ ػ ٠ض ثخضذجس د ف١ظ طـىشر دس ثغ ف و ز ثقجالس صؼخ ثوشر.

.إرث أطذـ ثذؼذ د١ ألشح مطز ثىشر أل ظف لطش ثىشر، ػذج ٠قذط ثضظجد ثىشر.

ف١ظ قضجػ ثؼط١جس ثضج١ز:

// Transform the center of the sphere into box coordinates

Vector3 center = sphere.getAxis(3);

Vector3 relCenter = box.transform.transformInverse(center);

Page 31: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 30

Colliding two boxesنؼت -نؼت تصبد .1.3.3

ف١ظ ٠ؽذ ش وفز د١ ؽ١غ أثع ثضظجدجس ثضظجدجس ثألوغإ فغجدجس زث ثع

ؽ١غ ثقجالس ثضج١ز:ذ٠ج

ره أل ؽ١غ فجفز( –)فجفز أ فجفز( –)مطز قجض١قجي صؾخ ؽ١غ ثقجالس طال ؼجؾز ث

.ثقجالس ثألخش ىفز ٠ى صق٠ج قجالس صجط أدغؾ أعشع وج ٠ذ١ ثشى ثضج

Page 32: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 31

إال دغذز ل١ز ؽذث ؽذث ال صقذط فجفز(-أ ع )مطز مطز( – ع )مطز ثضظجدجس ػ١ج

ؽد ؽش٠مز ثػقز قغجح جظ دجضج ٠ض ثظش إج ػ ثقشن ثف١ض٠جة إػجفز إ ػذ

ثألخش دجقذط ع ٠ض ؼجؾضج دذ فظي أ خ ثضظجدجس ثعثضجط. دجضج غـ أل

.ف١ض٠جة

خثسص١ز وشف ثضظجدجس د١ ىؼذ١ صش دجشثف ثضج١ز:

ثألعء خجسؽج( أال م دئؽشثء ػ١ز Early-Outدجعضخذث خثسص١ز ثفظ ) ػ

ثششفز ف ثذسثعز. Separating Axesؽش٠ك ثقجس

م دئؽشثء ثخضذجس طذ وج ؼشفز مطز صجط ثفذ فمؾ

م دؼ مطز ثضجط ثقغدز آخشث إ مجؽ ثضجط ثؽدر غذمج د١ ثىؼذ١

Page 33: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 32

ومشف اىصذ اىخىاسصبد اىغبػذح ف حغبة قبغ اىتبط .1.3.4

Separating Axesخىاسصخ اىحبوس اىفبصيخ .1.3.4.1

صؼضذش ز ثخثسص١ز أوغش .Early outصؼضذ ز ثخثسص١ز ػ ذذأ "ثألعأ خجسؽج أال"

ثخثسص١جس ثعضخذثج ف وشف ثظذ، فىشصج ثألعجع١ز صم ػ ثذذأ ثضج:

ج )قذد١( غ١ش ضظجد١، فج غ١ش "ف فجي ؽد أ ثصؾج ف ثفشثؽ دق١ظ ٠ى ؽغ١

ضظجد١ أدذث."

تصبد غتطو غ غتى

فئرث وجش ز ضثص ثغضط١الس إ ثغض،م دئ٠ؾجد ألشح مطز مجؽ دغ١طز، ف١ظ

. د١ ثؾغ١ثغجفز عجذز ػذج ٠ى ذ٠ج صذثخ

تصبد مشح غ غتطو

ثأللشح غضط١ فئرث وج غمؾ إفذ جص١ ثمطض١ ػ قس فقض مطض ثذثةشر

أ ١ظ ذ٠ج صظجد وج ف فجز ثذثةشر ، ػذةز ؼثغضط١ ثثفك أوذش دؼذ ثغضط١

A .ف ثشى ثؾجس

٠ؾخ ثالفظز ج أ ثشفز ثأل ف زث ثع ثضظجدجس صمذ ج ض١ؾز صؤوذ

ف ثشى فىال ثغمط١ ضذثخ ى ٠ضؼ ذ٠ج Bط ثضظجد وج ف فجز ثذثةشر فذ

صظجد ف غ ز ثقجالس عف قضجػ إ ثشفز ثغج١ز ضؤو١ذ فذط ثضظجد أ ػذ

دجضج ؾذ أ خثسص١ز ثقجس ثفجطز صف١ذ ج ف فجز ثفذر غال ال صف١ذ ف فذع

ثألخش.

Page 34: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 33

غتطو آخشتصبد غتطو غ

ظشث ى زث ثع ثضظجدجس ر ثىفز ثألػ زه عف قضجػ إ فقض دل١ك ف

ج ؼشفز فجز فذط صظجد أ ػذ فذع ذجششر لذ ثخضذجس ثشفز ى ز ثشفز ٠

صم١ض صؼم١ذ ز ثخثسص١ز ف فجي ػذ صظجد ثؾغ١. ٠ىجج دجض ثغج١ز

Page 35: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 34

ؼشػ ىال ثقضجػ فمؾ إلعمجؽ ػ ثقجس ثألسدؼز ثضغز دجقس٠ ثط

.xAxis, yAxis ثغضط١١

ثإلعمجؽ ػ ثقس أظش ج صذثخال ى ضى ؼشفز ثغجدك ف ثقجز ثأل ف ثشى

)ج ػ ١ىف١ج إعمجؽ ثفذثقجز ثغج١ز ف دجإلعمجؽ ػ ثقجس ثألخش، أج فذط ثضظجد إال

.( ثإلعمجؽجس ثألسدؼز ضؤوذ ػذ ؽد صظجدB ؾغثقس ثط

Contact Generationتىىذ اىتبط .1.3.5

حبفخ – ىع قطخ اىتبط Point-

Face

وج ف ثشى ثؾجس:

صش ثخثسص١ز دجخطثس ثضج١ز:

a. أؽ و مطز ثؾغ A.

b. غ ثؾغ ضذثخثقغخB.

c. زؤخز ل١ز ثضذثخ ثألد ثثفم.

d. ؼ١ذ ثفقض ثغجدك أؽ ؽ١غ مجؽ ثؾغB غ ثؾغA.

e. ثألوغش صذثخال( خالس ثضذثخ ر ثم١ز ثألػذثخضجس د١ ثض(.

Page 36: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 35

حبفخ -اىتبط ىع حبفخEdge-Edge

ز ثغضط١ ثألي إ ز ثقجز أػمذ ل١ال عجدمضج ف١ظ قضجػ ج إ أخز و فجف

ى ثفقض ٠ى ج دؤخز ثغجفز د١ و فجفض١ فغجدج فجفجس ثغضط١ ثالخشو غ

دجؼىظ. ؽش٠ك إ٠ؾجد ألشح مطز إفذ ثقجفض١ إ ثقجفز ثألخشػ

ى لذ ،دؼذ صىشثس زث ثفقض ػذر شثسره ػذ ثقظي ػ ثقجفض١ ثضذثخض١

دجضج فظج ػ ،ؽذج ألشح مطز وال ثغضط١١ إ شوض ثغضط١ ث٢خش

ثطدز. مطز ثضجط

ثخثسص١ز ثشى ثضج:صؤخز

a. أؽ و فجفز E ثؾغ A.

b. قغخ صذثخج غ و فجفز ثؾغB.

c. ١ى أؽ ز ثقجفز ؤخز ل١ز ثضذثخ ثألدE.

d. ثؾغ )ثألوغش صذثخال( خالس ثضذثخ ر ثم١ز ثألػذثخضجس د١ ثض A.

Page 37: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 36

Collision Resolution ؼبىجخ اىصذ .1.4

تتضمن معالجة التصادم بشكل رئس من بعد أن قمنا بكشف الصدم، فقد حان اآلن معالجة الصدم.

والت ستم شرح كل خطوة من خطواتها بالتفصل ف الفقرات الخوارزمة التالة بأبسط شكل لها

:التالة

ثؼاللز ثضج١ز: Separating Velocityم دقغجح عشػز ثالفظجي ثطدز -1

ثض د١ ثؾغ١، م دق ثضجعجس صخضف ػ١ز ثخض١جس Contacts أؽ ؽ١غ ثضجعجس

ؼجؾز ثضجعجس ف١ج د١ج ف١ظ دجؼشسر أ ٠ض ؼجؾضج دجضغغ ثض ثوضشفش دج وج عش

ف١ظ ٠ؽذ ػذر ثعضشثص١ؾ١جس زه دج ٠غ ظثش أخش غ ثضذثخ ثظس دشى وذ١ش.

ف فجي وجش ثغشػز -2ثؼظ غج٠ز ظفش )ج ٠ؼ أ ثضظجد لذ ص ف( م دئ٠مجف

ثخثسص١ز.

ثطح ق ثضظجد خالي شوذض١ ثخط١ز impulseػ١ز ف ثضظجد صض دقغجح ثذفغ -3

ثضث٠ز.

ثذفغ ثخط ٠ؼط دجمج ثض ج:

Page 38: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 37

ثذفغ ثضث ثمج ثض ج:

٠ض فغجح و ثغشػز ثخط١ز ثضث٠ز ثض ؾش ػ ثضظجد د١ ثؾغ١.

٠ض شثػجر إػجفز شؼجع ثالفضىجن إ ل ثذفغ ثض صذخ ف فغجدجس ثؾغ١ ف فجي ؽد -4

ثقشو(.ثفضىجن د١ج )٠ض ششف ف فمشر ثالفضىجن ف فجز ثالفضىجن ثغى ثذ٠ج١ى

Physics concepts in collisionفبه فضبئخ ف ؼبىجخ اىصذ .1.4.1

resolution

شؼبع مخ اىحشمخ .1.4.1.1

:ف فجز مطز جد٠ز ٠ؼط دجؼاللز

حث:

شعاع كمة الحركة

الكتلة

سرعة النقطة المادة

Page 39: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 38

أما ف حالة جملة مادة فكون بالشكل:

حث:

سرعة مركز عطالة الجملة المادة

كتلة الجملة المادة

Linear Impulseشؼبع اىذفغ اىخط .1.4.1.1

:فئج صش ف عالط شثف ثذؼغ غ دؼؼجأ ػذ صظجد ثألؽغج غ فجؽض عجدش

شحيخ اىتغبسع .1

.ؼ١ ثقجؽض ثغجدش دشؼجع عشػز أ مضشح ف١ج ثألؽغج دؼؼج٠

شحيخ اىتصبد .2

.عشػز وال ثؾغ١ ثضظجد١ ؼذز صى

شحيخ االستذاد .3

.٠ضذجػذث ػ دؼؼج دشؼجع عشػز خضف ػ شفز ثضغجسع ٠شصذ ثؾغج

غ ٠قغخ ثؼاللز:ثالسصذثد دشؼجع ثذف غ ثالخضالف ف شؼجع و١ز ثقشوز د١ شفض ثضغجسع

Page 40: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 39

ف١ظ:

صغ١ش ثغشػز ثخط١ز ؾغ دغذخ ثظذ

Impulsive Torque اىؼضوشؼبع اىذفغ .1.4.1.1

دج أج ضؼج غ Linear and Angular Impulseثز ٠ذػ أ٠ؼج شؼجع ثذفغ ثخط ثضث

ػ شؼجع ثذفغ ثخط أؽغج لجدز ذسث فئ ؼجؾز ثضظجد صى دضقذ٠ظ ثغشػز ثػضجدث

جؼجؾز ج إج ثألخز دؼ١ ثالػضذجس ثؼض ثذسث ثثؽخ صطذ١م ػ ثؾغ، دجضج ف فقغخ

.عضى أطؼخ دم١

: ف فجز دسث وج ف ثشى ثضج ثغضػذ ثظش إ ؽغ طخ صج ثشز ٠ظذ

ح جغضدز ثؼغجؽ ثؾغ دض١ؾفئ زث ثظذ ع١ذ لر صذفغ :ثضج وج ٠ػـ ثشى ثمش

Page 41: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 40

ثؼج ثخط ٠ؼط ،دسث عضى ػ لغ١ خط دقغخ ظش٠ز دثالذ١ش فئ ز ثم

: دجؼاللز

دجؼاللز ثضج١ز: ٠ؼط دجالػضجد ػ ثؼض ثؼج ثذسث

ف١ظ:

ثمر ثؤعشر ػ ثؾغ

رسثع ثمر

ؽذثء ثشؼجػ

:ثؼض ٠ذ فشوز دسث١ز صغجسػجف١ظ

ف أ٠ؼج جغشػز( فئ ع١ذ صغ١١شث د صغ١شث أف شؼجع و١ز ثقشوز ) دج أ ثظذ ع١ذ صغ١١شث

دفظ ثطش٠مز ثض فظج ف١ج ػ ثؼاللز (أ ثغشػز ثضث٠زشؼجع ثؼض ثقشو )

فئج قظ ػ ثؼاللز :

Page 42: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 41

ف١ظ:

ثؼضشؼجع ثذفغ

Inertia Tensor

ثغشػز ثضث٠ز

ػ صغ١ش ثغشػز ثذسث١ز أعجء ثظذ ثقظ ثغجدك ثز ٠ىجفب صغ١شث ثؼض٠ؼذش شؼجع ثذفغ

صغ١ش ػ ثشغ أفغجح ثضغ١ش ف ثغشػز ثضث٠ز )دجمجد ٠ى ،ف ثغشػز ثضث٠ز قظ١ج

:( وجضجػ فضشر ص١ز طغ١شر ؽذث

زث ،وجم صجج ج صظشفجسإ أشؼز ثذفغ .ػ ثفذثع١جس ثؼج ف١ظ ف ؽ١غ ثؼجدالس صى

:ثػضجدث ػ ثؼاللز زث ثألعجطػ دسث دذسج صه ػج١ خط٠ؼ أ أشؼز ثذفغ

:٠ى شؼجع ثذفغ ثضث ثضذ ؼط دجؼاللز

:ف١ظ

Page 43: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 42

شؼجع ثذفغ

شوض ػطجز ثؾغ ثذؼذ ثؼد د١ مطز ثظذ

Rotating Collisions اىتصبدبدتذوش .1.4.1

صؼط دجشى:دؼذ ثظذ لذ ثظذ ثغشػز ثالصز فظ ثؾغ١إ ثؼاللز د١

ف١ظ:

c )٠ضؼك دع ثؾغ( restitution coefficientؼج ثالسصذثد

عشػز ثؾغ صجج لذ١ ثظذ

عشػز ثؾغ صجج دؼ١ذ ثظذ

صى دثةج دؼىظ ثصؾج ثغشػز Separating velocityدؼ آخش فئ عشػز ثفظ د١ ثؾغ١

.Closing velocityثضمجسد١ز

ؽز جظ ثظذ فئ ز ثغشػز عضضى ػج١ دجالػضجد ػ ػ١ز ثثد ثذثخز ف ثضظجد

.دسث ى دغخ خضفز خط

ثشثفك ػذر أؽغج ج ٠ذ١ ثشى

أشىجي ضؼذدر ى ع١ى ى ج

دالفظز أ فظ عشػز ثفظ ى

و ج خثص خضفز )صشوض

Page 44: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 43

.إ(( فئ ع١ى ج ؽجس فشوز ػض خضفز ..ثىض، لغ شوض ثغم

Impulses أشؼخ اىذفغ - اىصذ .1.4.1

شعاعحاجة إلى معرفة أربعة أشعة دفع والت ه لمعالجة كفة حركة جسمن بعد الصدم فنحن ب

.من الجسمن المتصادمن لكل جسم دف الخط والزاويال

، ؽغ١ دذؼؼجأ غ فجؽض عجدشثذفغ ثضث ثجصؼ ػ طذ ؽغ ثخط قغجح شؼجػ ثذفغ

ق دقجؽز إ ثصذجع ؾػز ثخطثس :

زث ج ع١ؾؼ ،ز ثؾز دجغذز جظ ثظذ عضى، عؼ ػ ؽز إفذثع١جس ؽذ٠ذر .1

ز ثؾز إ عشب ظففز صق٠ ،ثش٠جػ١ز ثض ؾش٠ج أع دىغ١شثقغجدجس

ز ثظففز عضضى ثؾز ثإلفذثع١ز فغج ) دذؼ إفذثع١جس ز .ثإلفذثع١ز ثؾذ٠ذر

دذغجؽز ( أج ظففز ثضق٠ ثؼىغ١ز فظففز ثفذر ف ثقجس دجغذز إلفذثع١جس ثؼج

.مح ثظففز ثغجدمز

Yفغجح ثقس Xدجصخجر جظ ثظذ وقس إ فغجح ثؾز ثإلفذثع١ز ع١ى دغ١طج

.قجس ثجصؾز ضؼجذر دشى طق١ـػ زث ثألعجط دق١ظ صى ث

ثذفغ ع١غذخ فشوز خط١ز ، ألغ١ ثضظجد١ىال ثؾ عؼجؼ ثغشػز ثجصؾز ػ ثظذ .2

.ضؼضذ ػ وال ثؼج١ ثغجدم١، فئ ل١ز ز ثغشػز عدسث١ز

ف ، زه عؼىظ ثض١ؾز )ف ثخطر ثمجدز( دج أج ؼ ثغشػز ثض ش٠ذ أ شثج ػ١ج .3

.أ صغ١١ش ف ثغشػز قظ ػ ثذفغ ثالص ض١ذثشفز ثغجدمز

ج عغ١ دفشق زثثفشق د١ج عشػز ثضمجسح ثقج١ز ثضذجػذ ثظق١قز عشػز قغخ .4

.ثغشػز ثذضغجر

فشق ثغشػز ثذضغجر ثض فظج ػ١ج عضى فغجح ثذفغ ثز ٠ؾخ أ ٠ضؼ ػ .5

.ثظذ

Page 45: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 44

.طذمج ػ ثألؽغج ثض ذ٠ج شوذض١ ثخط١ز ثذسث١ز ػذج فظ ثذفغ إ .6

.عفظ ف دؼغ ثخطثس ل١ال

Change to contact coordinatesاىتغش ف ئحذاثبد قطخ اىصذ .1.4.2

د الدفعولس .لالصطدام نتجة لتطبقه نحن بحاجة إجاد الدفع الالزم والذيالعمل على هدفنا هو

.السرعة ف اا تغر ولدعلى هذا شعاع الدفع الذي للعثور ونحن بحاجة سرعة،ال ف اا تغر

٠ذ١ ثشى ثضج ثألثع ثغالعز إلفذثع١جس ثض :

ثإلفذثع١جس ثشصذطز دجؼج .1

ثإلفذثع١جس ثق١ز ثشصذطز دجؾغ .2

ثإلفذثع١جس ثشصذطز دمطز ثظذ .3

Page 46: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 45

السابقة الخاصة بها وسنعمل على االنتقال فما بن وبالتال سكون لكل نقطة صدم اإلحداثات الثالث

.اإلحداثات الثالثة هذه ف طرقنا لمعالجة الصدم

The Basis Matrixاىصفىفخ اىشئغخ .1.4.2.1

لكل منظومة إحداثات عن طرق وضع األشعة الثالث سنتعامل مع مصفوفات عوضاا عن ثالث أشعة

فمثالا لإلحداثات المحلة كون الشكل التال: .ف مصفوفة واحدة

لتنتج المصفوفة الرئسة التالة:

وبالتال مكننا االنتقال من اإلحداثات المحلة إي إحداثات العالم بالشكل:

وبشكل بسط جداا مكن االنتقال بشكل معاكس عن طرق مقلوب المصفوفة:

Page 47: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 46

Velocity change by Impulseاىذفغ اىتغش ف اىغشػخ ثبىغجخ ىشؼبع .1.4.3

.وله مركبتان: خطة وزاوة

المركبة الخطية

ولها جهة شعاع الدفع الخط، وطولة تعطى بمقلوب الكتلة بالشكل التال:

المركبة الزاوية

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

إحداثات الجسم )أصل الجسم( بالعالقة

ونحتاج العالقة الت تعطن شعاع الدفع العزوم من أجل كل واحدة دفع

حث:

(Contact Normalجهة الدفع )الناظم على نقطة الصدم

Page 48: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 47

ونحتاج العالقة الت تعط التغر ف السرعة الزاوة

تبعاا فقط لدورانها للنقطة المدروسة الخطة وأخراا العالقة الت تعطنا السرعة الكلة

Impulse change by Velocityتغش اىذفغ ثبىغجخ ىيغشػخ .1.4.4

وعطى بالعالقة

v صغ١ش ثغشػز ثذضغجر

g صغ١ش ثذفغ ثطح

d ثذفغثضغ١ش ثخط ف ثغشػز دجغذز ثفذر شؼجع

Page 49: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 48

Calculating the desired velocity changeحغبة تغش اىغشػخ اىجتغبح .1.4.5

وتتم عن طرق مرحلتن، األولى لحساب السرعة التقاربة ف النقطة المدروسة والثانة لحساب التغر

.ف السرعة الذي نبحث عنه

اىتقبسثخ السرعة

صقغخ س٠جػ١ج ثؼاللز: عشػز أفذ ثألؽغج دجغذز ؾغ آخش ثضمجسد١ز السرعة

. ثؾذثء ثغ د١ ثشؼجػ١

ىج ج عقغخ ثغشػز ثضمجسد١ز وج روشج عجدمج دجالػضجد ػ دسث ثمطز فمؾ ػ

ؽش٠ك فغجح دسث ثؾغ دجغذز مطز ثضجط:

ػ ذ Contact Normalف١ظ صؼذش شوذز ثغشػز ثض ١غش ف ثصؾج جظ ثضجط

ثؾغ١ دجغذز ذؼؼج، زث ؽذث ػذج ؤخز ثالفضىجن دؼ١ Slidingعشػز صضفك

.ثالػضذجس

صؼط عشػز مطز ثضجط ػ ؽش٠ك ثظففز ثشة١غز ثض صىج ػج غذمج:

اىطيىثخ اىتغش ف اىغشػخ

Vector3 velocity = body->getRotation() % relativeContactPosition;

velocity += body->getVelocity;)(

contactVelocity = contactToWorld.transformTranspose(velocity);

Page 50: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 49

ثمج:٠ض ػ ؽش٠ك

ػذ فظ إ شوذض١ ى دجضج أطذقش ذ٠ج و ثؼاللجس ثالصز قغجح شؼجع ثذفغ ،

.ثذسث١ز لذ فظج ػ غج٠ضج دجقظي ػ صغ١ش ثغشػز ثخط١ز

Applying Impulse تطجق اىذفغ .1.4.6

:على األجسام المتصادمة بعد حساب كافة المعامالت الخاصة بالدفع فما سبق بق فقط تطبقه

هنا قمنا بتطبق الدفع على أحد الجسمن ولس على كلهما، وبالتال جب علنا تطبق الدفع على الجسم

لده نفس حجم الدفع الخط مطبقاا عله ولكن بإشارة معاكسة لجمع -سابقاا كما قلنا–اآلخر أضاا والذي

المركبات:

Vector3 impulsiveTorque = impulse % relativeContactPosition;

Vector3 rotationChange =inverseInertiaTensor.transform(impulsiveTorque);

// Calculate velocity and rotation change for object one.

// ...

impulse *= -1;

// Calculate velocity and rotation change for object two.

// ...

Page 51: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 50

الفصل الرابع

تحقيق االتزانية وتحسين المحرك الفيزيائي

Stabilization and Optimizing the Engine

Page 52: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 51

تحقق االتضاخ وتحغ اىحشك اىفضبئ .2

Resolving Interpenetrationؼبىجخ اىتذاخو .2.1

سأ٠ج عجدمج و١ف أىج صؼذ٠ ثغشػز ىال ثؾغ١ دؼذ ثظذ، ث٢ عف ضطشق إ ؼجؾز ثضذثخ

.ثز فذط أعجء ثظذ دق١ظ ٠ظذـ وال ثؾغ١ غ١ش ضذثخ١

وج ؼ .غء ثقع فئ ثألؽغج ٠ى أ صضؾجص دؼؼج ثذؼغ لذ أ ه ثمذسر ػ وشف ثظذ

دجضج ال ٠ؽذ وشف ظذ ػ TimeStepفئ صغ١ ثظذ ٠ض ػ ؽش٠ك ثقجوجر دخطر ص١ز

.ثفضشر ثض١ز ثؼذشر ػ ثخطر ثض١ز دقذ رثصج

ج ؽجءس ظجشر ثضذثخ ثجصؾز ػ ؽذ١ؼز ثقجوجر دقذ رثصج، ثض أ٠ؼج أدس إ ػذر

فض ؼجؾضج دؼذ أ Adaptive time stepج وجعضخذث خطر ص١ز ضغ١شر خثسص١جس ؼجؾض

.لػج إطالفج فسث ف آخش ثخطر ثض١ز ثقج١ز

Choosing a resolution methodاختبس غشقخ ؼبىجخ اىتذاخو .2.1.1

٠ؽذ ػذر ؽشق ؼجؾز ثضذثخ وجػقز دجشى ثضج:

)وج ف ال ٠ىف فمؾ إصثفز ثؾغ١ فك ثصؾج ثقشوز دؼذ ثضظجد دشى وج ف فجز ثؾغ ثظخ

( إج ٠ؾخ صغ١١ش ػؼ١ج ثذسث دق١ظ صى Linear Projectionؽش٠مز ثإلعمجؽ ثخط

. Nonlinear Projectionثؼجؾز ألشح قم١مز عغضخذ زه ج ٠ذػ ثإلعمجؽ ثالخط

Page 53: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 52

Nonlinear projection implementationتحقق اإلعقبغ اىغش خط .2.1.1

إ ل١ز ثضؼذ٠ ف ثػغ ثثؽخ ؼجؾض د١ ؽغ١ ضظجد١ ػذجسر ػ ػك ثالخضشثق

(Interpenetration Depthثز فظج ػ١ أعجء ثىشف ػ ثضظجد ) ؽش٠مز ثإلعمجؽ ثالخط

١ صى جص١ ثشوذضسث١ز ىال ثؾغ١ ثضظجد١ ثذ ثخط١زشوذض١ ج ثضوصؼضذ ػ فغجح

ج دئىجج ثالػضجد ػ فظ فغجدجس ثذفغ ثض ػض ػطجضجغدضج إ وضض ثؾغ١

.أؽش٠جج ف فجز ؼجؾز ثغشػز

ىزث صضؼ ذ٠ج شوذض ثؼطجز ثغذذضج قشوز ثجصؾز ػ صؼذ٠ ثضذثخ، ثقغدضج وج ف فجز

ؼجؾز ثغشػز أ: ثشوذز ثالغقجد١ز ثض صى فمؾ ػذجسر ػ ؾع مد وضض ثؾغ١ أج

.ط ثضجثشوذز ثذسث١ز ف صقغخ صطذ١ك ثذفغ ثذسث فك جظ

مح ثىضز ؾغ فمؾ

ى ١ دؾؼج فك ثؾز ثطدز ثذسث١ز فك ثؼطجض٠ج أ قغخ ثقشوز ثالغقجد١ز دم ذ

.دمذثس ػك ثالخضشثق

Page 54: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 53

،ؾغ ثألي linearMove[0] ،angularMove[0] ف١ظ

linearMove[1] ، angularMove[1]ؾغ ثغج.

.)ثز فظ فج ثذفغ(ثضجط دسث فك جظ دم أ طذك جص١ ثم١ض١ ػ ػغ ثؾغ

٠ى ؾغ ث٢خش ل١ز ؼجوغز ضذثخ دجغذز ؾغ ثألي فظ ثغذخ ثزوس غذمج ػذج صىج

.ػ أشؼز ثذفغ ؾغ١ ثضظجد١

Applying the movementتطجق اىحشمخ .2.1.1

ةوتتم عن طرق تطبق الحركة الخطة والدوران

تطبيق الحركة الخطية Linear motion

عملة بسطة تعطى باالعتماد على ناظم التماس:

تطبيق الحركة الزاوية Angular motion

بحاجة نحنبالتال و نبحث عنالت الخطة التحرك كمة نحن نعرف . أكثر صعوبة ه ةالزاو الحركة

الذي سؤمن لنا كمة التحرك الخطة. Quaternion المركب المتعدد اتجاه التغر ف لحساب

حل كالتال:على ثالث مرا فعل ذلكسن

linearMove[0] = penetration * linearInertia[0] * inverseInertia linearMove[1] = -penetration * linearInertia[1] * inverseInertia angularMove[0] = penetration * angularInertia[0] * inverseInertia angularMove[1] = -penetration * angularInertia[1] * inverseInertia

body[i]->position += contactNormal * linearMove[i];

Page 55: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 54

.unitالدوران المراد نقطة التماس بواحدة واحدة نقوم بحساب .1

(.angular move)أي قمة التحرك الزاوي نقوم بضربها بعدد الوحدات المراد .1

.orientation quaternionنطبق الدوران المناسب على اتجاه مركب المتعدد .1

Avoiding excessive rotationتجت اىذوسا اىضائذ .2.1.2

قة فإننا نطبق تحرك زاوي )دوران( وذلك إلخراج الجسم من وضع التداخل ولكن ف خوارزمتنا الساب

وجد بعض الحاالت الحدة الت ال تستطع الخوارزمة السابقة حلها كاألمثلة التالة.

بن الشكل التال مشكلة تداخل ال مكن حله عن طرق

الدوران.

كبر وبالتال ف بن الشكل التال مشكلة تداخل بشكل

حال معالجة التداخل فنحن بحاجة إلى تطبق دوران والذي

دخل نقاط جددة ضمن منطقة ال مكن تطبقع ألنه ف س

التداخل.

Vector3 rotationPerMove = impulsePerMove * 1/angularInertia;

Vector3 rotation = rotationPerMove * angularMove;

Page 56: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 55

أربعة متحوالت ه:كما رأنا سابقاا فإن التحرك الخط والزاوي حسب وحفظ ضمن

وعلى حسب قمتها angularMoveوبالتال لمعالجة هذه الحاالت مكننا ببساطة أن نفحص قمة

مكننا ف حالت كانت كبرة أن نضف الزائد منها لمركبة التحرك الخط.

س المركبة الزاوة على أبعاد وحجم الجسم، وبالتال لألجسام ذات األبعاد مكن تطبق حل آخر بأن نق

األكبر لها مركبات زاوة أكبر.

Resolving penetrationؼبىجخ اىتغيغو .2.1.3

بعد أن قمنا بتحدد نقاط التماس، فإننا سنقوم بمعالجتها على الترتب من خالل معالجة موقعها أوالا ثم

معالجة سرعات النقاط ثانا كما قلنا من

قبل.

كل بن الشكل التال مشكلة التداخل ف

مرة ومعالجتها حتى نتج تداخل جددة ومن

ثم معالجته مؤداا إلى إعادة العملة ومعالجة

التداخل األول وهكذا وذلك عن تطبق

معالجة مواقع التماس ف الخوارزمة.

linearMove[0] linearMove[1] angularMove[0] angularMove[1]

Page 57: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 56

تكون الخوارزمة بالشكل التال:

ولكن كما رأنا فإن الخوارزمة السابقة

لست أمثلة!

كمن الحل ف إجاد المشكلة بأنه

عوضاا عن معالجة نقاط التصادم

بالتسلسل ستم معالجة نقاط التصادم

وذلك تصادمتبعاا لعمق كل نقطة

بتحقق الخوارزمة التكرارة إلجاد

.أكبر عمق ألكبر نقطة تماس

بن الشكل التال معالجة زوج من نقاط التصادم بالترتب على حسب العمق وكفة خروج الجسم

تدرجاا من التداخل.

Contact* lastContact = contacts + numContacts;

for(Contact* contact=contacts; contact < lastContact; contact++)

contact->applyPositionChange();

Page 58: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 57

Iterative collision resolutionتطجق اىخىاسصخ اىتنشاسخ .2.1.3.1

algorithm implementation

اد نقطة التماس ذات لتحقق الخوارزمة التكرارة فإننا بكل بساطة نمر على جمع نقاط التماس إلج

التداخل األكبر.

نالحظ أن الخوارزمة السابقة ال تأخذ ف الحسبان أنا معالجة نقطة التماس قد سبب نقاط أخرى ف أن

تصبح عرضة للتداخل، وبالتال جب إعادة الحساب بعد كل معالجة كالتال:

زادت من تعقد الخوارزمة األصلة. نالحظ أن الخوارزمة

Contact* lastContact = contacts + numContacts;

for (unsigned i = 0; i < positionIterations; i++)

{

Contact* worstContact = NULL;

real worstPenetration = 0;

for(Contact* contact = contacts; contact < lastContact; contact++)

{

if (contact->penetration > worstPenetration)

{

worstContact = contact;

worstPenetration = contact->penetration;

}

}

if (worstContact) worstContact->applyPositionChange();

else break;

}

for (unsigned i = 0; i < positionIterations; i++)

{

// Find worstContact (as before) ...

if (!worstContact) break;

worstContact->applyPositionChange();

updatePenetrations();

}

Page 59: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 58

Resting Contactsاىتبعبد اىتغبذح .2.1

الهامة جداا ف المحركات الفزائة ولها معالجة خاصة تختلف عن تعتبر التماسات المتساندة من األمور

معالجة التصادمات الت مرت معنا سابقاا ولها عالقة بشكل كبر مع قوى االحتكاك ومعامالت االرتداد

واالنزالق لألجسام. سندرسها فما ل.

Micro-Collisionاىصذ اىنشو .2.1.1

، وبنفس الطرقة الت مكن بسلسلة من أشعة الدفع المكافئةالصدم المكروي قوم بتعوض القوى

التفكر بها بأن الدفع هو عبارة عن قوة مطبقة ف لحظة زمنة معنة فإنه أضاا مكن اعتبار أن القوة

ه سلسلة من الدفعات.

fNتعتبر مكافئة لسلسلة دفعات من Updatesتحدثات 12على جسم لمدة 10fNتطبق قوة من

ضمن كل تحدث.

)لنغفل تأثر التداخل ف الوقت الحال( وبالتال وجد للجسم مستويبن الشكل التال جسم على

، قوم نظام معالجة السرعة بحساب الدفع الالزم المستويتسارع الجاذبة الذي كسبه سرعو ضمن

لجسم )ناتجة عن التسارع ف كل تحدث قوم المحرك الفزائ بإعطاء سرعة ل لحذف هذه السرعة.

الناتج عن الجاذبة كما رأنا( وذلك بقدر كاف لنظام معالجة السرعات ك كتشف وجود سرعة ومن ثم

إعطاء دفع معاكس لها ف كل مرة!

Page 60: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 59

دؼذ صقذ٠ظ ثؾغ غفئ ثؾغ ٠ىضغخ عشػز ع ٠م ثظج دئػطجء شؼجع دفغ ؼجوظ، صى

ثغشػز ثجة١ز :

السرعة قبل معالجة الصدم

ثغشػز دؼ١ذ ثظذ

ؼج ثالسصذثد

ف ثقم١مز فئ ال ٠ض ثغجدك أل ثألؽغج ال ٠ضجؿ ج دجء عشػز ف ثألط، فغال ثىشر ال ٠ضجؿ ج دؤ

غضق١ز!، ثغشػز ثض عضؾؼج ف١ض٠جة١ج ثغضصضغجسع "ػ"

ف١ظ ثألؽغج صضغجسع viberatingزث ج ٠ؾؼ ثألؽغج ػ ثقشن ثف١ض٠جة ج ظجشر ثالسصؾجػ

ز عشػز جعذز ع ٠م ؼجؾز ثظذ دفظج ػ ؽش٠ك إػطجةج عشػز فظ ؼج قظ

separating velocities.

ق شىز ثالسصؾجػ صؽذ ػذر ؽشق ج:

صقذ ظجشر ثالسصؾجػ ثسصذثد طغ١شر دك فئ إػطجء ل١ز ؼج ثمج ثغج

ض٠ أ عشػز ٠ذ١ج ثؾغ جصؾز ػ ثضغجسع ف دؼغ ثقجالس

م "١ج " دضم١ض ؼج ثالسصذثد أؽ ثضظجدجس ف ثغشػجس ثخفؼز ؽذث

صخفك ف فجالس آخش.ؽ١غ ثطشق ثغجدمز صظش أدثء ؽ١ذث ف دؼغ ثقجالس ىج

صى ثخثسص١ز ثألخ١شر دجشى:

Page 61: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 60

// Calculate the acceleration-induced velocity accumulated this frame.

real velocityFromAcc = body[0]->getLastFrameAcceleration() *

duration * contactNormal;

if (body[1])

{

velocityFromAcc -= body[1]->getLastFrameAcceleration() *

duration * contactNormal;

}

// If the velocity is very slow, limit the restitution.

real thisRestitution = restitution;

if (real_abs(contactVelocity.x) < velocityLimit)

{

thisRestitution = (real)0.0f;

}

// Combine the bounce velocity with the removed

// acceleration velocity.

desiredDeltaVelocity = -contactVelocity.x –

thisRestitution * (contactVelocity.x - velocityFromAcc);

Page 62: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 61

Frictionاالحتنبك .2.1.1

الصدم وكفة حدوثها وسنتكلم عنها تعتبر قوة االحتكاك من القوى الهامة جداا ف تحقق عملة معالجة

ػ صالظ غ قجز ثؾغ ثضقشنأ ثالفضىجن ثم ثجصؾز ػ صقشن بالتفصل فما ل.

ال ٠ و صذذ ثألؽغج ،أ فجؽض عجدش آخشأ ثغضأ خشآ عطـ آخش، زث ثغطـ لذ ٠ى ؽغج

.و ثألؽغج خشز ػ١ج ظمز ؽ١ذث فف١ض٠جة١ج

.ف١ج ٠ػج عفظ ثقشو جن ػج ثالفضىجن : ثغى

الحتنبك اىغنى اStatic Friction

ثمر ثض صغ ثؾغ ثضقشن

، ف ره دشى ػذج ٠ى عجدضج

:أفؼ سد ثغجي ثضج

دفشع ؽد فؾش ػع ػ

ثقؾش إ لر ج ، ػذ صؼشع ثغض

ثغضثقؾش فئ ثالفضىجن د١

ع١مج ز ثمر، زث ثع ل سد ثفؼ ٠غ ثالفضىجن ثغى، ػذ ص٠جدر ثمر

ره ضغذ ػ لر ثالفضىجن ثخجسؽ١ز ثطذمز ػ ثقؾش فق فذ ؼ١ ٠ذذأ ثؾغ دجضقشن

. صؾجصج

ثذجشش إػجفز إ لر سد ػ ػ١ز جدر ثألؽغج ػذ مؾ ثالفضىجن٠ؼضذ ثالفضىجن ثغى

:ثفؼ

| | | |

ىؼج ثالفضىجن ثغ

Page 63: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 62

طـ ثغ د١ ثؾغثضجط لر سد ثفؼ دجصؾج جظ

ثضذر ى١زثغ لر ثالفضىجن

غ زى ثالفضىجن ثز عذك روش ٠غف ثؼذ٠ذ ثؼث أدشصج ػ١ز ثثد ثقض إ ؼج

دؼؼج ثذؼغ.

زث ٠ؼ أ ؽ٠ز لر ثالفضىجن ثثػـ أ ثؼاللز ثغجدمز ضشثؽقز ثشى

. | | فض ثم١ز ثغى لذ صه أ ل١ز ثظفش

اىذبن االحتنبك اىحشمDynamic Friction

إ ثالفضىجن ثقشو ٠ضظشف دفظ ؽش٠مز ثالفضىجن ثغى إج غ ثخضالف ؼج ثالفضىجن

. ثالفضىجن ثغى أل صؤع١شث ، دشى ػجف١ظ ٠ى دؼىظ شؼجع فشوز ثؾغ

:صؼط ػاللض وجضج

| |

االحتكاك الدنامكمعامل

صؼط دجؼاللز: دجغذز الفضىجن ثغجو الفع ج عذك أ لر سد ثفؼ

Contact Normalهو الناظم على نقطة التماس

ثمر ثى١ز ثجصؾز

Page 64: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 63

لر سد ثفؼ دجغذز الفضىجن ثذ٠ج١ى ثقشو صؼط دجؼاللز:

| |

معامل االحتكاك الدنامك

الحظبد

ثفشق د١ ؽذ١ؼض ثالفضىجو١ ثغى ثذ١ج١ى، أ دؼىظ ثالفضىجن ثغى ثز

فئ ثالفضىجن ثذ٠ج١ى ٠ؤعش دؼىظ ؽز عشػز ٠planarؤعش دؼىظ ؽز ثغطـ

ثؾغ ثضقشن.

ثالفضىجوجس ف ثألؽغج ثض ذ٠ج عisotropic أ أ ؽ١غ ؽ أ ؽغ

.ؾغ وى فظ ؼج ثالفضىجن جذ٠ج

Friction as impulses مأشؼخ دفغ االحتنبك ثالا .2.1.1.1

، جس ثقظ١زأشؼز ثذفغ ثالططذث دج أ ظجج ذ دشى أعجع ػ زث ع١ؾؼ ثضؼج غ فئ

فق ال ٠ىج ثضؼذ١ش ػ لر سد ثفؼ ومر ألج ضؼج غ ثم وؤشؼز ،ش١تج جثالفضىجن أطؼخ

عػـ ره ف١ج ٠.. دفغ صضؼ ػج عشػجس فمؾ

: وجضج إ ػاللز ثغشػز دشؼجع ثذفغ

فعالد

ثىضز

ثغشػز

Page 65: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 64

:وجضج ف فجط ص طغ١ش ؽذث وج ٠ى ثضؼذ١ش ػ شؼجع ثذفغ وج وج لر

القوة

ثض

ثغشػز ثطذمز ػ ثؾغ ف إؽجس)فزف( مجزثطح ػ شؼجع ثذفغ ثغجدكدجقظي

مجز ثطدزفئ ٠ىج فغجح ثمر (ثقشن ثف١ض٠جة Updateؼ١ )ص صقذ٠ظ ص

ثغشػز. ز )فزف(

وجضج : ثؤد٠ز الفضىجن صمش٠ذ١ج ٠ى فغجح لر سد ثفؼ ثجصؾز ػ ثظذ

صغ١ش ثغشػز ثشد

ثض

ثىضز

، زه ضط إ ثضغ١ش ف ثغشػزصم دقغجح أشؼز ثذفغ ذ٠ج خثسص١ز ؼجؾز ثغشػز ثض ى

ذؼ ثؼاللجس ثغجدمز غ ػاللجس ثالفضىجن ضط إ ثؼاللز :دعم

Contact Normal شؼجع ثذفغ ف ؽز جظ ثظذ

ثض

ثىضز

Page 66: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 65

ز صذج ػ ؽ٠ز شؼجع ثذفغ ثألػظ ثز ٠ى أ طذم ثجصؾز ذ٠ج ل١ز ع١ إ ثم١ز

فضىجن عى.غ ثال

شؼجع ثذفغ y, z دضم١١ظ ثشوذض١صى ثذ٠ج١ى ؼجؾز ثالفضىجن دق١ظ ٠ى فؾج غج

شؼجع ثذفغ. xؼشدج دقؾ ثشوذز صجج ـ

ره قفجظ 1ره ضم١١ظ ثشوذض١ ١ىج رثس ؽ٠ز = لج دجضمغ١ ػ

ػ ثؾز غ فزف فؾج.

٠ى فؾج ؼط ػ ؽش٠ك ؼجدز ثالفضىجن:

ثم١ز ثؾذ٠ذر ى شوذز.فجط ػشح ثالصؾج دجقؾ ٠ؼط١ج

Vector3 impulseContact;

// ... Find the impulse required to remove all three components of velocity

real planarImpulse = sqrt(impulseContact.y*impulseContact.y +

impulseContact.z*impulseContact.z);

// Check whether we’re within the limit of static friction.

if (planarImpulse > impulseContact.x * friction)

{

// Handle as dynamic friction.

}

impulseContact.y /= planarImpulse;

impulseContact.z /= planarImpulse;

impulseContact.y *= friction * impulseContact.x;

impulseContact.z *= friction * impulseContact.x;

friction * impulseContact.x

Page 67: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 66

FRICTION ANDاالحتنبك وؼبىجخ قبغ اىتبط اىتتبىخ .2.1.1.1

SEQUENTIAL CONTACT RESOLUTION

بن الشكل التال كفة معالجة نقاط التماس لجسمن فوق بعضهما البعض وكف أن معالجة التصادم

م وقوعه منذ بادئ األمر.بشكل ممتال أدى إلى وقوع الجسم أخراا على الرغم من وجود عد

هذا بسبب طبعة معالجة الصدم ضمن المحرك الفزائ، ألنه وبسبب أن الخوارزمة تعمل على

.Bفإنها غر قادرة ف نفس الوقت تماماا أن تعالج نقطة الصدم الثانة Aمعالجة أول نقطة صدم

.Aتأثر عند معالجة الصدم عند Bعندما كون لدنا احتكاك فإن لمعامل االحتكاك عند

إضافة خوارزمة خاصة لمثل أو لمعالجة هذا النوع من المشاكل فنحن بحاجة إلى معالجة النقطتن معاا

هذه الحاالت. غالباا ف المحركات الفزائة ال تعد هذه مشكلة بحد ذاتها طالما لم نبن عدة أجسام صلبة

لألجسام عندما ال وجد حاجة Sleepingباستخدام تقنة التنوم فوق بعضها البعض، مكننا حلها جزئاا

لمعالجتها بشكل دائم وإضاعة زمن معالجة.

Page 68: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 67

الفصل الخامس

الخدمات المضافة على المحرك الفيزيائي

Physics engine services

Page 69: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 68

اىخذبد اىعبفخ ػي اىحشك اىفضبئ .3

حبمبح حشمخ اىىاثط اىتشاثطخ .3.1

تثو اىىاثط اىتشاثطخ فضبئبا .3.1.1

مكننا تمثل النوابض المترابطة على شكل مجموعة من الكتل المرتبطة مع بعضها ربط بن كل

كتلتن منهما نابض ؤثر علهما.

نوابض تربط الكتل فما بنها. 4 = 1-5كتل و 3نالحظ من الشكل السابق أنه تألف من

فضبئخ اىغتخذخاىتحىالد اى .3.1.1

قمنا خالل الدراسة الفزائة للنوابض باستخدام المتحوالت الفزائة التالة:

Meaning Variable الداللة

ثابت صالبة النابض

a constant to represent the

stiffness of the spring

k

المسافة بن كتلتن

distance of the mass from the

point it is bound to

x

المسافة الموجبة المحافظة

على التوازن

a constant positive distance d

Page 70: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 69

value that a spring stays

steady

ثابت االحتكاك

a constant to represent how

much friction there is k

الكتلة المطبق علها سرعة

قوة االحتكاك

velocity of the mass that is

under the friction force velocity

acceleration of the gravitation تسارع الجاذبة

Mass الكتلة

اىقىي اىىئشح ػي اىىاثط اىتشاثطخ .3.1.1

هناك نوعن من القوى الموثرة على النوابض المترابطة :

داخليةقوى

o .قوى مؤثرة على النابض

قوى داخلية

o .قوى مؤثرة على النوابض المترابطة بشكل عام

فما ل. لنشرح كل من القوتن

Page 71: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 70

اىقىي اىإثشح ػي اىبثط .3.1.2

تؤثر على النابض القوى التالة:

قىح تىتش اىبثط

النابض بالعالقة التالة:النوابض بشكل عام ه مصدر القوة بن أي نقطتن، وتعطى قوة توتر

1

سوف ؤدي إلى انكماش النوابض المترابطة حتى ولو كان ف وضع ساكن الت 1ولكن وباستخدام

كون ف هذه الحالة القوة المؤثرة تساوي الى الصفر، وبالتال ال مكننا معالجة الحالة الساكنة للحبل

ثابت.مع الحفاظ على طوله

لكنها تعالج حالة النوابض 1وبالتال سوف نستخدم المعادلة التالة الت لها تأثر مشابه تماماا للمعادلة

المترابطة الساكن وذلك ألنها تأخذ ثابت التوازن بعن االعتبار حسب:

2

ة:ومن أجل العالقة السابقة سنناقش الحاالت التال

هنا ال كون هناك أي قوة مؤثرة والنوابض المترابطة كون ساكن

نا حالة تمدد للحبل دهنا ل

حالة انكماش للحبل

Page 72: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 71

قىح االحتنبكFriction Force

وذلك ألنه سوف ؤدي إلى التخامد وبالتال ضمن النوابض نفسها نحن بحاجة لمعالجة االحتكاك

بشكل طبع. تؤدي هذه القوة عند تطبقها على النابض إلى خسارة طاقة إلى إقاف التأرجح

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

لكتلة بالشكل :ومنه تعطى عالقة قوة االحتكاك بالنسبة لسرعة ا

3

فإننا نعالج فقط كتلة واحدة ولكننا نعلم ان النابض تعامل مع كتلتن، لذا سوف 1بالنسبة للعالقة

والت ه السرعة النسبة والت relative velocityنغر فقط السرعة، حث سوف نقوم بحساب ال

احتكاك داخل وه الفرق بن سرعة الكتلتن. تجدر اإلشارة أن االحتكاك المعرف بالعالقة السابقة ه

inner friction .تضاف قوة االحتكاك إلى القوة السابقة )قوة توتر النابض( و تطبق على النابض .

حركة الت ه ف الواقع قوى النابض المؤثرة.معادلت ال 1+1تعتبر كل من المعادلتن

اىإثشح ػي اىنتو قىي اىجبرثخ وقىي قبوخ اىهىاء واىقىي األخشي

بما أن الكتل لدنا ه عبارة عن أجسام صلبة لها معالجة صدم وجمع خواص األجسام الصلبة

قوى مقاومة هواء أو قوى حقل ف المحرك الفزائ لدنا، فإنه من السهل جداا إضافة قوة جاذبة أو

كهربائ مثالا ف حالت كانت األجسام من معادن تتأثر بالحقول. وبالتال ال وجد قوى أخرى لتطبقها

هنا غر الت ذكرت سابقاا باإلضافة للقوى المطبقة عادة على األجسام الصلبة وهنا تكمن قوة المحرك

فة عله بشكل سهل جداا دون تغر باق هكلة المحرك.الفزائ لدنا بقدرتنا على تعدله واإلضا

Page 73: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 72

حبمبح اىحجبه ػ غشق اىىاثط اىتشاثطخ .3.1.3

مكننا من خالل المفهوم السابق للنوابض المترابطة أن نحاك الحبال بنفس طرقة النوابض

والسرعة الت وإنما مع وجود نقطة رئسة ه العقدة الرئسة ف الحبل وتطبق علها القوى المناسبة

تجعلها ثابتة دوماا أثناء وقت التشغل مع إمكانة تحركها طبعاا.

اىىاثط اىتشاثطخ واىؼقذ .3.1.4

سلسلة من أجسام صلبة فإنه مكن وصلها ببعضها! بما أن النوابض المترابطة ه عبارة عن

تم ذلك عن طرق وصل عقد إلها من ضمن نفس النابض المترابط أو من نابض مترابط آخر لصبحا

و سلسلة Updateتحدث نابض مترابط واحد دون أن علم أي نابض مترابط عن اآلخر شئاا وإنما له

فزائة على سلسلته لوحده والت تحوي كتل مشتركة مع كتل كتل لوحده وقوم بإجراء المعادالت ال

نابض مترابط آخر!

اىىاثط اىتشاثطخ غ أبغ ختيفخ ىينتو .3.1.5

بما أن النوابض المترابطة ه سلسلة من أجسام صلبة ولست نوع محدد )مستطل أو دائرة(

ن طرق إضافة للسلسة فقط بط عابض مترافإنه مكن إضافة أي جسم صلب )مستطل أو دائرة( ألي ن

وإضافة نابض جدد ف نهاة السلسلة ربط الكتلة الحالة األخرة مع الكتلة الجددة.

مكن أضاا ربط عدة أنوع للكتل ف أثناء وقت التشغل كوجود كتل من نوع معن )حدد مثالا(

مع أخرى من نوع آخر )مطاط مثالا(.

Page 74: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 73

حبمبح حشمخ األجغب ف اىغىائو .3.1

إن قوة الطفو ه الت تجعل الجسم طفو. قال أرخمدس بأن قوة الطفو المطبقة على جسم ما

تكون مكافأة لوزن الجسم الذي حتله هذا الجسم ضمن السائل.

ف اىغىائوفبه .3.1.1

سنوضح هنا بعض المفاهم العامة ف السوائل.

ظهر الشكل التال جسم له كتلةmass كلوغرام غمس ف الماء. 0.5من

وبالتال فإنه زح وحتل المكان نفسه من الماء 1م 0.001الجسم له حجم مساو لـ ،

مساو لحجمه.

متر مكعب من الماء 1وهذا عن أن لـ 1م/كغ 1222الماء النق له كثافة مساوة لـ

طن. 1وزن مساو لـ

Page 75: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 74

اىقىي اىىثشح ػي األجغب ف اىغىائو .3.1.1

، كتلة الجسم ه دائماا نفسها بنما وزن الجسم massلس نفسه هو الكتلة weightكما نعلم فإن الوزن

تغر بالنسبة لعامل الجاذبة المطبق على الجسم حسب عالقة التسارع المعروفة:

weightثص

massثىضز

gravity صغجسع ثؾجرد١ز

تطلب منا معرفة شكل الجسم تماماا ألن شكل الجسم هام جداا ف حساب حجم الماه حساب قوة الطفو

الت سحتلها الجسم، والذي بدوره سستخدم ف حساب قوة الطفو.

تعطى قوة الطفو بالعالقة الت تأخذ ثالث حاالت:

وغجفز ثغجة

فؾ ثؾغ

غسث وجال(ػك ثغش )ثؼك ثز ٠ى ف١ ثؾغ

مقدار الجزء المغمور من الجسم بالنسبة للعمق الكل للغمر

Page 76: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 75

:تعطى بالعالقة حث

Yه إحداثات الجسم على المحور

إفذثع١جس غض ثغجة

:حسب موضع الجسم وحالته ضمن الماء التالوبالتال تكون خوارزمة الحساب بالشكل

void ParticleBuoyancy::updateForce(Particle* particle, real

duration)

{

// Calculate the submersion depth.

real depth = particle->getPosition().y;

// Check if we’re out of the water.

if (depth >= waterHeight + maxDepth) return;

Vector3 force(0,0,0);

// Check if we’re at maximum depth.

if (depth <= waterHeight - maxDepth)

{

force.y = liquidDensity * volume;

particle->addForce(force);

return;

}

// Otherwise we are partly submerged.

force.y = liquidDensity * volume *

(depth - maxDepth - waterHeight) / 2 * maxDepth;

particle->addForce(force);

}

Page 77: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 76

الفصل السادس

التحقيق البرمجي

Page 78: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 77

اىتىصف واىتحقق اىجشج .4

اىيغخ اىجشجخ اىغتخذخ واىجئخ اىغتخذخ .4.1

ثؼ دجعضخذث .XNA ثذ١تز ثغ الع١ ز ثألدؼجد #Cغز ثذشؾز مذ ص

تحقق اىصفىف .4.1

محركن فزائن أحدهما ثنائ البعد واآلخر ثالث البعد شتركان بنفس المحرك وجد كما نعلم

ت دعمها ف الفزائ مع بعض التعدالت على كل منهما لناسب بئته أو لأخذ بعض مزاا البئة ال

عن االعتبار وه.

Page 79: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 78

Page 80: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 79

1 اىهشخ .4.1.1

وهو الصف الرئس المسؤول عن رسم أي شء ضمن Visual2Dح هذه الهرمة وجود الصف توض

البئة ونالحظ أن األجسام الصلبة وكذكل المستوات ترث منه لتم رسمها من قبله.

والت ه الفقاعات والصوارخ تم رسمها عن طرقه Servicesظ أضاا أن كالا من الخدمات نالح

أضاا.

وذلك ألن الصاروخ بحد ذاته BoxRigidم الصلب ترث من الجس RocketServiceنالحظ أن الخدمة

جسم صلب وهو صطدم مع محطه.

1اىهشخ .4.1.1

Page 81: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 80

الت قدمها المحرك جمعها ترث من الصف Servicesتبن هذه الهرمة كف أن الخدمات كلها

ServiceManager .الذي ضمن العملات الرئسة فها

Page 82: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 81

1اىهشخ .4.1.1

الموجودة ضمن المحرك. Servicesو الخدمات Managersتظهر هذه الهرمة الصفوف المتحكمة

Page 83: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 82

Interface IUpdatableComponentاىىاجهخ .4.1.2

مركب ضمن اللعبة نالحظ أن أغلب الصفوف تحقق هذه الواجهة ألنها تضمن العملتن الرئستن ألي

.Update, Draw التحدث والرسم والت ه Game Component )المحرك(

صف تحذث اىحشك اىفضبئ اىشئظ .4.1.3

EngineManager

عتبر أهم صف ضمن المحرك الفزائ وذلك ألنه قوم بالتحكم

فهو قوم بكل عوامل الدخل والخرج ضمن المحرك الفزائ

Servicesوالخدمات Managersبتحدث جمع المتحكمات

وذلك بشكل مرن منع تعارضها مع بعضها كما ؤمن المعلومات

األساسة لها جمعها والمعلومات فما بنها.

Page 84: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 83

صفىف ؼبىجخ اىصذ .4.1.4

تقوم الصفوف بمعالجة الصدم عن طرق بنى الصفوف الثالثة والبنة األهم الت رأناها وه

Contact.

Page 85: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 84

Enumerableاألبغ اىتؼذدح .4.1.5

ف المحرك االنماط المتعددة التالةتوافر

فما ل. أهمهارح سنش

PlayPauseModeاىػ اىتؼذد

أم ال Updateبدون تحدث Drawحدد حالة المحرك هل هو ف حالة رسم فقط

Page 86: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 85

ManipulationGameModeاىػ اىتؼذد

مسؤول عن تعدل حالة المحرك الحالة حث مكن أن كون ف

أي وضع منها ف حالة كانت كان الوضع المقابل

PlayPauseMode ف حالةPlayOnMode.

الشرح Mode الوضع

NeutralMode القاس( الوضع الحاديDefault)

AddDefaultCircleMode

الذي حدده المستخدموضع إضافة دوائر افتراضة بالحجم

AddDefaultRectangleMode وضع إضافة مكعبات افتراضة بالحجم الذي حدده المستخدم

AddRigidMode غر –إضافة أجسام صلبة )بمتحوالت مدخلة بشكل كامل

(-افتراضة

DragRigidMode وضع سحب وإتراكDrag األجسام الصلبة

ResizeRigidMode األجسام الصلبةوضع تغر أبعاد

ForceManipulationMode وضع التالعب بالقوى

TorqueManipulationMode وضع التالعب بالعزوم

MoveRope وضع تحرك النوابض المترابطة

Page 87: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 86

AddRopeMode وضع إضافة نوابض مترابطة

DeleteRigidMode وضع حذف أجسام صلبة

AddBubblesMode وضع إضافة فقاعات

DeleteBubblesMode وضع حذف فقاعات

RocketMode وضع أضافة صوارخ

Materialاىػ اىتؼذد

حوي هذا النمط على المواد الت مكن للمستخدم أن ختارها لألجسام

الصلبة.

Particles Engineحشك اىذقبئق .4.1.6

جداا بتحدد ثالثة قم تحدد دقائق بشكل كامل مكن استخدامه بشكل سهل توفر ضمن المشروع محرك

أي محرك دقائق:

Emitter Locationموضع النفث )نفث الدقائق( .1

الموضع الذي ستم منه إطالق الدقائق.

Particlesالدقائق .2

وما تحوي من سرعة لكل منها والزواا الت سوف تتحرك بها وسرعتها الزاوة والمسار الت

.TimeToLive (TTL)ستأخذه ومدة حاة كل منها

محرك الدقائق بحد ذاته .3

.Drawو رسم Updateتحكم فما سبق من عملات تحدث والذي

Page 88: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 87

( الت تدل على أن المحرك نفجر IsExplodingوجد ف محرك الدقائق قمة )هل نفجر حالاا

انفجاره حث تم وبالتال إقاف عمله وذلك بعد فترة زمنة تدرجاا ك ال ظهر أنه اختفى فجأة عند

تقلص عدد الدقائق الت تم إطالقها تدرجاا مع التقلل من سرعتها وذلك حتى انفجاره نهائاا

Page 89: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 88

اىذخو واىخشج .4.1.7

اا بن الشكل التال كفة عمل ال .محرك الفزائ داخل

Page 90: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 89

واجهخ اىغتخذ .4.1

الفزائ ثنائ البعد:بن الشكل التال واجهة المستخدم الرئسة ف المحرك

مع واجهة التالعب بكامل قم المحرك أثناء وقت التشغل مؤلفة

.Tabsمن عدة صفحات

Page 91: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 90

تصادم المستطالت والدوائر

تحرك النوابض المترابطة عن طرق الفأرة

Page 92: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 91

تشكل حبل وربطه بنفسه

ربط حبلن مع بعضهما

Page 93: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 92

محاكاة حركة األجسام ضمن الماه

محاكاة تغر أبعاد أحد األجسام الصلبة ضمن الحبل وبالتال ازدااد ثقله ونزوله لألسفل

Page 94: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 93

الحبل تحت الماه وتأثر قوة الماه وقوة الطفو على كتله

إضافة فقاعات!

Page 95: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 94

!particle engineإضافة صوارخ مع

Page 96: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 95

أما المحرك الفزائ ثالث البعد تكون واجهته:

المكعباتإسقاط

Restingالمكعبات بعد عملة االستناد

Page 97: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 96

إضافة كرات

الكرات بعد عملة التصادم

Page 98: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 97

واجهخ تؼذو اىحشك اىفضبئ .4.2

تتح بالتالعب بقم المحرك والتعدل عله واإلضافة إله أو Tabsلف هذه الواجهة من عدة صفحات تتأ

الحذف منه بشكل كامل أثناء وقت التشغل.

بن الشكل المرافق صفحة إضافة جسم صلب.

مكن اختار نوع الجسم وأبعادة وموقعه والمادة المكونة

منه والتسارع المطبق عله.

مكن أضاا إضافة قوى على الجسم وعزوم وقوى

محركة كما مكن تعدل محاذاته ودورانه االبتدائ

ومكن التالعب بعزم العطالة فه.

Page 99: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 98

لمرافق صفحة إضافة نوابض مترابطة بنوعها بن الشكل ا

.Loselyالحبال المرنة أو النوابض المترابطة بشكل مرن

مكن تحدد عدد الكتل وثابت صالبة النابض وطول الراحة

للنابض ومعامل االحتكاك الداخل للنوابض.

مكن تحدد موقع النوابض المترابطة المبدئ ونوع الكتل

وحجمها. )مستطالت أم دوائر(

أخراا مكن تحدد فما إذا كان النابض هو حبل مرن أم فقط

.Loselyنوابض

بالحجم المراد ووضعها Bubblesمكن هنا إضافة فقاعات

فوراا بالفأرة.

تاح هنا أضاا التحكم بالسوائل. تاح للمستخدم تحدد وتعدل

محركة مستوى الماه أثناء وقت التشغل وإضافة قوة عزوم

للماه وقوى تطبق على األجسام.

Page 100: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 99

تاح ف هذه القائمة إضافة أجسام صلبة فوراا فقط بتحدد أبعادها

لسهولة اإلضافة.

للمحرك الفزائ كأن Modeمكن أضاا التحكم بالوضع الحال

كون بأحد األوضاع المشروحة ف مخططات الصفوف مسبقاا.

تحكم بالنوابض المترابطة كأن تم إضافة ف هذه القائمة تاح ال

أجسام لها أو قطع أحدها وإلغاء الخدمة المقدمة لألجسام الصلبة

مفاتح.داخله أو أن تم تحرك الحبل المرن عن طرق ال

تم ف هذه القائمة أضاا إلغاء أحد الفقاعات عن طرق فقعها!

وذلك بتغر وضع المحرك الفزائ.

ر الوضع لحالة إطالق الصوارخ وأضاا عن طرق تم أضا تغ

الفأرة.

Page 101: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 100

الفصل السابع

الواقع المزاد

Augmented Reality

Page 102: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 101

اىىاقغ اىضاد .5

اىفنشح .5.1

إن فكرة الواقع المزاد تكمن ف عرض الواقع بعد "إزادة" بعض اإلضافات إله، والهدف العام كون

غالباا تحسن ما راه الشخص!

ز ف سبعنات القرض نفسه كان ظهرت الفكرة ف ستنات القرن الماض، وظهر أول تطبق مم

التطبق عبارة عن خوذة بها شاشة تظهر مشهداا ثالث األبعاد.

اىىاقغ اىضاد واىىاقغ االفتشاظ .5.1

بنهم:الواقع المزاد عتبر كفرع من الواقع االفتراض، ونالحظ الشكل الذي وضح مقدار االرتباط

Page 103: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 102

تطجقبد اىىاقغ اىضاد .5.1

اىتغيخ

ة األبعاد وإسقاطها على الوسط الحقق، وتم تطبق هذه الفكرة ف ات متحركة ثالث كتمثل شخص

الابان على شاكلة مطربة شابة )وقد ظهر لها معجبون كثر(.

اهد.ظهرت تطبقات جددة ف مجال السحر لك صبح أمتع وأكثر جذباا للمش

األىؼبة

ة، وكما انتشرت بشكل كبر األلعاب ظهرت العدد من التطبقات ف مجال األلعاب وجعلتها أكثر واقع

زاا وممتعاا أللعاب هذه األجهزة. ة كونتها أضافت نمطاا جدداا مم على األجهزة الذك

Page 104: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 103

االتصبالد

ة أكثر ف التواصل. والتواجد عن بعد، وذلك عط واقع

ىشبظخا

من أقدم استخدامات الواقع المزاد، حث أن المشاهد )وأثناء مشاهدته مباراة مثالا( قد رى النتجة على

أرض الملعب أو رى خط التسلل )ف كرة القدم(، أو حتى توضحاا للخطة المتبعة من الفرقن وطرقة

توزع الالعبن.

Page 105: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 104

ػشض اىبخ

للواقع المزاد، حث أن المقدم الذي عرض أحوال الطقس قف أمام شاشة أقدم تطبق على االطالق

خضراء ... وكل الخرائط واألشكال المتواجدة خلفه لست إال مضافة من قبل الحاسب.

اىتؼي

ة، حث أن كتب قد تصبح عبارة عن صفحات تم التنقل بنها بالد حث أصبح له بعد جدد بهذه التقن

اا. وقد ظهرت والنظر إ لها عبر نظارات خاصة تظهر المعلومات الخاصة بالصفحة المعروضة حال

تطبقات تساعد األطفال على ألعاب مثل ألعاب التركب، حث تتابع خطوات المستخدم وترشده ف حال

حاجته لذلك.

Page 106: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 105

اىجبه اإلػال

ز بجذبه للناس لك رو استخدم الواقع المزاد حدثاا على نطاق واسع ف المجال اإل عالن، حث تم

اإلضافات الت مكن أن تطرحها التكنولوجا على الواقع، ولذلك عرضت تطبقات كثرة ف مراكز

ة كبرة تحت رعاة شركات كبرة )مثل (.National Geographyتجار

جرد قام المستخدم بتمرر كما وضعت بعض اآلالت الت تظهر المنتج للمستخدم بشكل ثالث األبعاد بم

نة عله لك عان نفسه العلبة أما كامرا ما، وظهرت آالت تعرض المستخدم مع وضع مالبس مع

معها.

اىحبح اىىخ

هناك الكثر من اآلمال المعقودة على مثل هذه التطبقات، حث تصبح الجرائد مزودة بفدوهات بدل

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

Page 107: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 106

نظارة معدلة، وتح للمستخدم كل ما حتاجه من أوامر وإجابات عن أسئلة تحسن أداؤه ف الحاة

ة. الوم

اىؼتبد اىغتخذ .5.2

ة:تألف النظام الذي شغل التطبقات الحاوة على واقع مزاد من ثالثة أجزاء أساس

أدواد دخو .5.2.1

قد تكون موقع ف حال معلومات عن المكان، أو محدد لجسم ما ف حال تتبع أجسام أو ..

الذي وضع على سطح Markerمن أكثر األدوات المستخدمة لتعرف األجسام ما سمى بالمحدد

)جب التنوه أن التعرف التعرف على الجسم -عن طرق المحدد وكامرا مثالا -الجسم فستطع النظام

ات على األجسام ف ومنا هذا وصل إلى درجة عدم الحاجة إلى المحددات، وذلك تم وفق خوارزم

اا (.Marker-Lessمعقدة نسب

Page 108: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 107

أدواد خشج .5.2.1

قد تكون شاشة أو جهاز اسقاط أو نظارات تضف طبقة نصف شفافة تظهر فوق الواقع، وقد تشمل

عرضاا للصوت.

ظب ؼبىجخ .5.3

هو صلة الوصل بن جهاز الدخل وجهاز خرج، وعمل على تحدد ما جب عرضه على أجهزة الخرج.

ثو أثغػ!

بالنسبة للمستخدم فهو ال حتاج للكثر، والموضوع قد تطلب منه نظارة أو وقوف أمام كامرا أو

امتالكه الجهاز المناسب.

Page 109: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 108

اىفضبء غ اىىاقغ اىضاد .5.4

رة الت عملنا علها، حث أن اإلضافات الت وضعناها كطبقة فوق الواقع تتفاعل مع بعضها وهو الفك

ة، ونستطع التفاعل مع اإلضافات. -كمستخدمن-وفقاا للقوانن الفزائ

اىز قب ثهاىتطجق .5.4.1

ا لذلك فكرة عملنا على بناء نظام دمج الواقع المزاد مع الفزاء بطرقة ظرفة نوعاا ما، وقد اخترن

-بسطة توضح هدفنا. الفكرة تقوم على وجود قاعدة ثابتة علها مجموعة من الكرات والمكعبات، ونقوم

ن Markerعبر تحرك محدد ر القوى -مع بالتحكم بتوضع السطح وموله وبالتال نسبب ف تغ

المؤثرة بن الكرت ونلحظ التفاعل الحاصل بنها.

Page 110: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 109

اىتطجقأجضاء .5.5

أجهضح اىذخو .5.5.1

( للتحكم بالسطح، وثاناا كامرا مناسبة للتعرف على المحدد وإدخال صورة Markerأوال محدد ما )

الوسط ككل.

أجهضح اىخشج .5.5.1

شاشة مع بطاقة إظهار مناسبة ستكون مناسبة.

أجهضح اىؼبىجخ .5.5.1

ة الخرج، وتكون المعالجة لكل وتقوم بمعالجة الدخل من الكامرا لك تحدد ما ستم عرضه على شاش

Frame :منفرداا. الصور التالة توضح خطوات المعالجة

الصورة األصلية 1 صورة

Page 111: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 110

تحديد الحواف 2 صورة

استخراج المحددات المحتملة 3 صورة

مقارنة المحددات 4 صورة

للقام بهذه الخطوات XNAوتدعم العمل على #Cتعمل بلغة Goblinلقد تم استخدام مكتبة اسمها

السابقة.

Page 112: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 111

الفصل الثامن

المستقبلية ةالرؤي

Future Perspective

Page 113: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 112

اىغتقجيخ اىشؤخ .6

(Physics Engineف١ض٠جة )إ ثؼ ثؾض ف ثششع ٠شى ثر ذجء قشن -

وج ٠ى صط٠ش ١ضؼج غ وجفز أشىجي ثألؽغج دذال أ ٠ضؼج غ ثألشىجي ثألعجع١ز فمؾ

.سأ٠ج أل أ ؽغ ؼمذ ثذ١ز ٠ى إسؽجػ إ ثشى١ ثألعجع١١ ج ثذثةشر ثغضط١

ح له سهولة ف التطور بشكل تت م البرمج للمشروع والصفوف بداخله كما رأناإن التصم -

لألجسام Servicesكبر، حث أن إضافة أي فكرة فزائة تتم بشكل سهل عن طرق إضاقة

كما رأنا ف الصلبة عن طرق توابع األجسام الصلبة نفسها بدون أي تعدل على الصفوف

.الخدمات المقدمة وه النوابض المترابطة أم الصوارخ أو محاكاة السوائل

مكن االستفادة من المشروع ف إجراء اختبارات عددة على األجسام الصلبة وبالخواص -

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

.2D، 3Dعتبر هذا المشروع نواة للمحاكات الفزائة لأللعاب -

مثل هذا النوع من المحركات الفزائة ومكن تعتبر إضافة الواقع المزاد إضافة حققة على -

تطورها لتشمل العدد من الظواهر الت ستساعد المستخدم على فهم الحقائق الفزائة بشكل

أعمق بكثر عن طرق تفاعله مع البئة المحطة به بتكلفة قللة جداا.

Page 114: 3D Physical Bodies Interaction, Augmented Reality Approach - Documentation

STYX Physics Engine with Augmented Reality

STYX Team Page 113

اىشاجغ .7

[1] Game Physics Engine Development Mar 2007 – Morgan Kaufmann

[2] Websites – Physics

[3] Websites - Augmented Reality

[4] GoblinXNA – Augmented Reality