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

برنامجك الأول باستخدام المحرك الفيزيائي Physx

بدأه Abdullah.Alshammeri في 27 فبراير 2009 · 11 رد · 3,508 مشاهدة · في قسم برمجة الألعاب و الرسوميات العام
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكــم ورحمـة الله وبركاتــه ،،

هذا مقال يشرح الخطوة الأولى والمهمة لتثبيت مكتبة PhysX الفيزيائية وتطبيق مثالين الاول باستخدام opengl والثاني باستخدام directx9 .

المقال نشرته في مجتمع مطوري الألعاب

ملاحظة هامة :

- مثال direct3d اجتهدت في تطويره , دون علم مسبق وكافي بمكتبة directx .. لذلك .. هناك خطأ ما في انشاء الارضية floor .. فقمت بتكبير حجم الارضية بشكل يدوي ( انظر للمثال ) ,,, ولا اعرف حقيقة أين السبب ,, نفس المثال عملته في opengl ويعمل دون مشاكل ,, حاولت البحث في الانترنت عن مثال جاهز ولكن لم أجد ... لذلك اعتبر مثال directx مجرد بداية , تحتاج تحسين , لاتعتمد عليها كثيرا في تطوير تطبيقاتك .

- أيضا توجد مشكلة أخرى bug في المثال نفسه , اطلع على المقال ( آخر المقال تحديدا , لمزيد من المعلومات ) .

- المثال لا يشرح أي من المفاهيم المستخدمة , انما مجرد شرح لطريقة تثبيت الممكتبة الفيزيائية , وتطوير امثلة بسيطة Hello World .

اذا فيه أي استفسار او ملاحظات , يمكن طرحها من خلال هذا الموضوع ( وليس الايميل او الرسائل الخاصة او موقع algamedev :D ) .

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#2

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

سبحان الله توني الفجر مركبها :lol: اممممم عقدتني صار المشكلة في الSystem Software لو انك بكرة في الموضوع ساعة

لاحظة انك كتبت الموضوع وحذفته بعدين كتبته مره ثانية ولا وصل الرد

#3

شكرا لك أخي

#4

السلام عليكم

الحمد لله اخيرا وجدت موضوع حول

محرك

physx

المهم يريت طريقة تثبيت المحرك مع

code::block

يعني ماهي

*.h

*.dll

*.lib

التي اظيفها في مشروعي

المهم الطريقة الشاملة

بانتظار الرد

وشكرا جزيلا للاخ الشمري علي فتح الموضوع

طبعا المكتبة المستهدفة هي

opengl

اللهم صلي علي المصطفي محمد

صلي الله عليه وسلم

#5

والله ماعرفت شو المشكل

قمت باضافة الملفات

التالية

c:\Program Files\NVIDIA Corporation\NVIDIA PhysX SDK\v2.8.1\SDKs\Physics\include
  c:\Program Files\NVIDIA Corporation\NVIDIA PhysX SDK\v2.8.1\SDKs\Foundation\include
 c:\Program Files\NVIDIA Corporation\NVIDIA PhysX SDK\v2.8.1\SDKs\PhysXLoader\include
 c:\Program Files\NVIDIA Corporation\NVIDIA PhysX SDK\v2.8.1\SDKs\NxCharacter\include

واضفت ملفات

.lib

\NVIDIA Corporation\NVIDIA PhysX SDK\v2.8.1\Bin\win

مع العلم اني اتعامل مع

code::block

وعندما عامل كومبل لاي مثال

يظهر لي خطا في احدي المكتبات وهو متعلق بدالة مكتوبة بالاسمبلي

وهو كتالي

في المكتبة

NxMath.h
الحطا هو في 

#ifdef WIN32
		NxF32 localCos, localSin;
		NxF32 local = f;
		_asm	fld		local
		_asm	fsincos
		_asm	fstp	localCos
		_asm	fstp	localSin
		c = localCos;
		s = localSin;
تعليق الخطا هو 
_asm wos not declared in this scope

يعني لم افهم هل ان الكومبيلر لم يتعرف كلي المكتبة برغم من اني وضعت الروابط عادي للمكاتب

ام ان الكومبيلر لا يتعامل مع تعريف دوال الاسمبلي علي الشكل المذكور

وهذه ملاحظة ان اظافة تعليمات الاسمبلي في

code::block

تتم عبر تعليمات من الشكل السطري مثل

asm ("mov 14,%eax\n\t")

يعني اعتمادا علي شكل الكتابة للبروسسورات

amd

وليس

انتل

فانا الان في حيرة من امري

فارجو الرد وشكرا

تم تعديل هذه المشاركة بواسطة aziz nor في 16 يونيو 2009 في 20:37

اللهم صلي علي المصطفي محمد

صلي الله عليه وسلم

#6

لم أجرب المكتبة على code::block , لكن أظنك تعمل على MingW , عموما , هناك أمور لابد أن تأخذها في الحسبان ,

