HGB

برمجة الجرافيكس DirectX

114 ردود في هذا الموضوع

السلام عليكم ,,

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

أغلب برامج الجرافيكس المتطورة تمت برمجتها بهذه المكتبات ,, 99 % ان لم يكن كل الالعاب في عالم اليوم تمت كتابتها باستخدام واحد من اثنين ,, اما ال OpenGl أو DirectX ال OpenGL ليس الا مكتبة قوية للتعامل مع عرض الشاشة ,, وهي تهتم بالرسم فقط ,, ليست كال DirectX فهذه الاخيرة عبارة عن مكتبة متكاملة بها واجهات ,, وكائنات ,, منها ماهو للرسم وماهو للصوت حتى طرق اللعب على الشبكة والتحكم بعصى الالعاب JoyStick ,,,

يمكن مقارنة ال OpenGL باال Direct3D فقط ,, فهما متكافئان ,, "سنتطرق لخدمات ال DirectX الاخرى بعد قليل "

ومن يسمع عن ال DirectX فقط سيظن أنها للألعاب ,, الامر ليس كذلك ,, فأغلب برامج الجرافيكس المتطورة تمت كتابتها باستخدام هذه المكتبات أيضا !!

بكل بساطة أحد أقوى برامج الرسم الثلاثي 3DStudio Max ,, هذا ال 3D Max كتب دواله المستخدمة من قبل البرنامج نفسه باستخدام ال Direct3D وال OpenGL كليهما ,, ومن أراد أن يتأكد من ذلك فكل ماعليه هو أن يقوم بتثبيت ال 3DMax وأول مرة يقوم بتشغيله سيسأله البرنامج أي المكتبات التالية تريد من ال 3DMAX أن يستخدم في عملياته الداخلية ,, وتجد 3 خيارات واحد منها ال Direct3D والاخر OpenGL ,,

لايوجد سبب في الارض يجعل شركة تريد تطوير برنامج Graphics عملاق من عدم اعتماد ال Direct3D ,,

,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

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

ويتفوق ال DirectX لأنه مكتبة متكاملة ,, وخاصة مكتبات الصوت ,, الرائعة للغاية ,, حيث لاتملك ال OpenGL مثيلاتها ,,

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

أرى أن التفوق بدا واضحا لل DirectX أكثر ,, لايهم فنحن نطور لبيئة الوندوز ولافضل للوندوز هي هذه المكتبة المتكاملة ,,

يستحيل أن نفصل في الفروق قبل أن ننغمس في هذه المكتبات ,, ربما كل شيء يكون في وقته ,,

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

لكن قبل أن أنتهي الان أريد أن أقول سنحتاج لأنزال مكتبة ملفات ال h. وال lib. الخاصة بالدايركت اكس ,,

سأتحدث عنها في الجلسة التالية ,,

بعد 5 ساعات تقريبا ,,

بالتوفيق ,,

1

شارك هذا الرد


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

الله يعطيك العافية أخي HGB

سيروا ونحن من ورائكم

وأنا أنتظر بفارغ الصبر مضي هذه الخمسة الساعات الطويلة بالنسبة لي

ولكن سأبدأ بالإعداد للدرس الأول.

0

شارك هذا الرد


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

بداية مباركة أخي العزيز

و كما قال الأخ CompuM4n

سيروا و نحن من ورائكم

0

شارك هذا الرد


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

السلام عليكم,

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

وأنصح كل من يريد الدخول في هدا المجال البدء بتحميل SDK ل DirectX .وهي موجودة في عدة مواقع لا أتدكرها الآن ولكن يمكن الحصول عنها بالقيام ببحث.

وقد نتساءل ما هي SDK وهي تعني System Developpement Kit وكل شيء له SDK الخاصة به وهي تحتوي على كل المكتبات اللازمة وهي قد تزيد أدوات للفيجوال س++ تمكنه من تجهيز المناخ لهدا النوع من البرمجة وكما توجد بها أمثلة كثيرة.

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

طبعا هدا مجرد رأيي وتبقى الصلاحية للجميع.

أتمنى لنا التوفيق وإلى اللقاء.

0

شارك هذا الرد


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

السلام عليكم ,,

