TheIslamFalcon
25-12-2007, 06:02 PM
اسئلة و اجوبه في برمجة الالعاب:
----------------------------------
السلام عليكم ورحمة الله وبركاته
-----------------------------------
س : مجموعو الاكواد التي تشمل الادخال 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
-----------------------------------------------------------------------------------
س : عملية رسم مجسم عدة مرات في الثانية هذه الوحدة تُسمي ؟
ج : التردد لالا تسمي 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 ؟
ج :كود:
m_pD3DDevice->SetTransform(D3DTS_PROJECTION, &m_mtxProjection);
----------------------------------------------------------------------------------
أرجو أن يعجبكم و يفيدكم الموضوع انتظر ردودكم و ترشيحاتكم
----------------------------------------------------------------------------------
----------------------------------
السلام عليكم ورحمة الله وبركاته
-----------------------------------
س : مجموعو الاكواد التي تشمل الادخال 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
-----------------------------------------------------------------------------------
س : عملية رسم مجسم عدة مرات في الثانية هذه الوحدة تُسمي ؟
ج : التردد لالا تسمي 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 ؟
ج :كود:
m_pD3DDevice->SetTransform(D3DTS_PROJECTION, &m_mtxProjection);
----------------------------------------------------------------------------------
أرجو أن يعجبكم و يفيدكم الموضوع انتظر ردودكم و ترشيحاتكم
----------------------------------------------------------------------------------