دايركت ثري دي

من ويكيبيديا، الموسوعة الحرة
اذهب إلى: تصفح، ‏ ابحث

دايركت ثري دي (بالإنجليزية: Direct3D) أحد مكونات المكتبة البرمجية دايركت إكس من شركة مايكروسوفت. والذي يقدم أساساً خدمات تخريج رسوميات ثلاثية الأبعاد بشكل فوري لمبرمجي التطبيقات على نظم تشغيل ويندوز وإكس بوكس وإكس بوكس 360.

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

ملاحظة
  1. في حالات معينة (كأن يتصرف برنامج التشغيل بشكل مخالف للمواصفات) يضطر مبرمج التطبيقات للتعرف على نوع بطاقة العرض وإصدار برنامج التشغيل للتعامل معهما بطريقة خاصة.

إمكانيات[عدل]

تشمل إمكانيات دايركت ثري دي الأمور الآتية:

  • تسريع الرسم عن طريق معالج بطاقة العرض، أو بالاعتماد على المعالج المركزي في حال غياب معالج بطاقة العرض.
  • رسم المجسمات المؤلفة من مثلثات وإضاءتها بشكل حاد أو ناعم وفقاً لتظليل جوروه.
  • تحويل المجسمات وإضاءتها بثمانية مصادر إضاءة في خط المعالجة الثابت.
  • الرسم على كامل الشاشة مع إمكانية تغيير دقة العرض، أو الرسم في نافذة.
  • الرسم على أكثر من شاشة في وقت واحد فيما يدعى بتعدد الرؤوس (بالإنجليزية: multi-head).
  • دعم الإكساءات والإكساءات المضغوطة (مثل ضغط دي دي إس) وطبقات ميب ماب والإكساء المتعدد.
  • ذاكرة العمق.
  • دمج ألفا.
  • تنعيم حواف المجسمات.
  • تشغيل المظللات، مما يمكن المبرمجين من استخدام أنظمة تظليل أكثر تقدماً كتظليل فونج وبلين وأورين نايار والرسم الكرتوني.

تاريخ[عدل]

في عام 1992 افتتح سيرفان كوينديان شركة باسم ريندر مورفيكس (بالإنجليزية: RenderMorphics) قامت بتطوير مكتبة برمجة رسوميات ثلاثية الأبعاد تدعى رياليتي لاب Reality Lab بهدف تخديم احتياجات قطاعي الطب والرسم الهندسي. بعد الإصدار الثاني من المكتبة وفي فبراير 1995 تقدمت مايكروسوفت لشرائها وتوظيف سيرفان لتطوير مكتبة برمجة رسوميات ثلاثية الأبعاد لنظام تشغيل ويندوز 95، لتكون بذلك الإصدار الأول من دايركت ثري دي، والذي طُرح في الإصدار الثاني والثالث من دايركت إكس[1].

عبر إصداراته الأولى، قدم دايركت ثري دي واجهتـَيْ برمجة فيما يدعى بالبرمجة بالنمط المُصان (بالإنجليزية: Retained Mode)، والنمط المباشر (بالإنجليزية: Immediate Mode). حيث يعتبر النمط الأول الطريقة المبسطة لبرمجة دايركت ثري دي ويعمل وفقاً لمخطط مشهد مبنياً بالاعتماد على تقنية كوم COM، إلا أنه لم يلقَ رواجاً بين المبرمجين الذين طمحوا لمزيد من التحكم، فابتعدت مايكروسوفت عن تحديثه بُعَيْد الإصدار الثالث من دايركت إكس. أما النمط المباشر فقد اعتمد على مبدأ ملء ما يدعى بمخزن التنفيذ (بالإنجليزية: Execute Buffer) بتعليمات الرسم التي يريدها المبرمج. حيث طمحت مايكروسوفت أن يقوم كُتـَّاب برامج تشغيل بطاقات العرض بدعم وتفسير التعليمات في مخزن التنفيذ مباشرة للحصول على أسرع أداء. إلا أن التعامل مع مخازن التنفيذ كان مربكاً للعديد من المبرمجين، مما منع من اعتناق دايركت ثري دي، ليقود الوضع لمطالبة مايكروسوفت لاعتماد أوبن جي إل كمكتبة رئيسة للتعامل مع الرسوميات ثلاثية الأبعاد لكل من الحاسبات الشخصية ومحطات العمل. إلا أن مايكروسوفت استمرت في تحسين دايركت ثري دي ليكون بذلك منافساً لأوبن جي إل ومكتبة جلايد الخاصة بشركة ثري دي إف إكس. تم تسليم العمل على النمط المباشر من دايركت ثري دي لفريق من المبرمجين في ريدموند، بينما استمر فريق سيرفان في تطوير النمط المصان.

إصدارات[عدل]

