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

عروة نت - الدرس 1 : مشروعك الأول مع GLScene [المنتدى - قسم برمجة الألعاب ثلاثية الأبعاد]

يتصفح المنتدى الآن:   1 زائر





الدرس 1 : مشروعك الأول مع GLScene
مدير الموقع
مشترك منذ:
2005/2/13 15:07
من Syria
الردود: 1192
غير متصل الآن
مشروعك الأول مع GLScene :


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

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

تعتبر GLScene حديثة العهد , والألعاب الحقيقة التي بنيت عليها لازالت قليلة (بسبب طول الوقت الذي تأخذة هكذا مشاريع مطورة جماعيا على الويب ) ب

سأكتب عدة دروس عن GLScene , وسأعود قريبا لإكمال العمل في محركي الخاص , واللعبة التي أتمنى أن أستطيع طرح الإصدار بيتا في وقت قريب , والتي ربما أصطلح على تسميتها Secret Mission

دعنا الآن نتوقف عن كثر الكلام ونبدأ مع بعض الأساسيات :



لنبدا مع الأساسيات :
دائما تأتيني إستفسارات من المبتدئين عن كيفية البدء مع GLScene . مع اني أرى ذلك سهلا ولكن لابأس ببداية مفصلة مع الصور لكسر حاجز الرهبة مع محرك الأشكال الثلاثية الأبعاد هذا .

المتطلبات :
- أهم شيء نسخة دلفي (5 - 7)
GLScene - منصبة على هذه النسهة
- فنجان من القهوة أو الشاي (حسب الرغبة , لامشكلة مع الذين يفضلون المتّة)

الهدف :
أن نبني مشهد بسيط يظهر في وسطه مكعب ثلالثي أبعاد

البداية :
إبدأ مشروع جديد : File->New->Application , أصبح لديك الآن مشروع جديد مع نموذج (Form1) , من الجيد منذ هذه النقطة ان تحفظ ملفاتك في مجلد خاص , وليكن 3DSample1 .

أدوات الGLScene :
أذهب بشريط الأدوات إلى الصفحة GLScene , وإختر المكونين التالين وضعهما على النموذج :
- GLScene : مكون غير مرئي في زمن التشغيل ستحفظ ضمنه معلومات أغراض GLScene , ويعتبر المكون الأساسي في أي مشروع
- GLSceneVeiwer : وهو النافذة التي سيتم عرض مشهدك منها , وتقوم بعملية رسم الأشكال الثلاثية الأبعاد ضمنها , وهو كذلك مكون مهم وشائع الإستخدام (على الأقل الدروس ال 50 الأولى ستكون مع هذا المكون )

بإمكانك ضبط خاصية Align للمكون GLSceneVeiwer إلى alCleint كي تضمن ان يأخذ كل حجم النموذج المتاح عند تكبير النموذج .

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

Open in new window


إختر الكاميرات من Root->Cameras . وأختر من قائمة الزر الأيمن "Add Camera" :

Open in new window


أصبح لديك الان GLSceneCamera1 في قسم الكاميرات من المشهد .

أختر الآن قسم الأغراض Scene Objects , ومن قائمة الزر الأيمن أختر DummyCubeAdd Object->

Open in new window


يجب أن يبدو المحرر أمامك كالتالي :

Open in new window


DummyCube فعليا ليس جسم ثلاثي الأبعاد ولكنه حاوية أب يتم وضع بعض الاغراض (الأبناء) ضمنها , مثلها مثل ال Panel في دلفي , حيث أن ضبط أي خاصية للعنصر الأب (panel أو DummyCube) سيورث الأبناء هذه الخاصية .

دعنا الآن نضيف جسم ثلاثي أبعاد إلى هذه الحاوية . أيضا بالزر الأيمن فوقها إختر :
add object -> basic geometry -> cube
سيصبح المحرر الآن كالتالي :

Open in new window



نحن الآن بحاجة لضبط بعض الخصائص :
إختر الكاميرا , ومن ضابط الكائنات ستجد خصاية TargetObject والتي تحدد المجسم الهدف التي ستلاحقة الكاميرا أينما ذهب . بإمكانك إختيار GLCube1 ولكني سأختار GLDummyCube1 الأب , لإننا لو أخترنا GLCuble1 سيبقى حتما في منتصف الشاشة ولانستطيع تغييرة لإن الكاميرا ستلاحقة وتضعه في المركز دائما , (, إذا كنت لاتفهم علي ,فلاتهتم لهذة التفاصيل , سيأتي دورها لاحقا) .
إذن TargetObject =GLDummyCube1 :

Open in new window


المشكلة الآن أن إحداثيات الكاميرا الإفتراضيه هي (0,0,0) وإحداثيات المكعب الإفتراضيه هي أيضا (0,0,0) ؟؟ ولكن هكذا لن نستطيع رؤية شيء واقع في نفس النقطة , ونستطيع عوضا عن ذلك تحريك موقع الكاميرا قليلا لكي ترى الجسم من نقطة مختلفة .
التحريك سهل جدا , كل ما عليك هو ضبط الموقع الجديد للأحداثيات الجديدة (x,y,z) .
إختر الكاميرا ومن ضابط الكائنات ستجد الخاصية المتفرعة position (الموقع) ولها x,y,z إضبطهم مثلا كالتالي : (2,2,2)