هاقد عدنا مرة أخرى ,, فلنتحدث أولا عن أقسام ال DirectX :

1)Direct Draw : وهو المسؤل عن التعامل المباشر مع ذاكرة الفيديو الخاصة بكرت الشاشة ,, التي اذا تم تغييرها فان محتويات الشاشة ستتغير ,, وبه مزايا كثيرة ورائعة ,, وأغلب الالعاب ثنائية الابعاد التي كتبت سابقا تمت برمجتها بهذا ال Direct Draw ,,

كان ال DirectDraw هو الكائن الذي يجب انشاءه أولا حتى نستطيع أن نشتق منه Direct3D الذي سنتحدث عنه بعد قليل ,, وقلت كان لأنه كان فعلا ذلك واقع الامر حتى الاصدارة السابعة لل DirectX قبل سنتين ,, وكان يجب الابتداء ببعض الخدمات لنستلم واجهة تحكم للDirect Draw ,, ونستخدم هذه الواجهه لانشاء ال Direct3D ,,

أما الان فقد أصبح الامر أسهل في النسخة الثامنة والتاسعة وهي الاخيرة حاليا ,, لكن يبعد المبرمج قليلا مما يجري خلف الكواليس ,, "أعجبني ذلك لأن الاهتمام بتجهيز DirecDraw لبرنامج كل تعامله بال Direct3D يضيع الكثير من الوقت ",,

من خدمات ال Direct Draw ,, تحديد دقة كثافة الشاشة وتحديد وصول حصري للعرض على الشاشة ,, كما يحدث في الالعاب تتحول الشاشة الى Full Screen ويتم تحديد دقة العرض والعمق اللوني ,,

أنشاء أسطح الذاكرة التي تمثل ذاكرة عرض كرت الشاشة وهو العرض الفعلي على الشاشة في لحظة معينة ,, في البرامج غالبا ما يتم انشاء سطحين أو 3 ليتم التبديل بينها عند الانتقال من Frame الى الاخر ,, سنعرف السبب لاحقا ,, أخيرا هذه الاسطح تسمى بالمكدسات ,, يوجد مكدس أمامي ومكدس خلفيBack Buffer ,, وهي بعض المصطلحات التي سنتعامل معها ,,

2)Direct3D : تحفة ال Graphics الفنية ,, التي تقوم بالامور الغريبة ,,

من مهام ال Direct3D ,, تصيير الكائنات Object Remdering ,, من توزيع سموت Vertices الكائن وطريقة ربطها وملأها بلون أو عدة ألوان أو صورة أو عدة صور Texturing ,, "مثلا رسم شارع وملأه بصورة صغيرة Texture للشارع ,, ليصبح حقيقيا تماما !!" وحتى تحويل الكائن الكلي في فضاء الاحداثيات الثلاثية ,, وتوجيه الكاميرا للمشهد ,, وتحديد الاضاءة الكاملة للمشهد بأنواعها ,,

بالعربي كل مافي ال 3D Studio Max يمكنك انجازه في برنامجك بدون رسم مطلقا .. تصور !! بل أكثر من تحكم 3DStudio بكثير ,, فقط طموحك هو ما يمكن أن يوقفك ,,

أكثر ماأعجبني في تحكم ال Direct3D هي الاضاءة ,, تقدم واجهات Direct3D تحكما مذهلا للاضاءة تحاكي تلك التي في الحقيقة بشكل مثير للأعصاب ,, وبكلفة دورات Processor مذهلة ,, بالطبع لاتعمل اضاءة Direct3D كما تعمل متتبعات الاشعة ,, لأن هذه الاخيره تريد كمبيوترات خارقة !!

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

3) Direct Sound : كل امكانات الصوت المحيطي وصوت الاستيريو ,, وتقنيات معالجة الصوت وكل الامور الغريبة حول الاصوات ,, يمكن انجازها بال Direct Sound ,,

4) Direct Music : لم أتعامل معه حتى الان ولم أعرف الفرق بينه وبين ال Direct Sound !!