يبقى رقم إصدار دايركت ثري دي مرتبطاً برقم إصدار مكتبة دايركت إكس الشاملة، لذلك فإن أرقام الإصدارات المذكورة هنا هي أرقام إصدار مكتبة دايركت إكس والتي حَوَت دايركت ثري دي من الإصدار الثاني (دايركت إكس 2.0):

الثاني والثالث[عدل]

لقطة من لعبة روكيم المرفقة كمثال على استخدام دايركت ثري دي في عدة التطوير

ظهر دايركت ثري دي لأول مرة مع الإصدار الثاني من دايركت إكس عام 1996، وطرأت عليه تغييرات طفيفة في الإصدار الثالث في نفس العام. حوى الإصدار واجهتي البرمجة بالنمط المباشر والنمط المصان. يتطابق النمط المصان مع ما يدعى اليوم بمحرك رسوميات ثلاثية الأبعاد، حيث أنه حوى وظائف تحميل المشاهد والإكساءات والتحريك والإضاءة والظلال وإدارة المشهد بمستوى عالي[2][3].

في هذا الإصدار ظهرت هيئة ملفات دايركت ثري دي والتي سُميت فيما بعد بملفات إكس بسبب كونها تحمل الامتداد (.x). كما اقترنت مع مجموعة أدوات مساعدة في عدة التطوير تسمح للمبرمجين بتحويل ملفات ثري دي ستوديو (.3ds) إلى هيئة ملفات إكس.

بُني النمط المصان كطبقة فوق النمط المباشر، والذي يعمل من خلال دايركت درو لإظهار الصورة بشكل نهائي على الشاشة ضمن الأنماط التي يدعمها دايركت درو.

من الجدير بالذكر أن هذا الإصدار من دايركت ثري دي لا يدعم معالجات الرسوميات وذلك لانعدامها من سوق المستهلك آنذاك؛ لذا كافة حسابات الرسم كانت تتم على المعالج المركزي. دعم دايركت ثري دي الرسم بعمق لوني 8-بت (باستخدام لوح لوني، أو تدريجات الأبيض والأسود)، وعمق 16-بت وَ 24-بت.

من أشهر أمثلة دايركت ثري دي التي طُرحت مع عدة تطوير دايركت إكس هو مثال روكيم (Rockem)، وهو لعبة قتال ثلاثية الأبعاد بين ربوتين خصمين في حلبة دائرية تحمل شعار دايركت إكس النووي. استمر هذا المثال في مرافقة عدة التطوير حتى آخر ظهور له في الإصدار 5.2، وقد بُرمج باستخدام النمط المصان من دايركت ثري دي، ليظهر كيفية الاستفادة من خدمات التحريك والإضاءة والكاميرا[4]. المجسمات يتم تحميلها من ملفات بهيئة دايركت ثري دي (.x) وتحوي المجسمات وحركاتها. تستخدم اللعبة موسيقى ميدي وأصوات بهيئة ويف (.wav)، وتعتمد على دايركت درو لإعداد النافذة في نمط عرض ملء الشاشة. من الجدير بالذكر أن الإكساءات في اللعبة محفوظة بدقة لونية 8-بت بالاعتماد على لوح ألوان، وهو ما لم يعد مدعوماً في معالجات الرسوميات الحديثة.

الخامس[عدل]

إصدار يوليو 1997. تم استبدال مخازن التنفيذ بأوامر رسم مباشرة (DrawPrimitive) في نمط الرسم المباشر، مما يعتبر نقلة نوعية عن أسلوب الرسم السابق والذي كان مصدر إزعاج للعديد من المبرمجين. كما استقدَمَ نمطُ الرسم المصان إمكانية دمج الألوان وتحريك الأجسام بسلاسة من موقع لآخر وتحوير المجسمات إضافة إلى تحويلات أخرى. استقدم النمط المصان أيضاً ميزة المجسمات التدريجية (بالإنجليزية: progressive meshes) التي تتيح للمبرمج زيادة دقة وعدد السطوح في المجسم وفقاً لبعده عن عين الناظر أو زيادة التفاصيل تدريجياً بينما يتم تحميل المجسم عبر الإنترنت[4].

السادس[عدل]

إصدار أغسطس 1998. تم استقدام مزايا عديدة لدعم معالجات الرسوميات المعاصرة، كالإكساء المتعدد ومخزن الرؤوس ومخزن ستنسل وتخزين دبليو (بالإنجليزية: W Buffering)، وحسابات تحويل مسرعة بالاستفادة من تعليمات المعالجات المتقدمة مثل إس إس إي SSE وثري دي ناو 3DNow!، إضافة إلى مدير ذاكرة إكساءات اختياري لتبسيط البرمجة واستقدام هيئة ملفات دي دي إس (.dds). كما أن هذا الإصدار احتوى على مزايا حصلت مايكروسوفت على ترخيصها من شركات العتاد مقابل طرح هذه المزايا على العموم من خلال دايركت ثري دي. من أبرز هذه المزايا ضغط الإكساءات الذي طورته شركة إس3 S3 والذي أُطلق عليه اسم دي إكس تي سي (بالإنجليزية: DXTC) ليتماشى مع تسمية دايركت إكس. من المزايا المرخصة الأخرى ميزة إظهار النتوءات من شركة ترايتيك (بالإنجليزية: TriTech). بهذا الأسلوب ضمنت مايكروسوفت أن تدعم شركات العتاد كافة مزايا دايركت ثري دي في أقرب فرصة، مما قدّم الصناعة بسرعة لم تكن ممكنة بحضور هيئة مراجعة مواصفات أوبن جي إل.

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

