بتـــــاريخ : 2/26/2011 8:49:18 PM
الفــــــــئة
  • الحـــــــــــاسب
  • التعليقات المشاهدات التقييمات
    0 2129 0


    س و ج في برمجة الالعاب اسئلة و اجوبه

    الناقل : elmasry | العمر :42 | الكاتب الأصلى : احمد صالح | المصدر : www.arabteam2000-forum.com

    كلمات مفتاحية  :

    س : مجموعو الاكواد التي تشمل الادخال Input و تحميل الرسومات و رسمها علي الشاشة و تنفيذ النصوص Scripts و تشغيل مجموعة من ملفات الصوتيات و تنفيذ ذكاء صناعي مجمعة تُسمي ؟
    ج : محرك اللعبة

    س : عملية نقل المجسمات و رسمها علي الشاشة تُسمي ؟
    ج : عملية الرندر Rendering ( التصيير)

    س : الاسم الشائع التي تستخدمه برامج الرسومات 3d للمجسمات يُسمي ؟
    ج : عادة ما تجد Mesh - Object مجسم شبكي

    س : كل مضلع polygon في المجسم Mesh يُسمي ؟
    ج : وجه Face

    س: ما هي الرسمة الثنائية الابعاد التي تقوم بتلبيسها للمجسم علي اوجهه لتعطي مظهر جمالي ؟
    ج : الخامة Texture

    س: موقع المحاور الثلاثة في الثلاثة ابعاد 3D هو ؟
    ج : نقطة الاصل Origin

    س: ما هي محاور شاشة الحاسب ؟
    ج : السيني X من اعلي نقطة علي اليسار لليمين و الصادي من فوق لتحت .

    س: هناك نوعان لتحديد نوعية الاحادثيات في الثلاثة ابعاد ما هما ؟
    ج : نظام اليد اليمني Right Hand و نظام اليد اليسري Left Handed ، الدايركت اكس يستخدم Left Handed بمعني ان المحور Z الموجب له يكون في عمق الشاشة .

    س : اكتب هيكل structure بلغة السي لتمثيل نقطة علي الشاشة ؟

    struct 3DPoint
    {
    float x;
    float y;
    float z;
    };


    س : اذكر انواع المواضع التي يتحول لها المجسمات في برمجة الالعاب ؟
    ج : 1 . فضاء النموذج Model Space و هو مركز المجسم 2. فضاء العالم World Space وهو الفضاء الذي يكون فيه المجسم تحول من فضائه الذي كان به في برنامج الرسم Model Space الي العالم في لعبتك .

    س: ما هو هيكل البيانات المستخدم في مكتبات الدايركت اكس و OpenGL لتمثيل النقاط مع وضع معلومات اخري لها ؟
    ج : هو النقطة Vertex و الجمع Vertices

    س: اكتب كائن Class لتمثيل نقطة ؟
    ج :
    class CVertex{
    public:
    CVertex(float fx, float fy, float fz);
    CVertex();
    float x;
    float y;
    float z;
    };


    س: ما هو الاسلوب الذي يحذف المضلعات التي لا يراها المبرمج ؟
    ج : اسمه حذف الوجه الخلفي BackFace Culling

    س: ما هو الاسلوب المستخدم لجعل النقط تُرسم في اتجاه معين حتي يجعل رسم الخطوط بين النقط في رسم المضلعات في ترتيب صحيح ؟
    ج : ترتيب اللف Winding Order

    س: ما هو نوعية اللف التي يستخدمها الدايركت اكس في رسم النقاط ؟
    ج : مع عقارب الساعة Clockwise -- اي جميع النقط تُرسم في اتجاه عقارب الساعة <---

    س: عملية تحويل المجسم من فضائة الي فضاء العالم ( سواء لعبة او برنامج محاكاة ) هي ؟
    ج : هي عملية نقل المحاور Transformation

    س: عملية رسم مجسم عدة مرات في الثانية هذه الوحدة تُسمي ؟
    ج : التردد :P لالا تسمي Frame Rate معدل رسم الاطارات

    س: اذكر معادلات الدوران لنقطة في بعدين بدون استخدام المصفوفات
    ج :
    NewX = OldX x cos(theta) - OldY x sin(theta)
    NewY = OldX x sin(theta) + OldY x cos(theta)


    س: ما هي الوحدة المستخدمة في معيار الدوران ؟
    ج : الوحدة هي Radian مقدرة بالتقدير الدائري

    س: كم وحدة Radian لعمل دائرة كاملة ؟
    هي 2ط ، حيث ط تساوي 180 درجة .

    س: اكتب ميكرو بلغة السي للتحويل من التقدير الستيني للتقدير الدائري
    #define DegToRad( x ) ( x * ( pi/180 ) )


    س: اذكر النقطة تدور حولين اي محور بعد تطبيق هذه المعادلات عليها
    NewX = OldX x cos(theta) - OldY x sin(theta)
    NewY = OldX x sin(theta) + OldY x cos(theta)


    ج : تدور حول المحور Z

    س: ما هو نظام الاحداثيات الذي فيه تنتقل جميع النقط الموجودة في فضاء العالم World Space إليه ؟
    ج : فضاء الكاميرا

    س: ما هو التاثير الناتج عن تحرك الكاميرا إلي اليسار ؟
    ج : يتحرك ما في عالم اللعبة كله الي اليمين ، و هذا هو تأثير الكاميرا .

    س:اكتب كائن لتعريف كاميرا
    ج :
    class Ccamera
    {
    public:
    float PositionX;
    float PositionY;
    float PositionZ;
    float RotationX;
    float RotationY;
    float RotationZ;
    };


    س: ما هو المصطلح الذي يدل علي تحرك الاشياء البعيده كونها صغيره ؟
    ج : المنظور Perspective

    س: اكتب معادلات الاسقاط المنظوري لنقطة في بعدين
    ج:
    Xp = x/z and Yp = y/z


    س: نقل محاور مسقط نقطه في بعدين الي شاشة الحاسب يُسمي ؟
    ج :تخريط الشاشة Screen Space Mapping

    س: صف خطوات نقل محاور مسقط نقطه ( مسقط منظوري) علي الشاشة ؟
    ج:
    screenX = projVertex.x * screenWidth/2 + screenWidth/2;
    screenY = -projVertex.y * screenHeight/2 + screenHeight/2;
    // محور س للنقطة علي الشاشة = محور س للنقطة المسقوطه في عرض الشاشة مقسوم علي 2 مضاف عليهم عرض الشاشة علي 2


    س: الان ما هي اهم التحويلات مع الترتيب في تحويل فضاء لمجسم علي شاشة الحاسب ؟
    1. تحويلة العالم 2. تحويلة الكاميرا 3 . تحويلة الاسقاط المنظوري 4. تحويلة الرسم علي شاشة الحاسب

    س: اكتب كائن لتعريف متجه Vector
    ج:
    [class Vector
    {
    public:
    float x;
    float y;
    float z;
    };


    س: المتجه دائماً نقطة صح ام خطأ ؟
    ج: خطأ ، النقطة دائما متجه مثال ( الموضعposition ) و لكن المتجه ليس دائما نقطة علي سبيل المثال ( السرعة) .

    س: اكتب صفات المتجهات
    ج: المتجه دائما يعرف بمعياره و اتجاهه

    س: ما هي عملية التعيير Normalization ؟
    ج : هي عملية تحويل متجه ليس وحده ، الي متجه الوحدة Unit Vector .

    س: ما هو متجه الوحدة Unit Vector ؟
    ج : هو متجه معياره 1

    س: اكتب استخدامين لمتجهات الوحدة ؟
    ج: تحريك المجسمات Object Movement و تحديد وجوه المضلعات او ماذا تواجه Polygon Facing .

    *** ملحوظة العمليات الرياضية علي المتجهات متروكة للقارىء ، لقد نوهت عن اهم النقطة التي لها علاقة ببرمجة الالعاب ***

    س: ما هو المتجه الذي يحدد موضع المستوي في الفراغ ؟
    ج : المتجه العمودي علي المستوي Plane Normal

    س:اكتب كائن لتعريف مستوي Plane
    ج:
    class CPlane
    {
    public:
    CVector PlaneNormal;
    float DistanceToPlane;
    };


    س: بفرض المصفوفة M ستحول نقطة X,Y ، نوعية التحويل هي الدوران طبقاً للمعادلات التي ذكرتها من قبل لدوران نقطة اكتب المصفوفة M
    ج:
    M = | cos (theta )     sin(theta) |
                    | - sin(theta)  cos (theta) |


    س: كيف تقوم بعرض مصفوفة لها 1 × 4 [x y z w ] في فضاء ثلاثي الابعاد ؟
    ج :تقوم بقسمة كل مركبة X,Y,Z علي الاحادثي W و هو دائما بقيمة واحد .

    س: ما هو اسم المتجة الذي لها اربع مركبات جبرية X,Y,Z,W الذي يتم عرضه في ثلاثة ابعاد ؟
    ج : المتجهات المتجانسه Homogenous Coordinate (( هناك ايضا المعادلات المتجانسه التي تجدها غالبا في المعادلات التفاضلية ))

    س: ما هو معني تجنيس مركب له 4 مركبات ؟
    ج : اي تقسم كل مركبه علي الاحداثي W . لاحظ فائدة استخدام W ، في عمليات الحذف Clipping ستجد له اهميه و في عدم إحداث عملية القسمة علي صفر الغير معرفه .

    س: ما هو اسم طبقة السوفت وير المرتطبة بالعتاد او الهاردوير ؟
    ج : تعريف الكارت او Device Driver

    س: ما هو اسم الطبقة المرتبط بها الدايركت اكس في تعريف الكارت ؟
    ج : طبقة العتاد المجردة Hardware Abstraction Layer - HAL

    س : ما معني T&L ?
    ج : اي نقل المحاور و الاضاءة Transformation & Lighting

    س: عندما تستخد طبقة العتاد افتراضية Hardware emulation Layer اين تتم عملية نقل المحاور و الاضاء و رسم المضلعات علي الشاشة ؟
    ج : يقوم المعالج الرئيسي بالقيام بهذه العمليات و عادة يسمي نوعية هذا الرسم Software Rasterizer .

    *** افضل كتاب لفهم خورازميات الرسم بالحاسب باستخدام الرسم بالمعالج الرئيسي او Software Rendering هو لاستاذي :
    Tricks of the 3D Game Programming Gurus - Andre LaMothe
    إن كان في وقت ، ساتطرق الرسم بالحاسب و لكن في قسم الميكروكنترول في المنتدي و كيفيه صنع اجهزة console .

    س: ما هي الخطوة التي يجب تنفيذها قبل استخدام ملامح كارت الشاشة الذي لديك ؟
    ج: عملية التجهيز Initializ/sation .

    ** قد تلاحظ في اغلب الدروس انها تبدأ بكيفيه اعداد الدايركت اكس للتعامل مع كارت الشاشة

    س: ما هي الكائنات التي يُطلق عليها مركبات سوفتير ؟
    ج: مركبات COM - Components object model

    س:ما هي الخطوات التي يجب إتباعها قبل استخدام وظائف الكائنات COM ؟
    ج : عملية التجهيز Initializ/stion

    س:صح ام خطأ ، هل مركبات COM تعتمد علي لغة السي ++ فقط للربط بها ؟
    ج : خطأ

    للاستزاده : نرجوا قراءة كتاب C++ Unleashed للتعرف علي COM و كيفية إستخدام هذه التكنولوجيا في بناء برامج و كيف يعتمد عليها الدايركت اكس .

    س: ما هي الملفات التي يجب ان تقوم بدمجها في كودك لضم واجهات COM - Interfaces التي ستخدمها الدايركت اكس في التواصل مع العتاد ؟
    ج : d3d9.h

    س: ما معني المصطلح GUID ?
    التوصيفات الفريدة و هي عبارة عن ID للواجهات المستخدمة مثل واجهه IDirect3D او IDirectInput او IDirectSound .

    س: كم بت او بايت مكون منها هذا الID ?
    128 بت ، اي 16 بايت ( اي 16 حرف ) .

    س:ما هي الاداءة التي يمكن استخدامها و في توليد هذه الحروف ?
    ج : GUIDGEN.exe

    س: اكتب الكود اللازم لبدء استخدام واجهة الدايركت اكس ؟
    ج :
    LPDIRECT3D9 pD3D;
    pD3D = Direct3DCreate9( D3D_SDK_VERSION);


    لاحظ ان LP هي اختصار Long Pointer اي مؤشر من نوع long ، و لاحظ وجود ثابت يحدد رقم اصدار الدايركت اكس .

    س: كارت الشاشة Device هو عبارة عن ............ آلة التي يمكن التحكم بها باستخدام دوال عضوية Memeber Functions ?
    آلة محدده State Machine اي آلة لها عدد من الحالات States ، لاحظ استخدام هذا المصطلح في علوم الكومبيوتر و صناعة الروبتات و يجب البحث عنه في كتب الرياضات المجردة Discreet Maths ، لانه يستخدم بكثره و له استخدامات عديدة في برمجة الالعاب في تحديد مثلا حالات اللعبة ، بان تقوم بكتاب State Machine Code و مثلا مُستخدم في الذكاء الصناعي ، و استخدمته ايضا في صناعة روبتات في توظيفه ..

    س: ضع مثال علي الية الكارت ؟
    ج : الدالة IDirect3DDevice9::SetRenderState

    س: استخدام كارت الشاشة للتحكم بنقل المحاور و الاضاءة يُشار اليه باسم ؟
    ج: Fixed Function Pipeline ، ماسورة العمليات التي لها وظيفة ثابته

    س: ما هي الShaders ?
    ج : المظلالات تعطي المطور بكتاب كود قصير لنقل محاور و اضاءة نقاط المجسمات و تلوين البكسل بدلا من استخدام مساورة ثابتة الوظيفة .

    س: ما اسم ماسورة العمليات PipeLine التي تستخدم المظلالات ؟
    ج: الماسورة الغير ثابتة او القابلة للبرمجة Programmable Pipeline

    * لاحظ اننا قمنا بكتابة اسئلة عن ماسورة العمليات و عمليات التحويل التي يجب ان يخضع لها اي موديل تُحب ان ترسمه علي شاشة الحاسب .

    س: للمراجعة ، اكتب كود باستخدام الدايركت اكس يقوم بإعطاء امر لكارت العرض بوضع مصفوفة اسقاط Projection Matrix ؟


    كلمات مفتاحية  :

    تعليقات الزوار ()