5)Direct Input : يهتم بالتحكم بكل مايخص أدوات الادخال والاخراج ,, الكيبورد والماوس ,, وحتى عصا الالعاب Joystick ,, وهو في الاصل مصمم للتعامل مع ال Joystick وليس مع عصا الالعاب العادية فقط,, بل مع تلك التي ترجع قوة أمثال عصا العاب ال PlayStation ,, يمكن أن تهتز وتتحرك مع اصطدام اللاعب بجسم اخر مثلا ,, كل ذلك يمكن برمجته باستخدام ال Direct Input ,,

6)Direct Play : يهتم بامكانية اللعب على الشبكة ,, ولو لاحظنا في الالعاب يوجد قسم خاص دائما يسمى MultyPlayer ,, لكي يتمكن اللاعبين باللعب على شبكة سواء LAN أو WAN أو على الانترنت ,, يمكن بالطبع اعتماد محركات خاصة لعمل كهذا ,, لكن ال DirectPlay يسهل العمل كثيرا ,,

7) Direct Show : وهو جديد نوعا في عائلة ال DirectX ,, ويهتم بكل مايتعلق بال Show كما هو واضح من الاسم ,, أمثال عرض الفيديو [انواع كثيرة ,, الرائع في الامر فعلا أنه يحتوي على فئات وواجهات رائعة لكثير من أنواع عرض الفيديو ,, أمثال DivX وكل ذلك تحت سقف واحد ,, يمكنك أن تطور برامج عرض فيديو بحيث تتحكم بالعرض كما تشاء ,, من عدد ال Frames في الثانية وحتى اضافة صور ومشاهد أمام وخلف الفيديو المعروض ,, باختصار يمكنك فعل ماتريد ,, وانشاء برامج تحرير فيدو أمثال Movie Maker وكل البرامج الاحترافية ,,

,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

استعرضنا أقسام ال DirectX كلها الان بشكل سريع جدا ,, لكن لن نتطرق قريبا لأي من الانواع غير ال DirectDraw وال Direct3D ,, نظرا لتعقيدهما ,, لكنهما الاكثر امتاعا والاكثر صعوبة على مدى الاقسام الستة ,,,

الان كما ذكر أخي chik نحن في عصر النسخة التاسعة من ال DirectX ,, وهذه النسخة كما ذكر تماما بها بعض الامكانيات تحتاج لكروت شاشة متطورة قليلا تدعم هذه المزايا ,, مثلا ميزة ال Point Sprit تمت اضافتها للنسخة الثامنة من Direct3D تحتاج لكرت شاشة يدعم هذه الميزة ,, ويوجد محاكي يسمى ال Reference Ristarizer أو مشبك الاشارة ,, يقوم بمحاكاة بعض العمليات التي لايدعمها كرت الشاشة في ال Processor مما سيسبب بطئ في سرعة التنفيذ بصورة بشعة لاتحتمل توزيعها في برامج تجارية ,, فهي فقط للاختبارات ,,

لكن المشكلة الكبيرة هي أن النسخة السابعة فرقها من النسختين الثامنة والتاسعة كبير فعلا ,, اذ تم ابعاد المبرمج كما ذكرت عن DirectDraw بشكل كبير ,, والبرمجة بالنسخة الثامنة والتاسعة أسهل من السابعة أو غيرها ,,

الميزات التي تحتاج لكروت شاشة متطورة تقدم لأجل الاداء الاقصى لمن يملك العتاد الازم ,, مثلا في الالعاب يتم برمجة اللعبة لتدعم عدة مستويات من الاداء يتم تخصيصها من لوحة التحكم للعبة ,, يمكنك أن تزيد في الاداء لتستفيد اللعبة من مزايا الاداء في كرت الشاشة حسب الحاجة ,, وكل هذه الميزات يمكن برمجتها بطرق مختلفة دون أن تحتاج للأداء المتطور ,, يعني بالعربي ,, يمكن أن نكتب برامج ل DirectX 9 كاملة وقوية دون أن نتطرق لترك الامور التي تحتاج للعتاد المتطور "الذي لاأملكه " :) ,,

حتى الان لابأس يمكن أن نطور بالنسخة السابعة أو التاسعة لايضر ,, لكن يجب أن نعرف انه لو امتلكنا النسخة التاسعة يمكن أن نبرمج للنسخة السابعة أو الثامنة أو التاسعة أو حتى النسخة الاولى !! ,, القاعدة كل نسخة تدعم ماقبلها ,,