بالنسبة للنمط المصان، فإن التطويرات انحصرت في تحسين الواجهات البرمجية وإعطاء المبرمج المزيد من الوصولية لمعلومات الرسم والتحريك، إضافة إلى اعتماد المزيد من خصائص النمط المباشر في برمجة النمط المصان. في هذا الإصدار أيضاً تمت إزالة هذا النمط من مكتبة دايركت إكس الأساسية (بالإنجليزية: DirectX Foundation) ونُقِل إلى مكتبة وسائط دايركت إكس (بالإنجليزية: DirectX Media) إلى جانب دايركت شو ودايركت ميوزيك[5].

السابع[عدل]

إصدار سبتمبر 1999. في هذا الإصدار أضيفت مزايا جديدة عديدة[6]، منها:

  • دعم لغة فيجوال بيسك عن طريق تحويل البيانات للصيغة التي تتقبلها إجراءات مكتبة دايركت ثري دي.
  • دعم تحويل وإضاءة المجسمات باستخدام معالج الرسوميات (أول من دعمها بطاقة جيفورس من إنفيديا)، متضمناً تلبيس الشخصيات (بالإنجليزية: skinning).
  • إمكانية حفظ مخازن الرؤوس في ذاكرة بطاقة العرض بدلاً من الذاكرة الرئيسية، وهي ميزة لم تكن متوفرة في أوبن جي إل بعد، لتكون بذلك أول ميزة قيّمة يتقدم بها دايركت ثري دي على أوبن جي إل.
  • تطوير نظام الإكساء المتعدد ودعمه على بطاقات العرض المختلفة ليصل خط المعالجة الثابت في دايركت ثري دي إلى قمته في هذا الإصدار بطيف واسع من العمليات الممكن إعدادها للوصول لتأثير معين.
  • دعم انعكاسات البيئة المحيطة عن طريق الإكساءات المكعبة.
  • استقدام مكتبة امتدادات دايركت ثري دي (بالإنجليزية: D3DX) لتكون مكتبة مساعدة تزيل أعباء إعداد دايركت درو ودايركت ثري دي عن المبرمج قدر المستطاع بإجراءات مثل تحميل الإكساءات وإعداد جهاز الرسم ومجموعة من الوظائف الرياضية.

الثامن[عدل]

إصدار نوفمبر 2000. تميز باستقدام برمجة المظللات لكل من الرؤوس والبكسلات باستخدام لغة تجميع المظللات التي طورتها مايكروسوفت، وقد احتوت عدة التطوير على مترجم خاص لتحويل نص المظلل إلى تعليمات رمزية يستقبلها برنامج تشغيل بطاقة العرض وينفذها على رؤوس المجسمات أو البكسلات. بالرغم من مرونة مجموعة تعليمات مظلل البكسلات في دايركت ثري دي 8، إلا أن الاعتماد على بعض إعدادات خط المعالجة الثابت بقي ضرورياً مما سبب بعض الإرباك للمبرمجين. يعتبر استقدام المظللات نقلة نوعية عن أسلوب أوبن جي إل في ضبط الرسم عن طريق الكم الهائل من الإعدادات. دَعَم دايركت ثري دي 8 وَ 8.1 الجيل الأول من المظللات للإصدار 1.1 من مظلل الرؤوس و 1.4 من مظلل البكسلات.

في هذا الإصدار أيضاً أزيل الارتباط مع دايركت درو تماماً، ونُقلت بعض العمليات إلى دايركت ثري دي 8.0 (كنسخ البكسلات بين سطوح الرسم المختلفة) وطُرحت تسهيلات لإنجاز مهام الرسم ثنائي البعد من خلال دايركت ثري دي (باستخدام وحدة ID3DXSprite من مكتبة امتدادات دايركت ثري دي).

بجانب التطويرات أعلاه، أضيفت إمكانية الرسم على سطوح متعددة العينات (بالإنجليزية: multisampling)، ورسم الأشكال الشبحية النقطية، واستخدام الإكساءات الحجمية[7].

التاسع[عدل]

