Direct X ؟؟؟؟؟؟؟؟؟؟؟؟؟

TAMMAMTAMMAM عضو ذهبي
تم تعديل 2010/05/22 في المنتدى التقني
لا يخفى عل الكثيرن منا ممن يتعاملون بالألعاب وممن هم هواة لألعاب الحاسب برنامج يسمى Direct X

ولكن ما أهميتها بالنسبة للمبرمجين إليكم النقل التالي :


[COLOR="rgb(255, 0, 255)"]دليلك إلى تقنية DirectX[/COLOR]
أصبح لدى مطوري تطبيقات الألعاب وسيلة لإنشاء وظائف الوصول المباشر إلى العتاد ضمن برامجهم.
أطلق مطوّرو نظام ويندوز95 وعوداً براقة، مثل المرشحين السياسيين في أيام الانتخابات، بأن يجعلوا نظام التشغيل الجديد (ويندوز95) حياة المستخدمين والمبرمجين أسهل. لكن، ومثل كثير من وعود الحملات الانتخابية، لم تتحقق هذه الوعود إلا جزئياً، إذ قلّت معاناة مستخدمي نظام التشغيل الجديد، لكن لم يتفق الجميع على أن ذلك حدث للمبرمجين أيضاً.

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

لكن نظام التشغيل ويندوز95 لم يحقق كل أحلام المبرمجين، فهو يعاني من الضعف فيما يتعلق ببرمجة تطبيقات الملتيميديا بكل فعالياتها. طورت مايكروسوفت، لتلافي ذلك، تقنية خاصة لمطوري الألعاب، دعيت باسم WinG، ثم عرفت بتقنية DirectX، وكانت أحدث إصدارة طرحتها منها، هي الإصدارة في ذلك الوقت هي 5.0، والتي بدأت تحقق وعود مايكروسوفت الأولى بتسهيل برمجة تطبيقات الملتيميديا. (يلاحظ أنه لأسباب تسويقية خاصة بشركة مايكروسوفت، انتقلت من الإصدارة 3.0 لتقنية DirectX إلى الإصدارة 5.0، وهذا ما فعلته سابقاً بالنسبة لمنتجات أخرى، عندما انتقلت ببرنامج وورد من الإصدارة 2.0 إلى الإصدارة 6.0(.

تقنية DirectX عبارة عن مجموعة من وظائف API (Application Programming Interface) (واجهة برمجة التطبيقات) وأدوات البرمجة، التي تتيح لمبرمجي تطبيقات ويندوز، إمكانية الوصول إلى العتاد ( Hardware) من ضمن التطبيقات، بدون الحاجة إلى معرفة تفصيلات مواصفاته ضمن مختلف أنواع الكمبيوترات. وبعبارة أخرى، تسمح تقنية DirectX، للمبرمجين بالوصول لنوع معين من العتاد بطريقة عامة، بدون أن يضطروا للاقتصار على استخدام الميزات القياسية منخفضة المستوى، والتي يشترك فيها أعضاء ذلك النوع. وهذا يعني بالنسبة للبطاقات الرسومية، مثلاً، أنه يمكن الاستفادة من الميزات المتقدمة المتوفرة في بعض أنواعها، كميزة دعم الرسوميات ثلاثية الأبعاد، بدون أن يضطر المبرمج لكتابة مقاطع من التطبيق خاصة بكل بطاقة على حدة، من بطاقات ATI، وDiamond، وMatrox، وNumber9، مثلاً، أو أية بطاقات أخرى تدعم الرسم ثلاثي الأبعاد. تعمل وظائف DirectX كوسيط بين التطبيق، وبرنامج قيادة العتاد، (برنامج قيادة العتاد، هو جزء من البرمجيات التي تسمح لنظام التشغيل بالاتصال بقطعة العتاد)، وتترجم أوامر التطبيق العامة إلى أوامر متعلقة بالعتاد.

[COLOR="rgb(255, 0, 255)"]الغاية من DirectX[/COLOR]
الهدف الرئيسي من إطلاق تقنية DirectX هو جعل نظام التشغيل ويندوز، منصة جيدة لتشغيل تطبيقات الألعاب. وهذه التطبيقات كانت على الدوام الدافع وراء زيادة الإمكانيات التقنية لمكونات الأجهزة الشخصية، فبطاقات الرسوميات، التي تتجاوز كثافتها النقطية معيار EGA، وبطاقات الصوت، طورت أصلاً لتلبي الحاجات التقنية لمطوري الألعاب. وهذا يجب أن يقابله تطور مقابل من طرف البرمجيات. لكن نظام التشغيل ويندوز كان في أيامه المبكرة، بطيئاً جداً، وقليل المرونة، مما يجعله قاصراً عن أن يكون صالحاً كبيئة لتشغيل الألعاب. ويعود ذلك بشكل رئيسي، إلى عدم توفيره إمكانية الوصول المباشر للعتاد، مما جعل معظم مصممي الألعاب يهملونه، بسبب الأداء المنخفض الذي يوفره، ويختارون تشغيل الألعاب ضمن نافذة دوس (الاحظ ان الكلام دلوقتي في الفتره الاولي لظهور تقنيه Direct X يعني حوالي سنه 95 ) ، أو تحت نسخة خاصة من دوس، تحمّل من أقراص إقلاع توزع مع الألعاب، أو بإجبار المستخدم على إعادة التشغيل في وضع دوس، قبل تشغيل اللعبة. لكن برامج القيادة المستخدمة في هذه الحالات، هي من عيار 16 بت لدوس، وليست برامج القيادة الافتراضية (virtual drivers) لويندوز95 من عيار 32 بت، وهذا يعني حدوث المشكلة تلو المشكلة للمستخدمين، فكم منهم اشترى ألعاباً، ثم حاول تشغيلها على جهازه بدون فائدة، لذلك طورت وظائف DirectX في محاولة لحل هذه المشكلات.
ما إن انتشر استخدام الملتيميديا في التطبيقات الرئيسية، حتى توقف اعتبار DirectX تقنية خاصة بالألعاب فقط. فإذا ركبت المتصفح إنترنت إكسبلورر 4.0، مثلاً، فإنك تركب معه، أيضاً، مكتبة وظائف DirectX 5.0، والتي تتألف من خمسة مكونات هي: DirectDraw، وDirectSound، وDirect3D، وDirectShow، وDirectAnimation، والتي سوف نتحدث عنها لاحقاً. لكن الأمر المهم في جعلها جزءاً من برنامج إنترنت إكسبلورر 4.0، أنها انتقلت بوضوح إلى مجال الاستخدام الرئيسي. وسوف نلاحظ ظهور عدد متزايد من تطبيقات الملتيميديا والوثائق التي تعتمد على وظائف DirectX لكي تعمل بشكل صحيح. و انتقلت تقنية DirectX تماماً إلى مجال الاستخدام الرئيسي، مع طرح ويندوز98 وويندوز إن.تي 5.0، حيث اصبح جزءاً مدمجاً في نظام التشغيل، وتعمل يداً بيد مع النموذج الجديد لبرامج القيادة Win32 Driver Model (WDM)، مما يسمح بسرعة أكبر ودعم أكمل للعتاد

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

[COLOR="rgb(255, 0, 255)"]أساس DirectX[/COLOR]
سنتحدث فيما يلي عن مكوناتها. ونبدأ بطبقة "أساس DirectX" (DirectX Foundation)، والذي يتكون من مجموعة تقنيات تسمح بالوصول إلى مختلف أنواع العتاد، ويتضمن وظائف DirectDraw، وDirectSound، وDirectInput وDirect3D. يعتمد "أساس DirectX" على واجهتين بينيتين للوصول إلى العتاد وهما: طبقة Hardware Abstraction Layer (طبقة تجريد العتاد)، اختصاراً (HAL)، التي تعمل كوسيط بين البرمجيات وأنواع التجهيزات العتادية، فتسمح للمطورين بالوصول إلى تلك الأجهزة بدون الحاجة إلى معرفة طرازها وتفاصيلها الأخرى، وطبقة Hardware Emulation Layer ، (طبقة محاكاة العتاد)، اختصاراً (HEL)، والتي تحاكى فيها ميزات DirectX، إذا كان الجهاز ذاته لا يدعم تلك الميزات. الميزة التي تتم محاكاتها كثيراً، هي إمكانية الرسم ثلاثي الأبعاد (3D)، إذ لا تدعمها كثير من مسرعات الرسوميات، لكنها تستخدم بشكل متزايد في تطبيقات الملتيميديا والألعاب. ومن الواضح أن محاكاة وجود ميزة الرسوميات ثلاثية الأبعاد ليست بجودة وجودها فعلاً، لكن ذلك يسمح للمطورين، على الأقل، بتطوير إصدارة واحدة من البرنامج.

يوفر وجود أساس DirectX، الأسس لبناء نظام مؤلف من وحدات بنائية. تدعى تلك الوحدات "المكونات" (components)، وعددها مستمر في النمو مع تطوير نظام التشغيل. فتقنيات مختلفة، كتقنية ActiveX مثلاً، تتألف من "مكونات" تستدعي وظائف DirectX، لكي تنفذ وظائف الملتيميديا، وتعمل وظائف DirectX، أيضاً، يداً بيد مع وظائف Graphics Device Interface (GDI) (الواجهة البينية للأجهزة الرسومية)، لكي تنجز مهماتها. صممت تقنية DirectX 5.0 لتعمل أيضاً مع تقنيةTalisman القادمة، حيث تأمل شركة مايكروسوفت أن توفر مع طرحها لتقنية Talisman مواصفات قياسية (أو على الأقل مواصفات قياسية لويندوز)، تعمل مباشرة مع العتاد لإظهار رسوميات ثلاثية الأبعاد أفضل، عبر الجمع بين أقوى التقنيات في مجال معالجة الصور لتنعيم الحواف (antialiasing) (إلغاء تكسر حواف العناصر في الصور النقطية) ، وللترشيح النسيجي (إلغاء ظهور الحواف الضبابية عندما تدور أجزاء من الصورة)، ولتحريك الصور.

[COLOR="rgb(255, 0, 255)"]DirectDr[/COLOR]

كان طرح المكون DirectDraw، البداية القوية لتقنية DirectX، حيث يوفر إمكانية الوصول إلى العتاد، بشكل مباشر أكثر مما كان ممكناً من قبل، عبر برامج القيادة الافتراضية للأجهزة في ويندوز95، وهو ما يؤدي إلى زيادة سرعة عرض الرسوميات، ويعد أمراً ضرورياً لتنفيذ ألعاب ناجحة. أصبح مطورو الألعاب بعد طرح DirectDraw، أخيراً، قادرين على اعتبار نظام التشغيل ويندوز95 منصة ألعاب جيدة. واستخدمت تطبيقات الملتيميديا الأخرى، أيضاً، هذه التقنية، مما أدى إلى ازدياد شعبيتها. تعمل وظائف DirectDraw بالاشتراك مع وظائف طبقتي HAL وHEL، وتوفر للمطورين واجهة استخدام بينية عامة للأجهزة العتادية، بينما يحدث التفاعل الفعلي مع العتاد على مستوى طبقة HAL. وإذا كان العتاد غير متوافق مع ميزة يطلبها برنامج معين، فإن طبقة HEL سوف تحاول أن تحاكي هذه الميزة بأقرب ما يمكن.
تعتبر وظائف DirectDraw، من عدة أوجه، مديراً لذاكرة الفيديو فقط، فهي توفر واجهة بينية للتعامل مع ذاكرة الفيديو، عبر استخدامها أربعة كائنات هيirectDraw، وDirectDrawSurface وDirectDrawPallette، وDirectDrawClipper.
DirectDraw، هو الكائن الرئيسي، ويمثل الجهاز الذي يطلب الوصول إليه. ويمكن أن يضبط لتشغيل التطبيق في شاشة كاملة أو وضع نافذة، أو حتى في الوضع الانفرادي (exclusive mode)، في حال أراد المطور أن يضمن عدم وصول البرامج الأخرى إلى الجهاز العتادي ذاته. يمكن برمجة كائن DirectDraw، أيضاً، لضبط الكثافة النقطية للشاشة، ويتزايد عدد الألعاب التي تستخدم هذه الميزة، لتغيير الكثافة النقطية مباشرة، بدون إعادة تشغيل الكمبيوتر، أو اللعبة ذاتها.
تسمح كائنات DirectDrawSurface بالتعامل مع الرسوميات المحفوظة في الذاكرة. تقسم سطوح الصورة المحفوظة إلى سطوح رئيسية (وهي الموجودة على الشاشة حالياً)، وسطوح موجودة في الذاكرة الوسيطة (buffer) الخلفية (وهي جاهزة للظهور على الشاشة)، وسطوح موجودة خارج ذاكرة الشاشة (والتي تنتظر إدخالها في رتل الانتظار). وتقضي فكرة التعامل مع الرسوميات المخزنة، نقل بيانات الرسوميات من ذاكرة السطوح الموجودة خارج ذاكرة الشاشة إلى الذاكرة الوسيطة الخلفية، ثم من الذاكرة الوسيطة الخلفية إلى ذاكرة السطوح الرئيسية.
تسمح كائنات DirectDrawPalette بإنشاء لوحة ألوان (palette) لكل سطح، تتكون من 256 لوناً، أو بإنشاء ألواح ألوان مشتركة لجميع السطوح.
يوفر كائن DirectDrawClipper طريقة لتجاوز وظائف GDI، بالنسبة للتطبيقات المصممة لتعمل ضمن ويندوز، مما يمنع التأخير في عرض الرسوميات.

[COLOR="rgb(255, 0, 255)"]DirectSound وDirectInput[/COLOR]
يعمل مكون DirectSound كواجهة بينية لعتاد الصوت والموسيقى. فهو يتضمن آلية لتشغيل الملفات من نوع WAV، والاستفادة من الذاكرات الوسيطة الرئيسية، والثانوية، والساكنة، والتدفقية (streaming).
الذاكرة الوسيطة الرئيسية، هي التي يستخدمها الكمبيوتر أثناء تشغيله للمقاطع الصوتية، فتسحب البيانات الصوتية من الذاكرات الوسيطة الثانوية (حيث يخصص لكل ملف من نوع WAV ذاكرة وسيطة ثانوية منفصلة)، أما الملفات الصوتية الصغيرة، فتحفظ في ذاكرات وسيطة ساكنة، لتوفير الوصول السريع لها، بينما تحمل الملفات الأطول جزئياً ثم تمرر في الذاكرات الوسيطة التدفقية. يحتوي DirectSound على مازج يتحكم في كل بارامترات الصوت، بدءاً من شدته إلى التأثيرات ثلاثية الأبعاد، وتحميل بياناته في الذاكرات الوسيطة الثانوية.
يوفر مكون DirectInput واجهة ربط بينية لأجهزة الدخل (معظمها أدوات للتحكم بالألعاب)، حيث يرغب معظم اللاعبين باستخدام عصا الألعاب وأجهزة التحكم الأخرى، ويدعم حتى 16 عصا ألعاب، و32 زر تحكم، و6 محاور حركة. وهو مطور للهدف ذاته، وهو السماح للمطورين ببرمجة هذه الأجهزة بدون الدخول في تفصيلاتها، بينما تتولى طبقتا HAL أو HEL التعامل مع العتاد الحقيقي. لا يقتصر مكون DirectInput على توفير إمكانية التعامل مع أدوات التحكم بالألعاب، فهو، من ناحية أخرى، واجهة الربط البيني لعناصر دخل أخرى، مثل جداول الرسوميات.

[COLOR="rgb(255, 0, 255)"]طبقتا المكونات والوسائط[/COLOR]
توجد طبقة الوسائط (media layer) فوق طبقة أساس DirectX. ويستطيع المطورون عبر هذه الطبقة، دمج مكونات طبقة الأساس لإنتاج تطبيقات ملتيميديا حقيقية. يمكن أن توجد مثل هذه الفعاليات عالية المستوى حتى في طبقة المكونات عالية المستوى (high-level components)، والتي تتألف من تطبيقات مبنية فوق طبقتي الأساس والوسائط. تتضمن هذه المكونات برامج NetMeeting، وNetShow،

تتألف طبقة الوسائط من: DirectShow، وDirectModel، وDirect3D Retained Mode، وVRML .
يعتبر مكون DirectShow، أحد الأمثلة على بناء وظائف معينة في نظام التشغيل، كانت توفرها، سابقاً، شركات أخرى عبر البرامج الملحقة (plug-in) أو البرامج المضافة (add-in). يقدم هذا المكون الوسيلة التي تسمح بتشغيل ملفات الصوت والفيديو من مختلف الهيئات، مثل QuickTime، وAVI، وWAV، وMPEG. ويفعل ذلك بواسطة سلسلة من المرشحات المتكاملة، التي تتفاعل مع طبقة الأساس تبعاً للفعاليات المطلوب إنجازها. توصل هذه المرشحات معاً، في مخطط المرشحات (filter graph)، مما يسمح لها بإنجاز وظائف معقدة. توصل المرشحات مع سيل البيانات عبر مدير المخطط (graph manager).
توفر مكونات طبقة الوسائط الأخرى وظائف مشابه عالية المستوى، صمم كل منها لمساعدة المطورين في استثمار أفضل الإمكانيات الموجودة في عتاد الملتيميديا، ويستحق كل منها مقالاً مستقلاً بحجم هذا المقال، لكن، بسبب ضيق المساحة المتاحة، سوف نتحدث عن كل منها بشكل عام، فقط.
يوفر مكون DirectModel وسيلة لتغطية الكائنات الرسومية الكبيرة ثلاثية الأبعاد والتفاعل معها، وهي الكائنات التي لا تتسع لها الذاكرة الفيزيائية أو الافتراضية.
يسمح مكون DirectAnimation للمطورين بجمع الصوت والصور المتحركة، والصور، والنصوص (ثنائية وثلاثية الأبعاد)، مع مصاحبتها بأحداث مؤقتة من المستخدم، لكي يقدم مزيجاً من الوسائط المتحركة.
صمم مكونDirectPlay بشكل خاص، لممارسة الألعاب على الشبكة، حيث يسمح بتشغيل الملتيميديا عبر الشبكة، وإيجاد الألعاب الجارية حالياً (في صالة الألعاب)، وتبادل الرسائل بين اللاعبين. يستخدم موقع Microsoft's Internet Zone ([ يتوجب عليك التسجيل لمشاهدة الرابط ]) كامل ميزات مكون Directplay، للعب عبر شبكة إنترنت.
تستخدم لغة VRML (Virtual Realty Modeling ********)، تقنية DirectX لكي تبني العوالم الافتراضية ثلاثية الأبعاد في متصفحات ويب، مما يسرع كثيراً عملية الرسم في هذه العوالم.
يسمح Direct3D Retained Mode، للمطورين بمزج الوسائط لإنشاء مشاهد ثلاثية الأبعاد، بالإضافة إلى إدارة هذه المشاهد في التطبيقات. ويسمح نظام الملفات في Direct3D بحفظ مجموعات الحركة، التي تتضمن ترتيب الكائنات، ومسار الحركة، لكي يتم استرجاع الحركة بشكل صحيح، بالإضافة إلى أنه يسمح بحفظ البنية النسيجية والشبكية للصورة، والتفاصيل الأخرى اللازمة للتغطية ثلاثية الأبعاد. Direct3D Retained Mode أحد مكونين فقط، متاحين في DirectX، لدعم الرسوميات ثلاثية الأبعاد، لكنه أصبح اليوم أكثر قوة، بينما يوفر المكون ثلاثي الأبعاد الآخر Direct3D Immediate Mode، والذي يقيم في طبقة الأساس من DirectX، وصولاً مباشراً أكثر لميزات العتاد. وهذا يناسب المبرمجين المتمرسين في تطوير الرسوميات ثلاثيات الأبعاد، حيث يتيح لهم سرعة ومرونة أكبر، لكن تغطية جميع المشاهد وإدارتها ستقع عندها على عاتقهم.
وجود تقنية DirectX أمر ضروري فقط، لاستمرار الكمبيوترات الشخصية كنظم مفتوحة، يدخل في تصنيع مكوناتها عدد هائل من مصنعي أجهزة الملتيميديا، (مثل بطاقات الصوت والرسوميات)، والذين يقدمون منتجات تزداد تعقيداً يوما بعد يوم. وإذا افترضنا توفر مواصفات قياسية حقيقية للمنتجات الصوتية والرسومية، فسيتمكن المطورون من تصميم البرامج المناسبة للعتاد، بدون الحاجة لطبقة عازلة بين العتاد والبرمجيات، كالتي توفرها تقنية DirectX. لكن أحد أهداف فريق التطوير في مايكروسوفت (خاصة مطوري نظام التشغيل ويندوز إن.تي) هو منع الوصول المباشر إلى العتاد، مما يلغي إمكانية انهيار النظام، لدى محاولة أحد التطبيقات غير المتقنة، الوصول المباشر إلى العتاد.
لا يستفيد كل شخص من الحل الذي تقدمه تقنية DirectX، لأنه خاص بنظام التشغيل ويندوز فقط، ويقع تحت سيطرة شركة مايكروسوفت، لكن لا ريب أن تقنية DirectX جعلت انتشار الملتيميديا في نظم ويندوز أفضل، ومكنت من استخدامها على شبكة إنترنت، أيضاً.

منقوووووووووووووووووووووووووول

التعليقات

  • دكتوربالفطرةدكتوربالفطرة عضو مميز
    تم تعديل 2010/05/20
    مشكور تمام للمعلومة بس في سؤال كل لعبة بيجي فيها DirectX لازم ننزله ولا بيكفي مرة وحدة لان ابني كل مرة بنزله مع اللعبة ؟!
  • TAMMAMTAMMAM عضو ذهبي
    تم تعديل 2010/05/20
    لا مرة واحدة فقط علما أن أغلب تعاريف كروت الشاشة ( بطاقة العرض ) تقوم باحتواء هذا البرنامج ضمن أقراصها ..... وبعضها يقوم بتنصيبه تلقائيا

    ولكن مرة واحدة تكفي ويفضل آخر اصدار
  • دكتوربالفطرةدكتوربالفطرة عضو مميز
    تم تعديل 2010/05/22
    مشكور أخي تمام