المشكلة أن بعض الامثلة في DirectX 9 التي ترفق مع ال SDK بها أمثلة لم تعمل عندي لكن لاتتعدى الثلاث أو 4 ,, من أصل حوالي 22 ,, حاولت أن أشغل مشبك الاشارة لكن بلا جدوى ,,

بالنسبة لي لامشكلة مطلقا في تبني DirectX 9 لكن المشكلة في بقية الاعضاء ,,لأني أملك كرت شاشة GeForce4 MX 440 ,, وهو متطور نوعا ما ,, لكن يوجد الافضل أمثال GeForce 4 Ti 4200 وأخوانها ,, ولاجديد من GeForce FX 5200 وأخوانها أيضا ,, تدعم كل ميزات DirectX 9 ,,

بالطبع مشكلة عدم وجود الميزة مزجودة في الامثلة المتقدمة ,, والمشكلة الثانية أن نسخة ال SDK الخاصة ب DirectX 7 أو 8 أعتقد أنه قد تم سحبها من Microsoft.COM ,,توجد حاليا النسخة التاسعة للSDK ,,

عموما النسخة التاسعة حجمها للسي++ حوالي ال 97 ميجابايت مع كل الامثلة ,, أكثر من 50 مثال لكل أنواع ال DirectX ,,

الان لكي نستطيع أن نحدد سأرفق مثالا هنا أرجو منكم محاولة تشغيله فاذا عمل ,, فهذا أمر جيد ,, لأنه مكتوب بالنسخة 9 ,, لكن قبل تشغيله يجب علينا تثبيت مكتبات الربط الديناميكي ,, وليس ال SDK ,, لتشغيل ملف EXE مثل الالعاب التي نشتريها ,, نحتاج لمكتبة الربط الديناميكي ,, وهي ملفات الdll الخاصة بمكتبة ال DirectX وجميعنا يعرفها ,, ونقوم بتنزيل النسخة الاحدث كلما حولنا تشغيل لعبة جديدة تطلب نسخة أحدث ,, النسخة التي تأتي مع الوندوز XP هي النسخة الثامنة ,, لذا يجب تحديثها الى 9 لكي يعمل المثال ,, والتحديث حجمه 13 ميجا فقط تقريبا ,,

أما مكتبة ال SDK فتحتوي على ملفات ال h. و ال LIB. التي سترتبط مع ملفات ال dll ,,

خذ المثال وبعدها سنقرر ماذا نفعل ,,

0

شارك هذا الرد


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

المثال :

وصور منه :

Point_Sprite.jpg

Point_Sprite2.jpg

PointSprites.zip

تم تعديل بواسطه HGB
0

شارك هذا الرد


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

هلا أخوي ،، HGB ،،

و الله يعطيك العافية ،،

و الصراحة ،، هده طلعت لي ،، :(

HCB.jpg

و تحية لكم ،،

تم تعديل بواسطه العصاميه
0

شارك هذا الرد


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

السلام عليكم ,,

أختي العصامية ,, الملف المرفق مضغوط ببرنامج WinZip ,, عليك فك ضغطه أولا ,, ثم سينشيء لك برنامج فك الضغط ,, فولدر جديد به الملف التنفيذي الذي يجب أن يعمل ,,

لفك الضغط اضغطي على Extract ,,

نقطة مهمة : يجب أن تمتلكي الاصدارة التاسعة من DirectX ,, ليعمل المثال ,,

0

شارك هذا الرد


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

السلام عليكم,

الأخ HGB أشكرك على هده المعلومات القيمة وأرى أنك محضوض بما أن أكثر من 4/3 من الأمثلة من النسخة التاسعة شغالة عندك بينما عندي العكس.فأنا لدي جهاز من عصر الدينوصورات وكارت الفيديو من بين الأوائل.

ولكن هدا لا يهم وأضن أنه يجب المشي مع الجماعة فإدا شغلت مع الجماعة فلا يجب على فرد واحد أن يشدهم إلى الوراء.

فلنسير إلى الأمام وبالتوفيق إن شاء الله.

إلى اللقاء.

0

شارك هذا الرد


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

السلام عليكم ,,

أخي chik المثال الذي أرفقته خارق ,, وكنت أريد التأكد من هل سيعمل أم لا ,,

وكما ذكرت سابقا ,, كل الدوال والفئات والواجهات الموجودة في DirectX 7 مدعومة في DirectX9 ,, لكن فقط كل ماحدث في 9 أنه تم ادخال أمور اضافية ,, وحيل وطرق جديدة اضافية لتسهل على المبرمجين ,, عموما واجهة DirectDraw لم تتغير من النسخة 7 وحتى الان بقيت كما هي ,, والفرق بين 8 و 9 لايذكر ,,التي تغيرت هي Direct3D

,,

وكل الامثلة التي سنطرحها إن شاء الله ستعمل لدى كل الاعضاء ,,

الان أعتقد أن الامر أصبح واضحا ,, فالخطة كالتالي ,, ومارأيكم :

1) تنزيل DirectX9 SDK ,, من الرابط التالي وحجم 99 ميجابايت ,,