إصدار ديسمبر 2002. في هذا الإصدار دُعِمت مزايا عديدة[8]، منها:

  • استقدام الجيل الثاني والثالث من المظللات واستقدام مترجم لغة التظليل عالية المستوى.
  • تخليص المظللات من المزيد من الارتباطات مع خط المعالجة الثابت.
  • الإكساءات العشرية (بكسلاتها تتألف من أرقام عشرية).
  • تعدُّد سطوح الرسم.
  • معاينة الإكساءات في مظلل الرؤوس.
  • دعم إكساءات الإزاحة.
  • دعم اختبار المقص.
  • دعم تنعيم الخطوط المستقيمة.

يعتبر الإصدار التاسع من أكثر الإصدارات ثباتاً وانتشاراً، حيث أن مايكروسوفت التزمَتْ بطرح تحديثات عدة التطوير بتوقيت ثنائي-شهري لتحسين مترجم المظللات كسبب رئيس (تطويرات لمكتبة الامتدادات بدلاً من المكتبة الأساسية)[9].

التاسع إل[عدل]

طُرح هذا الامتداد على ويندوز فيستا برقم 9L لمعاونة تطبيقات دايركت ثري دي 9 للعمل على نظام ويندوز لبرامج تشغيل العرض (بالإنجليزية: Windows Display Driver Model) أو WDDM، والمستخدم في رسم سطح مكتب آيرو (بالإنجليزية: Windows Aero)[10]. كما أن هذا الامتداد استـُخدم كوسيط لتحويل أوامر أوبن جي إل إلى أوامر دايركت ثري دي ورسمها عن طريق دايركت ثري دي في النهاية دون الحاجة لوجود برنامج تشغيل أوبن جي إل[11]. دُعيت هذه الامتدادات بـقاعدة رسوميات ويندوز 1.0.

التاسع إكس[عدل]

إصدار خاص من دايركت ثري دي 9.0 على ويندوز 7 برقم 9.0Ex. يتيح هذا النظام إمكانية استخدام ذاكرة عرض افتراضية مدعومة بذاكرة الحاسوب الرئيسية، وتوقيت ومقاطعة أوامر الرسم، ومشاركة سطوح الرسم عبر عدة تطبيقات مستقلة[12].

التاسع المُدار[عدل]

نشرت مايكروسوفت طبقة إضافية مُدارة من دايركت ثري دي 9 ضمن حزمة دايركت إكس المدار (بالإنجليزية: Managed DirectX) تتيح لمستخدمي لغات دوت نت الاستفادة من خدمات دايركت ثري دي في برامجهم. الإصدار الأول من هذه الطبقة (برقم MDX 1.1) عمل بنسبة 40% من الأداء الكامل لدايركت ثري دي[13]، والممكن تحقيقه عن طريق استخدام دايركت ثري دي من خلال سي بلس بلس. في الإصدارات اللاحقة من عدة التطوير، طرح الإصدار الثاني من الطبقة المدارة بنسخة بيتا (MDX 2.0 Beta). صرّح فريق تطوير دايركت إكس آنذاك أن هذا الإصدار يحقق أداء لا يقل عن 98% منه في برامج السي والسي بلس بلس الاعتيادية[8]. يُعتبر توم ميلر من أبرز أسماء العاملين في الطبقة المدارة من دايركت إكس[14]. توقف تطوير دايركت إكس المدار عند الإصدار الثاني بيتا، واستُبدل بإطار عمل إكس إن إيه.

العاشر[عدل]

إصدار نوفمبر 2006. طُرح مع ويندوز فيستا تحت مسمى قاعدة رسوميات ويندوز 2.0، وهو غير متوافق مع إصدارات ويندوز السابقة لويندوز فيستا؛ دُعِي أيضاً باسم دايركت إكس نيكست (بالإنجليزية: DirectX Next) أثناء فترة تطويره[15]. من أهم مزايا هذا الإصدار استقدام الجيل الرابع من المظللات (4.0 وَ 4.1). تتميز المظللات في الجيل الرابع بأنها تتشارك في إمكانيات البرمجة إلى حد بعيد (كمعاينة الإكساءات وقراءة ثوابت المظلل)؛ ودعم رياضيات الأعداد الصحيحة والعمليات على البتات والإسناد الشرطي.

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

