الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مواد الرياضيات و الفيزياء في برمجة الالعاب

مغلق
بدأه Al-Saqqaf في 3 نوفمبر 2004 · 8 رد · 2,440 مشاهدة · في قسم برمجة الألعاب و الرسوميات العام
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

هذه اول مشاركة لي معكم و هذا اول سؤال:

ما هي مواد الرياضيات و الفيزياء التي احتاجها في برمجة الالعاب

وهل هناك مواد اخرى يتوجب علي دراستها بالاضاف لما ذكر اعلاه

ومشكورين مقدما

#2

السلام عليكم و رحمة الله

على حسب ظنى فان القدر الذى تحتاجه من الرياضيات ليس

كبيرا. و ان اغلب الكتب للمبتدئين تبدا بشرح لل Vectors و Matrices و

Transformations و Planes و الاهم من ذلك ان كل العمليات التى ينطلبها

Direct3D هى موجودة فى المكتبة الملحقة معه D3DX و هى مريحة للغاية.

يعنى اذا كانت لك اى دراية بالمصفوفات من قبل يمكن ان تكمل الجذء المطلوب من

الراضيات فى اقل من ساعتين. (انا اقيس على نفسى "يمكن ان تكمله انت

فى نصف ساعة").

بقى الجذء الاهم و الاصعب و الذى يبدو مستحيلا (الفيزياء)

الفيزياء فى Direct3D يمكن ان تقسمها الى اثنين:

- الفيزياء التى يستخدمها Direct3D مثل الاضاءة

- الفيزياء التى تحتاجها فى اللعبة مثل محاكاة السيارة وهى تنقلب

بالنسبة للفيزياء التى يستخدمها Direct3D لن تتدخل فيها الا بعد ان تصبح محترف.

اما الفيزياء التى تكون اللعبة نفسها, يمكنك ان تقيم الوضع فى هذه الحالة.

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

#3

تشكر جزيلا يا justnow ,, كفيت ووفيت فعلا ,,

نعم فيزياء ال Direct3D كالإضاءة والضباب والضباب يمكن أن تعتبر رياضية أيضا حيث يوجد خط واهي بين الرياضيات والفيزياء وأصلهما الرياضيات .

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

ويوجد نوع إضاء جديد في Direct3D 9 c ضم حديثا في النسخة الأخيرة c تسمى بال HDR ,, روعة الإضاءة ,, وهي الإضاءة الحجمية بحيث يظهر الضوء في الجو كضوء الشمس ,, وخوارزمية الإضاءة العادية في Direct3D لاتعطي هذا التأثير .

وكما وضح أخي justnow ستحتاج لفيزياء من نوع الحركة الكتلية والمقذوفات ,, يعني مثلا لو أردت أن تقذف بقذيفة مدفع بشكل حقيقي من نقطة x وبكتلة قذيفة Z في الكرة الأرضية طبعا ,, وبسرعة إبتدائية تحددها أنت ,, تستطيع أن تعرف أين ستسقط القذيفة في النهاية بعد تحديد الإتجاه .

وهي من قوانين الحركة الرئيسية .

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

banner_60_468.gif

NOTHING IS IMPOSSIBLE

#4

حقيقه معلومات رائعه

وشيقه

لكم مني خالص التقدير

*********************

دروس الاكسس

قاعدة بيانات بالسي++

قاعدة بيانات اخرى بالسي++

الفريق العربي للبرمجه

*********************

كان الله في عون العبد مادام العبد في عون اخيه

#5

السلام عليكم

معلومات رائعة وقيمة جدا . فجزاكم الله خيرا

لدي إضافة بسيطة وهي ماذا تحتاج من مواد .

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

والتصادم عدة أنواع ما يهمنا هو :

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

الخط . سنتحاج الى المتغيرات التالية :

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

نحسب الإزاحة كالتالي :

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

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

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

العملية أكثر تعقيدا لأنك تحتاج الى وضع الزاوية التي تتحرك بها كل كرة بعد التصادم .

أما في لعبة السيارت فالأمر أكثر تعقيد لأنك هناك قوة إضافية ستزيد بعد التصادم وهي مقاومة السائق للارتداد .

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

#6

الف شكر لكم على المعلومات القيمة

المعلومات رائعة فعلا و خلقت لي بعد اخر في فهم اهمية هذه المواد

المهم هل يوجد منهج منظم لدراسة هذا المواد ككتاب مثلا او موقع على النت او على الاقل ممكن اي احد من الاخوان يتفضل بوضع قائمة بمواد الرياضيات و الفيزياء التي تخص برمجة الالعاب

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

ودمتم

#7

http://www.gamedev.net/reference/list.asp?categoryid=28

http://www.digipen.edu/main.html

تم تعديل هذه المشاركة بواسطة ahmed_3d في 14 نوفمبر 2004 في 14:32

"خيركم من تعلم العلم وعلمه". ..........استغفر الله. ........ اللهم صلي وسلم على سيدنا محمد

احمد عبد الحميد ابوغرارة

CodeGuru CodeProject CGTalk

#8

السلام عليكم ورحمة الله

بالنسبة للعمليات الفيزيائية البسيطة يمكن ان نقول انها قابلة للمحاكاة

باستعمال خوارزميات معقدة.

اذا قمت بتصميم لعبة يقود فيها اللاعب سيارة و يقودها فى الشارع العام يمكن ان

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

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

ماذا اذا كنت فى الموقف التالى :)

انت الان مبرمج خول لك ان تصدر الاصدار الجديد من لعبة Vice City (للذين لم يشاهدوا

اللعبة لا استطيع ان اقول شيا) و عليك ان تحاكى تلك العمليات التى تحدث فى الاصدار

الاقدم و بصورة احسن (هذا هو الاصدار الاحدث) و تخيل ان الذاكرة التى تتعمل معها لن

تنفذ (كل هذا للتسهيل و التبسيط).

الان و بهذه المعطيات قل لى كيف سوف يحاكى انقلاب السيارة (يمكن ان يكون هذا بسيط)

و لكن الشئ الذى اظنه اصعب هو الحركة لممتصات الصدمة التى تتبع ذلك

او الحركة التى يمكن ان تحدث لممتصات الصدمة عندما تنحرف السيارة و انت تضغط

على مفتاح المكابح :( . كل هذا يمكنك ان تتحايل عليه ببعض العبارات بسهولة

و باطنان من الكود فى اشهر ان لم تكن سنين (طول الزمن لا هناك كميات من الاحداث

يمكن ان يؤدى التزامن فيها الى عواقب لا تسمح بالجمع الجبر للانفعالات "بالطبع انفعالات

السيارة" ).

بدون استعمال مكتبة مساعدة اظن انك سوف تتنازل عن اطنان الدولارات التى يمكن ان تكون

المقابل لتطوير اللعبة. اذن الحل يكمن فى الفصل بين الكود الذى يحاكى العملية الفيزيائية

و الكود المسؤال عن عملية الرسم.

فى الامثلة التى هى فى الموقع

http://www.codesampler.com

يكمن الحل

Tokamak

يمكنك زيارة الموقع الخاص بهم

فى الجذء الخاص بال Download فى الموقع يمكن ان تجد امثلة رهيبة و كذلك الSDK

مع تمنياتى لك بالاستمتاع بالمكتبة:)

http://www.tokamakphysics.com

#9

شكرا لكم جميعا

اقتباس
اذن الحل يكمن فى الفصل بين الكود الذى يحاكى العملية الفيزيائية

و الكود المسؤال عن عملية الرسم.

عبارة رائعة فعلا

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…