http://www.microsoft.com/downloads/details...&displaylang=en

2) يوجد كتيب مرفق مع ال SDK لكنه لايسمن ولايغني من جوع ! مع أنه ممتليء قليلا وهو على شكل Help ,, لكن للأسف قلبت الانترنت رأسا على عقب ولم أجد كتابا ل 8 أو 9 !! حتى في الكازا ,, أرجو أن تساعدوني في ذلك ,, لكن لدي كتاب للنسخة 7 أملكه هنا باللغة العربية ,, وأملك كتاب الكتروني DirectX in 24 ساعة !! يعلم بعض المفاهيم الاساسية ,,

أكثر ماسيعلم برمجة ال DirectX قراءة الامثلة ,, والاستفادة من خبرات الاخرين وتجاربهم ,, وأخيرا التفكييييير العميق ,, لأنك ستتخيل كل شيء ,,

3) أن يبلغنا الاعضاء بالاستعداد ,, لنبدأ فورا ,, وكل من ينزل الSDK أرجو أن يقضي بضعة ساعات لتشغيل الامثلة كلها ,, ويعلمنا بما حدث ,,

أنتظر ردودكم ,,

تم تعديل بواسطه HGB
0

شارك هذا الرد


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

تم التحميل و لله الحمد بعد أربع ساعات ونصف إنتظار (الله يسامحك).

بس يطلب مني إختيار برنامج لتشغيل الملف بواسطته (فتح بواسطة........)

و لا تقوللي الملف ناقص أو معطوب لأني ساعتها راح تجيني الجلطة (الحجم 99 ميجا).

وأعذروني إن خف حماسي هذا الأسبوع لأنه عندي ثلاث مشاريع لازم أسلمها خلال أسبوعين .

إثنين في السي++ بالـ OOP و واحد في الأسمبلي

طبعاً برامج طويلة والوقت ضيق لكن إن شاء الله أكون معاكم كل يوم.

أخيراً لدي هذا اللنك منذ زمن وهو يحتوي على ألاف الأكواد والأمثلة في البرمجة.

أظنكم تعرفوه: http://www.planet-source-code.com/vb/defau...lt.asp?lngWId=3

تحياتي.

تم تعديل بواسطه CompuM4n
0

شارك هذا الرد


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

السلام عليكم ,,,

أخي CompuM4n ,, تمام ,, البرنامج غير معطوب باذن الله ,,

وهو من نوع Self Extractor ,,بال Win Zip ,, عموما ,, اليك ماستفعل :

انقر بالزر الايمن على الملف ,, ثم ,, Properties ,, ثم في اسم الملف أضف اللاحقة .exe بحيث يصبح الاسم dx9sdkcp.exe ,, ثم OK ,,

وستجد أن البرنامج أصبح يعمل ,,

أبلغني بما سيحدث معك ,,

0

شارك هذا الرد


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

حاولت مثل ما قلت أخي HGB بس ما في فايدة وأنا يائس.

يطلب مني برنامج (فتح بواسطة). وهو أساساً بدون ما أعدل فيه امتداده exe.

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

أنا تقريباً مخي وقف لأني شغال على مشروع البرمجة الأول من خمس ساعات تقريباً ما تحركت من على الجهاز (أعذروني).

تم تعديل بواسطه CompuM4n
0

شارك هذا الرد


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

السلام عليكم ,,