تخلص الإصدار العاشر من قائمة الإمكانيات الاختيارية التي أتاحتها الإصدارات السابقة من دايركت ثري دي. بدلاً من ذلك، يشترط دايركت ثري دي 10 على كل بطاقة عرض أن تدعم كامل الإمكانيات دون نقصان. بهذا يتحرر المبرمج من عناء اختبار إمكانيات بطاقة عرض المستخدم وتوليف برنامجه للعمل وفقاً للمواصفات المتاحة. فيما يلي قائمة بالمزايا الأخرى التي جاء بها الإصدار العاشر[16]:

  • إزالة خط المعالجة الثابت، واستقدام نموذج جديد ذو فعالية أكبر للتعامل مع إعدادات الرسم (بالإنجليزية: state blocks).
  • استقدام مصفوفات الإكساء والتي تتيح لمعالج الرسوميات أن يعاين إكساءات مختلفة دون تدخل كبير من المعالج المركزي.
  • تحويل نتائج الحسابات لتكتب على الذاكرة بدلاً من إتمام خط المعالجة والانتهاءً بالعرض على الشاشة (مرحلة التخريج (بالإنجليزية: stream-out)).
  • استقدام مخزن الثوابت لتحسين أداء إعداد ثوابت المظلل قبل الرسم.
  • استخدام ذاكرة المورد نفسه بأكثر من طريقة (إكساء كمخزن رؤوس مثلاً).
  • تضمين مترجم لغة المظللات عالية المستوى ضمن دايركت ثري دي بدلاً من مكتبة الامتدادات.
  • معاينة وقراءة ذاكرة العمق ومخزن ستينسل.
  • دعم ميزة ألفا كتغطية (بالإنجليزية: alpha-to-coverage) في سطوح الرسم متعددة العينات.

أُتبع الإصدار العاشر بتحديث طفيف 10.1 أضاف مجموعة صغيرة من اشتراطات الجودة على بطاقات العرض، كدعم ترشيح الإكساءات العشرية حتى دقة 32-بت، ودعم تنعيم الحواف حتى الدرجة الرابعة، والإصدار 4.1 من المظللات. فُتحت أيضاً معايرات صغيرة للمبرمجين لزيادة جودة الرسم، كالتحكم بتفاصيل تنعيم الحواف في كل أنظمته (المعاينة المتعددة أو الفوق-معاينة) وتغيير نسق المعاينة. كما وُسعت مصفوفات الإكساء لتدعم الإكساءات المكعبة.

من الجدير بالذكر أن 10.1 يعمل على بطاقات عرض 10.0، مع فرض تطبيق اشتراطات 10.1 على كافة بطاقات العرض الجديدة.

أغلب الألعاب التي دعمت دايركت ثري دي 10 في مطلعه دعمَت أيضاً الرسم بدايركت ثري دي 9، وذلك بسبب عدم توافق الإصدار العاشر مع نسخ ويندوز السابقة وندرة بطاقات العرض المتوافقة معه، مما يحد من انتشار اللعبة بشكل كبير.

الحادي عشر[عدل]

إصدار أكتوبر 2009. طُرح مع ويندوز 7، وهو متوافق مع ويندوز فيستا مع وجود بعض التحديثات. احتوى هذا الإصدار على أنواع جديدة من المظللات وتفرعت منه واجهات برمجية جديدة كدايركت رايت ودايركت تو دي. يحافظ الإصدار الحادي عشر على فلسفة المزايا الموحدة عبر كافة بطاقات العرض. إلا أنه وفي سبيل أن يعمل على بطاقات العرض المتوافقة مع الإصدار التاسع فقط أو العاشر فقط، فإنه يقدم للمبرمج إمكانية اختيار نمط العمل ليتوافق مع بطاقة عرض من جيل الإصدار التاسع أو العاشر؛ حيث يستطيع المبرمج تلافي استخدام المزايا المتقدمة من دايركت ثري دي 11.

فيما يلي قائمة ببعض المزايا الجديدة في الإصدار الحادي عشر[17][18]:

  • توسعة ميزة التقسيم عن طريق استقدام مظلل الهيكل ومظلل النطاق.
  • استقدام مظلل الحساب لإنجاز مهام الحساب العامة على معالج الرسوميات، ويمكن تغذية خط معالجة الرسم بنتائج الحسابات، أو العودة بها إلى ذاكرة المعالج المركزي.
  • دعم تعدد المسارات، كالرسم أثناء إنشاء موارد جديدة وتحميلها، وملء طابور أوامر الرسم باستخدام أكثر من مسار معالجة.
  • الجيل الخامس من المظللات، ويدعم الإجراءات الفرعية والأصناف والواجهات والربط الديناميكي، والحمل في العمليات الحسابية، ومعاينة الثوابت كما الإكساءات، والمخازن المنسقة وتعليمات جديدة أخرى.
  • مرونة إضافية في معاينة الإكساءات أثناء في نمط المعاينة المتعددة، ودعم الإكساءات عديدة المكونات.
  • دعم الموارد ذات الأحجام الضخمة (تلك التي تتجاوز الـ 4 جيجابايت).

المعمارية[عدل]

مخطط مكونات دايركت ثري دي وكيفية ارتباطها بالتطبيق وبرنامج تشغيل بطاقة العرض