مكتبات المترجم MingW هي بامتداد .a وليس .lib ولكن يوجد برنامج ( حسب ما قال أحد الزملاء ) , يقوم بالتحويل بينهما فيتعرف عليها , أنا جربت مكتبة مثل GLUT ذات الامتداد .lib وعملت .

قمت بربط المكتبة وتجربتها .. ( لاحظ أن مسار المكتبات لديك خاطئ على كل حال .. استخدم Lib وليس Bin ) , ولاتنسى اضافة المكتبات أيضا من قائمة project ثم build options ...... وحل الاشكال الذي ذكرت هو باضافة التالي :

#undef WIN32

#ifdef WIN32
		NxF32 localCos, localSin;
		NxF32 local = f;
		_asm	fld		local
		_asm	fsincos
		_asm	fstp	localCos
		_asm	fstp	localSin
		c = localCos;
		s = localSin;
.
.
.
#define WIN32

البرنامج تمت ترجمته دون مشاكل لدي , لكن هناك مشكلة أثناء التشغيل وتحديدا عند انشاء Scene جديد .. يبدو أن هناك مشكلة ما

عموما وحتى اختصر عليك الطريق , هذه المكتبة ضخمة نوعا ما , لذا , يفضل أن تستخدم مترجم متطوّر مثل Visual Cpp 2008 , مجاني .

تم تعديل هذه المشاركة بواسطة الشمري في 17 يونيو 2009 في 02:29

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#7

مشكور اخي الشمري

لكن الظاهر اني حتعبك معي

المه انا مصر علي ان استعمل

code::block

وبنسبة لتحويل من

.lib

الي

.a

فوجدت الطريقة التالية

نقوم بعملية نسخ للملفين التاليين

dlltool.exe
و
reimp.exe
وهذان الملفات تجدهما كمايلي 
بنسبة لمستعملي 
code::block
mingw/bin
وبنسبة لمستعملي 
devc++
 devcpp/mingw/bin

طبعا نقوم بنسخ هذين الملفين الي مكان المكاتب التي نريد نغير الامتداد الخاص بها.

ونفتح الترمنلل الي مكان المكتبة

ونطبق كمايلي

reimp  -c  NxCharacter.lib
reimp  -c  NxCharacterCHECKED.lib
reimp  -c  NxCooking.lib
reimp  -c  NxCookingCHECKED.lib
reimp  -c  PhysXLoader.lib
reimp  -c  PhysXLoaderCHECKED.lib

والطريقة شغالة 100/100

لكن المشكل مزال مستمر معي ياخي الشمري

اللهم صلي علي المصطفي محمد

صلي الله عليه وسلم

#8
اقتباس
لكن المشكل مزال مستمر معي ياخي الشمري

أين المشكلة , في الترجمة , أو في التنفيذ .. اذا كانت في الترجمة , فمن المفترض أن تكون قد زالت .. بعد استخدامك undef .. اذا كانت في التنفيذ فلا أستطيع مساعدتك !

طبعا يجب أن تكون قد تمكنت من تثبيت Software المطلوب وليس فقط SDK , والا لن يعمل البرنامج ..

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#9
اقتباس
طبعا يجب أن تكون قد تمكنت من تثبيت Software المطلوب وليس فقط SDK , والا لن يعمل البرنامج ..

نعم اخي كلامك صح فانا صار لي مشكل في تسطيب

software

وسارفق صورة للمرحلة التي يصل اليها ويتوقف التسطيب

untitled.rar

صراحة والله مادري وش هو سبب توقف التسطيب

عند هذه المرحلة

اللهم صلي علي المصطفي محمد

صلي الله عليه وسلم

#10

اممم .. لاحظت المشكلة .. يبدو أن هناك مشكلة ما في Software الجديد .. يبدو أن انفيديا قامت بتنزيل Software جديد , النسخة 9 .. نفس المشكلة لدي , من المفترض وجود زر للموافقة على الاتفاقية أو لا !!

عموما .. تستطيع أخي تنزيل هذه النسخة :

http://developer.download.nvidia.com/PhysX...temSoftware.exe

وستعمل معك ان شاء الله .

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#11

بارك الله فيك اخي الشمري

جرى التنصيب بنجاح

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

طبعا انا وجدت مقالة في

knol

بعنوان

مدخل الي الفزياء في برمجة الالعاب باستخدام المحرك

physx

ومن طريقة عرض الموضوع اعتقد انها مو غريبة علي

شيفها في مكان لكن ناسي وين

الله يحفظك احي الشمري

تم تعديل هذه المشاركة بواسطة aziz nor في 18 يونيو 2009 في 08:47

اللهم صلي علي المصطفي محمد

صلي الله عليه وسلم

#12

ههه .. هذه مقالتي .. شاركت فيها .. في مسابقة الجامعة-google ( اثراء المحتوى العربي ) .

تم تعديل هذه المشاركة بواسطة الشمري في 18 يونيو 2009 في 19:22

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

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

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

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

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

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