لاأعلم ماذا أقول لك أخي CompuM4n ,, اكن يبدو أنه قد أصاب البرنامج عطب ما في عملية التنزيل ,,

للأسف أعتقد انه مافي حل غير اعادة تنزيله ,, الله يعينك ,,

0

شارك هذا الرد


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

الحمد لله تم التنزيل (للمرة الثانية)

هذه المرة الملف سليم وعمل Self Extractor وكله تمام .

أنا جاهز وإن شاء الله اليوم أجرب الأمثلة الموجودة.

0

شارك هذا الرد


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

السلام عليكم,

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

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

مع متمنياتي بالتوفيق للآخرين وإلى اللقاء.

0

شارك هذا الرد


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

حمد لله على السلامة ,, وكل من نزل ال SDK 9 , أرجو أن يجرب الامثلة ,, حتى نبدأ في تشريحها ,, وسأبدأ بطرح أول مثال للمناقشة غدا ,, مع بعض التوضيحات من هنا وهناك ,,

بالتوفيق ,,

0

شارك هذا الرد


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

أخي chik أشكرك على تعاطفك معاي ترى كنت محتاجه لأنه كان راح يجيني إنهيار عصبي.

المشاريع الثلاثة من جهة والبرنامج اللي ما اشتغل من جهة.

بس الحمد لله وأنا جربت الأمثلة وفيها أمثلة ما تشتغل لكن الموجود تمام.

أخوي اشتغل فترة طويلة على 3D studio max 5 ويقول إنه مايعطيك هذي الدقة والسهولة وتحميل الصور فيه يزهق.

علشان كذا أنا مصر إني أتعلم معاكم.

طلب خاص: يا ليت تثبتوا موضوع directx وبرمجة الشبكات لأننا يومياً راح نطلع عليه.

تم تعديل بواسطه CompuM4n
0

شارك هذا الرد


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

السلام عليكم ,,

كان راح يجيني إنهيار عصبي
,, الله ستر عليك :)
وفيها أمثلة ما تشتغل لكن الموجود تمام

الامثلة التي لاتعمل خارقة قليلا ,, وعندما نتقدم ربنا يهون ,,

أخوي اشتغل فترة طويلة على 3D studio max 5 ويقول إنه مايعطيك هذي الدقة والسهولة

ال 3d Max نستفيد منه عندما نريد أن ننشيء نموذجا ,, لرجل مثلا فنرسمه بال 3d MAX "مع أن هناك ماهو أفضل لرسم الشخصيات الثلاثية " ونقوم بالتحكم به وتحريكه ديناميكيا بواسطة برمجة ال DirectX ,,

ولو كنت تستخدم ال MAX فعلا فهذا أمر رائع فعلا ,و حيث ستكون لديك بعض الامور التي ستجدها متشابهه ,,

علشان كذا أنا مصر إني أتعلم معاكم.

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

وبعدها مباشرة سأطرح أول مثال حقيقي لنبدأ تعلمه ,, طبعا مع الشرح ,,

أخيرا ماذا حل بالكتب ؟ هل وجد أحدكم أي كتاب ؟

طلب خاص: يا ليت تثبتوا موضوع directx وبرمجة الشبكات لأننا يومياً راح نطلع عليه

فعلا أمر التثبيت مهم ,, وسنثبته قريبا ,,

0

شارك هذا الرد


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

السلام عليكم ,,

سأتحدث هنا بداية عن مثال بالنسبة لنا حاليا ,, متوسط ,, لكنه مذكور في قائمة الامثلة مع ال SDK أنه ابتدائي !! ,, عموما سأتحدث عنه ببعض الاختصار لنتعرف بسطحية على توابع ال DirectX المستعملة ,,

ثم الجلسة التالية ,, سنبدأ بالتمارين Tutorials الموجودة مع SDK ,, لأنها البداية المطلوبة ,,

المثال هو Lighting وهذه بعض الصور منه :

Lighting.jpg

Lighting2.jpg