يعمل دايركت ثري دي كطبقة وسيطة بين التطبيق وبرنامج تشغيل بطاقة العرض. حيث يتعامل مبرمج التطبيق مع واجهة موحدة عبر كافة أنواع بطاقات العرض المختلفة، ومن جهة أخرى يقوم كاتب برنامج التشغيل بالتعامل مع واجهة مقابلة من دايركت ثري دي لاستقبال أوامره وتفسيرها لأوامر ينفذها معالج الرسوميات[19].

كما يظهر في الشكل المقابل، يتألف دايركت ثري دي من عدة مكونات:

الواجهة البرمجية لمبرمجي التطبيقات[عدل]

تمثلها عدة التطوير البرمجية التي تـُنشر للمبرمجين مجاناً. تتألف عدة التطوير من الملفات اللازمة للمبرمج كي يحقق نداءات لدايركت ثري دي ويستخدم مكوناته، هذه الملفات هي ملفات الترويسة (h.) والمكتبات المترجمة (lib.) لكتابة التطبيقات بلغة سي بلس بلس. إضافة إلى ذلك تشمل عدة التطوير وثائق تعليمية ومرجعية وعدد كبير من الأمثلة التطبيقية.

الواجهة البرمجية لمبرمجي برامج تشغيل بطاقات العرض[عدل]

تمثلها عدة تطوير برامج التشغيل (DDK) التي تـُنشر لمبرمجي برامج التشغيل للتعامل مع أوامر دايركت ثري دي[20]. يتأثر هذا الجزء كثيراً باختلاف إصدارات ويندوز. وقد تعرض لتطويرات جذرية مع استقدام نموذج ويندوز لبرامج تشغيل العرض WDDM الذي طُرح مع ويندوز فيستا وويندوز 7؛ أهم التطويرات أن برنامج التشغيل أصبح يعمل في مستوى المستخدم بدلاً من مستوى النواة كما كان الحال سابقاً في ويندوز إكس بي وما قبله. بهذه الطريقة فإن أخطاء برنامج التشغيل لم تعُد قاتلة أو تتسبب بشاشة الموت الزرقاء كما كان الوضع سابقاً، مما يعني مزيداً من الثبات لنظام التشغيل ككل.

خط المعالجة البرمجي[عدل]

يقدم بديلاً لمبرمجي التطبيقات لإنجاز الحسابات حتى وإن لم تكن مدعومة على معالج الرسوميات، وذلك عن طريق إنجازها على المعالج المركزي. يشمل خط المعالجة البرمجي في دايركت ثري دي على كافة حسابات تحويل الرؤوس وإضاءتها ومظللات الرؤوس وحسابات رؤوس خط المعالجة الثابت. للمبرمج حرية اختيار أي الحسابات تنفذ على معالج الرسوميات، وأيها ينفذ على خط المعالجة البرمجي. إضافة لذلك، يحوي خط المعالجة البرمجي عدد من المصيـّرات البرمجية أيضاً. بعضها مقبول الأداء (كمصير درجات الرمادي ومصير وارب الذي أضيف في الإصدار الحادي عشر) وبعضها الآخر فقط للمرجعية والتحقق من صحة البرنامج (المصير المرجعي (بالإنجليزية: Reference Rasterizer)). في أغلب الحالات يلاحظ أن أداء خط المعالجة البرمجي أبطأ من معالج الرسوميات، إلا أن مايكروسوفت تستمر في تحسين أداء خط المعالجة البرمجي عن طريق الاستفادة القصوى من قدرات المعالج المركزي وتعليماته المتقدمة (مثل SSE و 3DNow!).

مكتبة امتدادات دايركت ثري دي[عدل]

لا تعتبر جزءاً أساسياً من دايركت ثري دي، بل يستطيع مبرمجو التطبيقات إنجاز كافة مهام الرسم دون الاستعانة بهذه المكتبة، إلا أنها قد اكتسبت أهمية كبيرة في دايركت ثري دي بسبب احتوائها على مترجم المظللات للغة التظليل عالية المستوى، والذي تصعب كتابته أو الاستعاضة عنه بكود مكتوب يدوياً. باستخدام مكتبة امتدادات دايركت ثري دي يستطيع المبرمج إنجاز العديد من المهام الروتينية بسهولة، كتحميل الإكساءات من صيغ الملفات المشهورة وترجمة المظللات وتحميل المجسمات بصيغة ملفات دايركت ثري دي (x.) ورسمها بموادها؛ إضافة إلى مجموعة واسعة من الوظائف الرياضية كتحويل المصفوفات والمتجهات والألوان.

خط المعالجة[عدل]

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

يتبع دايركت ثري دي خط معالجة عام يتشابه مع خطوط المعالجة الموجودة في الأنظمة الأخرى كأوبن جي إل والمصيرات المسحيّة (بالإنجليزية: Scan-line Renderers). لم تختلف الخطوات كثيراً بين الإصدارات المختلفة، إلا أنها توسعت وتفرعت في أغلب الأحيان. كافة الخطوات المذكورة أدناه تتشارك في إمكانيتها للوصول إلى الموارد المختلفة على بطاقة العرض أو الذاكرة الرئيسية في الحاسوب.