Open in new window

.
لقد انتهينا من إضافة العناصر وضبط خصائصها كما أتفقنا , الآن إختر المكون GLSceneVeiwer على الفورم (النافذة الذي تستعرض المجسمات إذا كنت تذكر)وستجد له خاصية Camera من ضابط الكائنات لتختار له الكاميرا الحاليه (تذكر أنه يمكنك إضافة اكثر من كاميرا , مثل لعبة need for speed مثلا .. )
Camera=GLCamera1 .

Open in new window


حال القيام بذلك سيظهر لك المشهد الذي قمنا بتصميمه مباشرة :

Open in new window


ولكن مهلا لماذا هذا الإسوداد في الصورة ؟؟ هل الكهرباء مقطوعة ؟
أأة تذكرت , يجب إضافة إضاءة للمشهد كي تتنور الصورة بالداخل .
لمبية الإضاءة (Light source) هي مثلها مثل بقية الأغراض نضيفها مثل المكعب مثلا ونتحكم في موقعها ,

مراجعه لإضافة عنصر (وبالمرة نضيف اللمبة) :
- إنقر نقر مزدوج على GLScene1
- من scene objects ومن قائمة الزر الأيمن إختر add object->light source (أول واحد بالقائمة)

نضبط خصائص light source ممثل الموقع حسب الرغبة , ويتغير أنارة المكعب حسب موقع الضوء ,
على كل حال عادة في التصوير توضع الإضاءة مع الكاميرا ,
لذلك سأطلب منك القيام بسحب اللمبة وتركها فوق الكاميرا (تصبح تابعة للكاميرا وتتحرك معها ) :

Open in new window



حال القيام بذلك سترى المكعب أصبح واضحا بعد الإضاءة ,,

Open in new window





---------------------
مترجم مع بعض البهارات (كالعادة)

إرفاق ملف:


zip demo.zip الحجم: 2.27 KB; مرات التنزيل: 467

أرسلت بتاريخ: 2005/3/22 20:23

حررت بواسطة orwah في 2005/3/22 21:38:15
حررت بواسطة orwah في 2005/3/22 21:56:15
حررت بواسطة orwah في 2005/3/22 22:01:31
خيارات المشاركة وتحويلها إلى تطبيقات أخرى خيارات


رد: الدرس 1 : مشروعك الأول مع GLScene
عضو مبتديء
مشترك منذ:
2006/7/9 18:38
الردود: 1
غير متصل الآن
اين الدرس الثاني

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

الفكرة ليس فقط تلوين مكعب مستقل بحد ذاته وانما المشروع هو خوارزمية لتوضيع مكعبات
فبعد ان تتوضع المكعبات في الفراغ المتاح (شاحنة مثلا)حيث يتم تلوينهم بالترتيب قد يصبح لدينا مكعبان بنفس اللون بجانب بعضهما البعض فلا يمكن تمييز مكعب عن الآخر وربما يمكن ان يبدو لنا انهما مكعب واحد

والحل هو تلوين احراف كل مكعب بلون اسود

وهذه هي المشكلة

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

نرجو الحل بسرعة بسبب قرب مشاريع التخرج

أرسلت بتاريخ: 2006/7/11 15:50

حررت بواسطة amani في 2006/7/11 16:07:06
حررت بواسطة amani في 2006/7/11 16:13:14
خيارات المشاركة وتحويلها إلى تطبيقات أخرى خيارات


رد: الدرس 1 : مشروعك الأول مع GLScene
عضو مبتديء
مشترك منذ:
2006/7/14 13:25
الردود: 4
غير متصل الآن
السلام عليكم ورحمة الله <br />اريد ان اسال السيد عروة فيما اذا كان سيتابع دروس GlScene ام لا <br /><br />و ادعو الاخوة المشاركين الى ادراج مواضيعهم و مناقشاتهم و اسئلتهم لاغناء المواضيع في النتدى ( اسمه منتدى اي يقوم بمشاركة الاعضاء)

(شفتو شو صار بلبنان الله يقنصر المجاهدين)

أرسلت بتاريخ: 2006/7/16 23:31
_________________
خيارات المشاركة وتحويلها إلى تطبيقات أخرى خيارات


رد: الدرس 1 : مشروعك الأول مع GLScene
مدير الموقع
مشترك منذ:
2005/2/13 15:07
من Syria
الردود: 1192
غير متصل الآن
أهلا أخي qwe
على المدى القريب قد لا اجد الوقت الكافي لكتابة دروس ,
ولكن عندما اجد الهمة الكافية والوقت للكتابة عن GlScene أو عن دلفي بشكل عام لن أقصر .. المشكلة اننا في بداية الصيف حيث توجد كمية كبيرة من المشاريع والأفكار الجديدة يتم التأسيس لها .

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

أرسلت بتاريخ: 2006/7/18 13:52
خيارات المشاركة وتحويلها إلى تطبيقات أخرى خيارات






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

[بحث متقدم]




عروة عيسى
2005-2007

Powered by XOOPS