,, بداية قم بتشغيل المثال ,, وراقب مايحدث ,, ستجد كرة لونها أبيض تصدر ضوئا ينعكس في ثلاثة جدران تم انشائها ,, الرائع في الموضوع أن المثال لايحتاج لموارد مطلقا ,, لاتوجد Resources مطلوبة ليعمل بها المثال ,, مثلا توجد أمثلة أخرى تحتاج لعملية Texuring بصور JPG,, المهم في مثالنا تظهر كرة تضيء الجدران ,, ثم بعد فترة تتغير لتصبح على شكل مخروط صغير وكأنه بطارية تضيء ما أمامها فقط ,, وأخيرا تبدأ باضاءة الجدار بأكمله ,,

مايحدث في المثال مجرد استعراض سريع لبعض أنواع الاضاءة في Direct3D ,,

مالذي يعتمد على الاضاءة : في الواقع يظهر الضوء عندما ينعكس على العين ,, ويظهر الضوء مثلا المسلط على جدار ما اذا كانت زاوية سقوط الضوء من مصدر الضوء البطارية مثلا = زاوية انعكاس الضوء من الجدار لعين المشاهد ,, وعين المشاهد في DirectX هي الكاميرا ,, تمام ,,

مايحدث في الواقع هو مايحدث في Direct3D تماما ,, لكن كيف أحدد زاوية السقوط والانعكاس ؟؟ مايحدد ذلك هو المواقع الفيزيائية في الفضاء ثلاثي الابعاد XYZ لكل من ناظم السطح ,, واتجاه وموقع الكاميرا واتجاه الضوء الصادر من البطارية ,,

الامور الفائتة ليست معقدة ويمكن اعتبارها سهلة ,, لأن DirectX يسهل الامور بشكل مناسب ,, لكن ماهو الناظم ؟ قبل أن نعرف ذلك فالنتعرف كيف يتم تكوين الاجسام في Direct3D ,,

تتكون كل الاجسام المعروضة ماهما كانت من مثلثات فقط ,, هذه المثلثات كل رأس في مثلث تقريبا يسمى سمت Vertex ,, لاحظ السبب في اختيار المثلث لتجسيد الاشكال في Direct3D ,, لماذا لم يتم اختيار المربع مثلا ,, السبب في ذلك أن المثلث هو الشكل المنتظم الوحيد الذي يضمن تماما أن يكون كامل سطحه في بعد واحد !! في المضلع ذو الاربعة نقاط مثلا يمكن أن ينقسم الى مثلثين ,, ويكون كل مثلث في مستوى مختلف ,, الان من هذا الفهم اخيار المثلث أمر صائب وسيسرع من عمل التصيير Rendering ,, للأجسام ثلاثية الابعاد ,, والسبب في ذلك أن كل مثلث مكون للشكل الثلاثي الكامل سيتم التعامل معه على أنه أصغر وحدة سيتم التعامل معها ,, من كل النواحي ,,

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

الاضاءة في DirectX ,, لايمكن أن تشاهد الااذا انعكست من سطح اخر !! هذا ماعرفته أنا ,, مثلا يمكنك تعطيل النواظم الخاصة بالثلاثة سطوح فيي مثال lighting ,, وستختفي الاضاءة الناتجة من الكرة المضيئة !!

كل مازاد عدد المثلثات في الجسم كل مازادت دقته ,, وواقعيته ,, وكل مانقص أداء تشغيل البرنامج ,, مثلا لجم انسان يتحرك ,, لو لاحظنا الالعاب التي يتم انتاجها فسنجد في كل مرة مع تقدم نسخ اللعبة بكل فترة من الزمن , لأن الاجسام بدأت تظهر بشكل أفضل بعدد مضلعات أكبر لتقترب من الواقعية بشكل أكبر ,, والسبب الذي لايجعل المبرمجين يقومون برسم الشخصيات بملايين المثلثات الصغيرة مثلا ,, هو الاداء ,, حيث أن أفضل كروت الشاشة حاليا لايمكنها التعامل مع الاشكال الواقعية تماما بنسبة 100% ,, قد يحتاج الامر ب 3 سنوات أخرى على الاكثر ,,

بالطبع كل مازدنا عدد المثلثات ستكو انعكاس الاضاءة الناتج من السطح أكثر واقعية ,,,

بالطبع هناك أمور أخرى تعتمد على الاضاءة مثل اللون الانتشاري ومدى اللمعان الخاصين بالسطح ,, وهو مايسمى Meterial ,, كل هذه الامور موجودة في 3D Studio Max ,,

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