عموماً، يتبع دايركت ثري دي خط معالجة بالخطوات المتسلسلة التالية[19]:

تجميع المدخلات[عدل]

تحمل رؤوس المثلثات معلومات مختلفة إضافة إلى الموقع الفراغي، كإحداثيات الإكساء واللون والنواظم. يسمح دايركت ثري دي بأن تـُحفظ كل من هذه المعلومات في سلسلة مستقلة أو أن تجمع في سلسلة واحدة بترتيب ورود محدد. في خطوة تجميع المدخلات يتم جمع معلومات الرأس من كافة المخازن وترتيبها في بنية محددة وصريحة تُرسل للخطوة التالية في خط المعالجة.

معالجة الرؤوس والمجسم[عدل]

تقوم هذه الخطوة بتحويل مواقع الرؤوس لتصبح في ما يدعى بنظام إحداثيات القص (بالإنجليزية: clip space) حيث تتراوح إحداثيات الرؤوس في المجال [1،1-]، وأي إحداثيات خارجة عن هذا المجال تقع خارج سطح الرسم ويتم قصها في الخطوة التالية في خط المعالجة (لذلك يدعى بنظام إحداثيات القص).

بدءاً من الإصدار الثامن، أصبحت هذه الخطوة قابلة للبرمجة المباشرة باستخدام مظلل الرؤوس، على أن يقوم المظلل في النهاية بتخريج إحداثي الرأس في نظام إحداثيات القص.

بدءاً من الإصدار العاشر، أُتبع مظلل الرؤوس بمظلل المجسم (بالإنجليزية: geometry shader). والذي يتميز عن مظلل الرؤوس بإمكانية توليد مجسم كامل انطلاقاً من عدد محدود من الرؤوس المكونة لمضلعات أو قطع مستقيمة أو نقاط (كمثال، توليد مجسم شجرة انطلاقاً من سلسلة رؤوس تمثل هيكل الشجرة). أيضاً يزيل الإصدار العاشر من دايركت ثري دي ضرورة تخريج موقع الرأس في نظام إحداثيات القص إن كانت نتائج المظلل ستذهب إلى خطوة تخريج الدفق في خط المعالجة بدلاً من خطوة الرسترة أو التصيير.

تخريج الدفق[عدل]

هذه الخطوة متوفرة في الإصدار العاشر وما بعده فقط. يستطيع المبرمج توجيه دفق نتائج حسابات مظلل الرؤوس ومظلل المجسم لتتم كتابتها في ذاكرة وسيطة أو مخزن جانبي بدلاً من إرسالها لبقية خط المعالجة. في هذه الحالة يمكن استخدام النتائج في جولات حسابية أخرى أو قراءتها على المعالج المركزي والاستفادة منها.

رسترة البكسلات[عدل]

كافة المضلعات والخطوط والنقاط المعالجة يتم تحويلها/تصييرها إلى بكسلات على سطح الرسم. هنا أيضاً يتم قص المضلعات الخارجة عن سطح الرسم، كما تتم عملية استيفاء المعلومات المحمولة في كل رأس (كاللون وإحداثيات الإكساء) عبر البكسلات التي يغطيها المضلع على سطح الرسم تمهيداً لإرسالها إلى مظلل البكسلات.

معالجة البكسلات[عدل]

يلي تحديد موقع بكسلات المضلع تحديد قيمتها اللونية. يتم تمرير القيم المستوفاة في خطوة الرسترة إلى مظلل البكسلات (أو مراحل الإكساء (بالإنجليزية: texture stages) كما كانت تدعى في الإصدارات السابقة)، حيث يتم حساب القيمة اللونية لكل بكسل قبل تمريرها للخطوة التالية والأخيرة في خط المعالجة. في الإصدار التاسع أضيفت إمكانية حساب عمق البكسل في مظلل البكسلات أيضاً، مما يعني أن قص البكسل يجب أن يحدث بعد تنفيذ حسابات مظلل البكسلات بدلاً من أن يتم قبل ذلك.

دمج الخرج[عدل]

تسجيل القيمة اللونية للبكسل وقيمة العمق على سطح الرسم. يمكن أيضاً إعداد هذه الخطوة لتقوم بعملية دمج بين لون البكسل المحسوب مع لون البكسل المسجل سابقاً في سطح الرسم وذلك لتحقيق مؤثرات مثل دمج ألفا والدمج الجمعي (بالإنجليزية: additive blending).

أنماط العرض[عدل]

يستطيع المبرمج أن يستخدم دايركت ثري دي لعرض المحتوى الثلاثي الأبعاد في نافذة في برنامجه أو أن يجعل البرنامج يحتل كامل مساحة الشاشة[21].

ضمن نافذة[عدل]

في هذا النمط يتم إظهار نتائج الرسم ضمن مربع نافذة يحددها المبرمج في برنامجه. من الأمثلة على هذا النمط نوافذ الرؤية في برنامج ثري دي ستوديو ماكس. في أنظمة التشغيل السابقة لويندوز فيستا، يتم إظهار كل لقطة في النافذة عن طريق تعليمة نقل وتحجيم بيت بليت بدلاً من عملية قلب الصفحة (بالإنجليزية: page flip) وذلك لأن الإظهار لا يشمل كامل الشاشة، وبالتالي لا يمكن قلب كافة صفحة الشاشة.

كامل الشاشة[عدل]

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

أدوات متعلقة[عدل]

محقق الأداء لإكس بوكس (بيكس)[عدل]

انطلاقاً من عدة تطوير الإصدار التاسع من دايركت إكس، تم طرح نسخة من برنامج محقق الأداء لإكس بوكس (اختصاراً، بيكس) لتعمل على ويندوز. يستطيع المبرمج أن يستخدم بيكس لحفظ لقطة من برنامجه وتحليلها واستعراض كافة النداءات التي وُجهت لدايركت ثري دي ورؤية نتيجة كل نداء وحالة جهاز الرسم أثناء تنفيذ النداء[22]. يُستخدم بيكس بكثرة لتقصي أخطاء الرسم وتحليل الأساليب المتقدمة للوصول إلى التأثيرات الرسومية في لعبة ما. يستمر تجديد بيكس لويندوز في كل إصدار من عدة التطوير حتى آخرها، مقدماً في ذلك دعم للإصدار العاشر والحادي عشر من دايركت ثري دي.

مترجم المظللات (إف إكس سي)[عدل]

أداة ملحقة مع عدة تطوير دايركت إكس يمكن استدعاؤها من سطر الأوامر لترجمة المظللات المحفوظة في ملفات (fx.) أو غيرها[23].

مراجع[عدل]

  1. ^ مقابلة مسجلة مع ستيف ليسي، من فريق ريندر مورفيكس يتحدث عن تاريخ دايركت إكس - تحديداً دايركت ثري دي - القناة التاسعة لمايكروسوفت
  2. ^ وثائق عدة تطوير دايركت إكس 2.0 - مايكروسوفت
  3. ^ وثائق عدة تطوير دايركت إكس 3.0 - مايكروسوفت
  4. ^ أ ب وثائق عدة تطوير دايركت إكس 5.2 - مايكروسوفت
  5. ^ وثائق عدة تطوير دايركت إكس 6.0 و 6.1 - مايكروسوفت
  6. ^ وثائق عدة تطوير دايركت إكس 7.0 - مايكروسوفت
  7. ^ وثائق عدة تطوير دايركت إكس 8.0 و 8.1 - مايكروسوفت
  8. ^ أ ب وثائق عدة تطوير دايركت إكس 9.0a - مايكروسوفت
  9. ^ تصريح من فريق تطوير دايركت إكس عن تغيير توقيت الإصدارات الثنائي-شهرية لتصبح إصدارات ربع-سنوية
  10. ^ موضوع عن دور دايركت ثري دي 9L في ويندوز إكس بي وويندوز فيستا، مع تصريح من فريق تطوير دايركت ثري دي
  11. ^ تغطية مؤتمر عن معمارية نظام الرسم في ويندوز فيستا (لونجهورن سابقاً)
  12. ^ مقال عن التحسينات في دايركت ثري دي 9 إكس
  13. ^ Tom Miller: Managed DirectX 9 Kick Start: Graphics and Game Programming, Sams, ISBN 0-672-32596-9
  14. ^ سلسلة تدوينات عن دايركت إكس المدار - توم ميلر
  15. ^ مقال على موقع Beyond3D يتحدث عن مزايا دايركت ثري دي 10 المستقبلية باسم دايركت إكس نيكست
  16. ^ وثائق عدة تطوير دايركت إكس 10.0 و 10.1 - مايكروسوفت
  17. ^ وثائق عدة تطوير دايركت إكس 11.0 - مايكروسوفت
  18. ^ الإصدار الأخير من وثائق عدة تطوير دايركت إكس على موقع شبكة مطوري مايكروسوفت
  19. ^ أ ب معمارية دايركت ثري دي 9 في وثائق عدة التطوير - مايكروسوفت
  20. ^ وثائق عدة تطوير برامج التشغيل لدايركت ثري دي - مايكروسوفت
  21. ^ أنماط العرض في دايركت ثري دي 9 في وثائق عدة التطوير - مايكروسوفت
  22. ^ وثائق استخدام بيكس في عدة التطوير - مايكروسوفت
  23. ^ مقال عن مترجم المظللات 'إف إكس سي' في وثائق عدة التطوير - مايكروسوفت

وصلات خارجية[عدل]