التجارب هي أفضل مايوجد لتعلم DirectX بالصورة المناسبة ,,

سنتحدث عن كل شيء باذن الله , وسأطرح أول Teturial هذا المساء ,,

توجد الكثير من الاشياء التي يجب فهمها في هذا ال Direct3D ,, لذا أرجو أن تكتبو الكثير من الاسئلة سواء من الان أو بعد بدء أول Teturial ,,

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

أتمنى أن يتم تبني اقتراح انشاء ال chat في المنتدى ,, لأنه فعلا توجد مشكلة في التواصل ,,

أعلم أني لم أقل الكثير هنا ,, سأرجع بعد قليل ,,

تم تعديل بواسطه HGB
0

شارك هذا الرد


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

السلام عليكم.......

أعذرني أخي HGB ما قريت الجلسة لكني راح أقراها بتأني اليوم إن شاء الله.

بس هذا اللنك لقيته أثناء الفهرسة أعتقد يحتوي على أمثلة لأني ما اتطلعت عليه مضبوط. http://www.gamedev.net/

0

شارك هذا الرد


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

أخي HGB البداية مشوقة وأنتظر بفارغ الصبر القادم.

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

#include "DXUtil.h"
#include "D3DEnumeration.h"
#include "D3DSettings.h"
#include "D3DApp.h"
#include "D3DFont.h"
#include "resource.h"

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

بس على العموم إطلعت على الكود و تقريباً كل الأسطر مألوفة بس أنتظر الشرح.

وعسى إن الله يكتبها فميزان حسناتك.آمين.

0

شارك هذا الرد


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

السلام عليكم ,,

أهلين CompuM4n ,, يالطبع قد قمت بعمل setup لل sdk بعد فك ضغطه ,, عندها سينشيء لك مجلد باسم DXSDK به كل الاشياء ,,

يبدو أنك لم تشغل ملف المشروع ,, بل شغلت ملف cpp ,, ملف المشروع هو الملف ذو الامتداد dsw. أو dsp. كليهما ملفات المشروع ,, هذا بالنسبة لvisual studio 6 ,, أما الدوت نت فعليك فتح ملف sln. أو ملف vcproj. ,,, تمام.

بعد فتح ملف المشروع ستجد كل الملفات الازمة قد حملت مع المشروع ,, فقط نفذ المشروع وباذن الله سيعمل ,,وأخبرني أي نسخة من Visual Studio تستخدم ,, لنستطيع التواصل بشكل أفضل لاحقا ,,

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

#include "DXUtil.h"
#include "D3DEnumeration.h"
#include "D3DSettings.h"
#include "D3DApp.h"
#include "D3DFont.h"
#include "resource.h"

فهي الملفات التي بها تصريح لفئات جاهزة قام فريق عمل DirectX بكتابتها ,, لاراحتنا من عناء كتابة برنامج من الصفر كل مرة ,, وهي قريبة من ملفات ال MFC في الشكل ,,

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

أخيرا أخي CompuM4n لاتثقل على نفسك فأنا أعلم أن عندك مشاريع تريد تسليمها ,, خذ راحتك,, واسئل كما تشاء وسأجيبك باذن الله ,,

تم تعديل بواسطه HGB
0

شارك هذا الرد


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

أشكرك أخي HGB على تعاونك.

أنا أساساً فتحته بـ dsp. لكن ما عليك أعدت الـsetup من جديد وهذي المرة مية المية يبدو إنه كل شي يشتغل عندي من المرة الثانية.

بالنسبة للإصدار عندي visual studio 6 أتمنى يوفي بالغرض.

وبالنسبة للمشاريع لا تقلق لأني سلمت إثنين منها يوم السبت حتى الدكاترة أستغربوا وناقشوني على شكل تحقيق لكني ولله الحمد فاهم شغلي.

باقي مشروع الـOOP وهو برنامج بنك يقوم بكل عمليات البنك وكان ودي أسوي مقدمة بالـDirectX للمشروع بس ما أعتقد أقدر أسويه.

0

شارك هذا الرد


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

السلام عليكم,

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

إلى اللقاء.

0

شارك هذا الرد


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

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .