Direct3D

Direct3D هي واجهة برمجة تطبيقات رسومية (API) لنظام التشغيل مايكروسوفت ويندوز . تُعد Direct3D جزءًا من DirectX ، وتُستخدم لعرض الرسومات ثلاثية الأبعاد في التطبيقات التي تتطلب أداءً عاليًا، مثل الألعاب. تستخدم Direct3D تسريع الأجهزة إذا كان متاحًا في بطاقة الرسومات ، مما يسمح بتسريع مسار عرض الرسومات ثلاثية الأبعاد بالكامل أو حتى تسريع جزء منه. تُتيح Direct3D الاستفادة من إمكانيات الرسومات المتقدمة لأجهزة الرسومات ثلاثية الأبعاد، بما في ذلك التخزين المؤقت للعمق (Z-buffering ) [ 1 ] ، والتخزين المؤقت للعرض ( W-buffering) [ 2 ] ، وتخزين الاستنسل المؤقت ، ومكافحة التعرج المكاني ، ومزج ألفا ، ومزج الألوان، ورسم الخرائط متعددة المستويات (mipmapping ) ، ومزج النسيج [ 3 ] [ 4 ] ، والقص ، والاستبعاد ، والتأثيرات الجوية، ورسم خرائط النسيج المصححة للمنظور ، ومظللات HLSL القابلة للبرمجة [ 5 والتأثيرات. [ 6 ] يتيح التكامل مع تقنيات DirectX الأخرى لـ Direct3D تقديم ميزات مثل رسم خرائط الفيديو، وعرض ثلاثي الأبعاد للأجهزة في مستويات تراكب ثنائية الأبعاد ، وحتى الصور المتحركة ، مما يوفر استخدام الرسومات ثنائية وثلاثية الأبعاد في روابط الوسائط التفاعلية.

يحتوي Direct3D على العديد من الأوامر لعرض رسومات الحاسوب ثلاثية الأبعاد ؛ ومع ذلك، منذ الإصدار 8، حلّ Direct3D محل إطار عمل DirectDraw ، وتولى أيضًا مسؤولية عرض الرسومات ثنائية الأبعاد . [ 7 ] تسعى مايكروسوفت باستمرار إلى تحديث Direct3D لدعم أحدث التقنيات المتاحة في بطاقات الرسومات ثلاثية الأبعاد. يوفر Direct3D محاكاة برمجية كاملة للرؤوس ، ولكنه لا يوفر محاكاة برمجية للبكسل للميزات غير المتوفرة في الأجهزة. على سبيل المثال، إذا كان البرنامج المبرمج باستخدام Direct3D يتطلب مُظلِّلات بكسل ، وكانت بطاقة الفيديو في جهاز المستخدم لا تدعم هذه الميزة، فلن يقوم Direct3D بمحاكاتها، على الرغم من أنه سيحسب ويعرض المضلعات والنسيج للنماذج ثلاثية الأبعاد، ولكن بجودة وأداء أقل عادةً مقارنةً بنظيرتها في الأجهزة. تتضمن واجهة برمجة التطبيقات (API) مُرَسِّمًا مرجعيًا (أو جهاز REF)، والذي يحاكي بطاقة رسومات عامة في البرمجيات، على الرغم من أنه بطيء جدًا بالنسبة لمعظم تطبيقات ثلاثية الأبعاد في الوقت الفعلي، ويُستخدم عادةً فقط لأغراض تصحيح الأخطاء. يتضمن نظاما التشغيل ويندوز 7 وويندوز فيستا حزمة الخدمة الثانية مع تحديث النظام الأساسي برنامجًا جديدًا لتحويل الصور النقطية في الوقت الفعلي، يُدعى WARP ، مصممًا لمحاكاة مجموعة الميزات الكاملة لـ Direct3D 10.1 ؛ ويُقال إن أداءه يُضاهي أداء بطاقات الرسومات ثلاثية الأبعاد منخفضة الأداء على وحدات المعالجة المركزية متعددة النوى. [ 8 ]

كجزء من DirectX ، يتوفر Direct3D لأنظمة Windows 95 والإصدارات الأحدث، وهو الأساس لواجهة برمجة تطبيقات الرسومات المتجهة في مختلف إصدارات أنظمة Xbox . تتضمن طبقة توافق Wine ، وهي برنامج مجاني يُعيد تنفيذ العديد من واجهات برمجة تطبيقات Windows، تطبيقًا لـ Direct3D.

المنافس الرئيسي لـ Direct3D هو OpenGL من Khronos و Vulkan الذي تلاه . كان مشروع Fahrenheit محاولة من مايكروسوفت و SGI لتوحيد OpenGL وDirect3D في التسعينيات، لكنه أُلغي في النهاية.

ملخص

Direct3D 2.0 و 3.0

في عام 1992، أسس كل من سيرفان كيوندجيان، ودوغ رابسون، وكيت سيكينغز شركةً باسم ريندرمورفيكس، والتي طورت واجهة برمجة تطبيقات رسومية ثلاثية الأبعاد تُسمى ريالييتي لاب ، والتي استُخدمت في برامج التصوير الطبي وبرامج التصميم بمساعدة الحاسوب (CAD). [ 15 ] صدرت نسختان من هذه الواجهة. [ 16 ] استحوذت مايكروسوفت على ريندرمورفيكس في فبراير 1995، وانضم إليها فريقها لتطوير محرك رسوميات ثلاثية الأبعاد لنظام ويندوز 95.  [ 17 ] صدرت النسخة الأولى من دايركت ثري دي ضمن دايركت إكس 2.0 (2 يونيو 1996) ودايركت إكس 3.0 (26 سبتمبر 1996).

طبّقت Direct3D في البداية واجهة برمجة تطبيقات ثلاثية الأبعاد " للوضع الفوري "، ثم أضافت إليها واجهة برمجة تطبيقات ثلاثية الأبعاد " للوضع المُحتفظ به ". [ 18 ] كان كلا النوعين من واجهات برمجة التطبيقات مُتاحين بالفعل مع الإصدار الثاني من Reality Lab قبل إصدار Direct3D. [ 16 ] ومثل واجهات برمجة تطبيقات DirectX الأخرى، مثل DirectDraw ، اعتمدت كلتاهما على COM . كانت واجهة برمجة تطبيقات الوضع المُحتفظ به عبارة عن واجهة برمجة تطبيقات لمخطط المشهد ، ولم تحظَ بانتشار واسع. طالب مطورو الألعاب بتحكم مباشر أكبر في أنشطة الجهاز مما كان يوفره الوضع المُحتفظ به في Direct3D. لعبتان فقط حققتا مبيعات كبيرة، وهما Lego Island و Lego Rock Raiders ، اعتمدتا على الوضع المُحتفظ به في Direct3D، لذلك لم تُحدّث مايكروسوفت واجهة برمجة تطبيقات الوضع المُحتفظ به بعد DirectX 3.0.

في DirectX 2.0 و3.0، استخدم وضع Direct3D الفوري نموذج برمجة "مخزن التنفيذ المؤقت"، الذي كانت مايكروسوفت تأمل أن يدعمه مصنّعو الأجهزة بشكل مباشر. كان من المفترض أن تُخصص مخازن التنفيذ المؤقتة في ذاكرة الجهاز، وأن يقوم الجهاز بتحليلها لتنفيذ عملية العرض ثلاثي الأبعاد. إلا أن برمجتها كانت تُعتبر معقدة للغاية في ذلك الوقت، مما أعاق اعتماد واجهة برمجة التطبيقات الجديدة، ودفع إلى مطالبات لمايكروسوفت باعتماد OpenGL كواجهة برمجة تطبيقات رسمية للعرض ثلاثي الأبعاد للألعاب وتطبيقات محطات العمل. [ 19 ]

بدلاً من اعتماد OpenGL كواجهة برمجة تطبيقات للألعاب، اختارت مايكروسوفت مواصلة تحسين Direct3D، ليس فقط لتكون قادرة على المنافسة مع OpenGL، ولكن للتنافس بشكل أكثر فعالية مع واجهات برمجة التطبيقات الاحتكارية الأخرى مثل Glide من 3dfx .

منذ البداية، دعم الوضع الفوري أيضًا عرض تاليسمان المتجانب باستخدام طرق BeginScene/EndScene الخاصة بواجهة IDirect3DDevice.

Direct3D 4.0

لم تكن هناك تغييرات جوهرية مخططة لـ Direct3D لـ DirectX 4.0 ، والذي كان من المقرر إصداره في أواخر عام 1996 ثم تم إلغاؤه. [ 20 ]

Direct3D 5.0

في ديسمبر 1996، تولى فريق في ريدموند تطوير وضع Direct3D الفوري، بينما واصل فريق RenderMorphics في لندن العمل على الوضع المُحتفظ به. أضاف فريق ريدموند واجهة برمجة التطبيقات DrawPrimitive التي ألغت حاجة التطبيقات إلى إنشاء مخازن مؤقتة للتنفيذ، مما جعل Direct3D أقرب شبهاً بواجهات برمجة تطبيقات العرض الفوري الأخرى مثل Glide و OpenGL . صدرت النسخة التجريبية الأولى من DrawPrimitive في فبراير 1997، [ 21 ] وصدرت النسخة النهائية مع DirectX 5.0 في أغسطس 1997. [ 22 ]

إلى جانب تقديم واجهة برمجة تطبيقات الوضع الفوري الأسهل استخدامًا، أضاف DirectX 5.0 طريقة SetRenderTarget التي مكّنت أجهزة Direct3D من كتابة مخرجاتها الرسومية إلى مجموعة متنوعة من أسطح DirectDraw. [ 23 ]

Direct3D 6.0

قدّم DirectX 6.0 (الذي صدر في أغسطس 1998) العديد من الميزات لتغطية الأجهزة الحديثة (مثل تعدد النسيج [ 24 ] ومخازن الاستنسل )، بالإضافة إلى مسارات هندسية مُحسّنة لـ x87 و SSE و 3DNow!، وإدارة نسيج اختيارية لتبسيط البرمجة. [ 25 ] كما تضمّن Direct3D 6.0 دعمًا لميزات حصلت مايكروسوفت على ترخيصها من مُصنّعي أجهزة مُحدّدين لإدراجها في واجهة برمجة التطبيقات (API)، مقابل منح المُصنّع المُرخِّص ميزة سرعة طرح المنتج في السوق. وكان دعم ضغط نسيج S3 إحدى هذه الميزات، والتي أُعيد تسميتها إلى DXTC لأغراض إدراجها في واجهة برمجة التطبيقات. ومنها أيضًا تقنية رسم الخرائط النتوئية الخاصة بشركة TriTech . أدرجت مايكروسوفت هذه الميزات في DirectX، ثم أضافتها إلى متطلبات برامج التشغيل للحصول على شعار Windows، وذلك لتشجيع اعتمادها على نطاق واسع في أجهزة مُصنّعين آخرين.

صدر تحديث طفيف لـ DirectX 6.0 في تحديث DirectX 6.1 الصادر في فبراير 1999. إلى جانب إضافة دعم DirectMusic لأول مرة، حسّن هذا الإصدار دعم ملحقات Intel Pentium III ثلاثية الأبعاد. [ 26 ]

تُظهر مذكرة سرية أُرسلت في عام 1997 [ 27 ] أن مايكروسوفت تخطط للإعلان عن دعم كامل لـ Talisman في DirectX 6.0، ولكن تم إلغاء واجهة برمجة التطبيقات في النهاية (انظر صفحة Microsoft Talisman لمزيد من التفاصيل).

Direct3D 7.0

قدّم DirectX 7.0 (الذي صدر في سبتمبر 1999) تنسيق نسيج .dds [ 28 ] ودعمًا لتسريع التحويل والإضاءة باستخدام الأجهزة [ 29 ] (متوفر لأول مرة على أجهزة الكمبيوتر الشخصية مع بطاقة Nvidia GeForce 256 )، بالإضافة إلى إمكانية تخصيص مخازن مؤقتة للرؤوس في ذاكرة الأجهزة. تمثل مخازن الرؤوس المؤقتة للأجهزة أول تحسين جوهري على OpenGL في تاريخ DirectX. كما عزز Direct3D 7.0 دعم DirectX للأجهزة متعددة النسيج، ويمثل ذروة ميزات خط أنابيب النسيج متعدد الوظائف الثابتة: على الرغم من قوته، إلا أنه كان معقدًا للغاية في البرمجة لدرجة استدعت نموذج برمجة جديدًا لعرض إمكانيات التظليل لأجهزة الرسومات. كما قدّم Direct3D 7.0 ميزات DXVA .

Direct3D 8.0

قدّم DirectX 8.0 (الذي صدر في نوفمبر 2000) إمكانية البرمجة من خلال مُظلِّلات الرؤوس والبكسل ، مما مكّن المطورين من كتابة التعليمات البرمجية دون القلق بشأن حالة الأجهزة غير الضرورية. [ 30 ] اعتمدت درجة تعقيد برامج التظليل على درجة تعقيد المهمة، وقام برنامج تشغيل الشاشة بتجميع هذه المُظلِّلات إلى تعليمات يفهمها الجهاز. شكّل Direct3D 8.0 وقدراته على التظليل القابل للبرمجة أول خروجٍ كبير عن بنية OpenGL ذات الوظائف الثابتة، حيث يتم التحكم في الرسم بواسطة آلة حالة معقدة. كما ألغى Direct3D 8.0 واجهة برمجة التطبيقات DirectDraw كواجهة برمجة تطبيقات منفصلة. [ 31 ] [ 32 ] استوعب Direct3D جميع استدعاءات واجهة برمجة التطبيقات DirectDraw المتبقية التي لا تزال ضرورية لتطوير التطبيقات، مثل Present()، وهي الدالة المستخدمة لعرض نتائج العرض.

لم يُعتبر Direct3D سهل الاستخدام، ولكن مع إصدار DirectX 8.1، تم حل العديد من مشاكل سهولة الاستخدام. احتوى Direct3D 8 على العديد من ميزات الرسومات ثلاثية الأبعاد القوية، مثل تظليل الرؤوس ، وتظليل البكسل ، والضباب ، ورسم الخرائط النتوئية ، ورسم الخرائط النسيجية .

Direct3D 9

أضاف Direct3D 9.0 [ 33 ] (الذي صدر في ديسمبر 2002) إصدارًا جديدًا من لغة التظليل عالية المستوى [ 34 ] [ 35 ] ، ودعمًا لتنسيقات نسيج الفاصلة العائمة، وأهداف العرض المتعددة (MRT)، [ 36 ] ونسيج العناصر المتعددة، [ 37 ] وعمليات البحث عن النسيج في مُظلل الرؤوس وتقنيات مخزن الاستنسل. [ 38 ]

Direct3D 9Ex

Direct3D 9Ex [ 39 ] (كان يُعرف سابقًا بالإصدار 9.0L، حيث يشير الحرف "L" إلى Longhorn، الاسم الرمزي لنظام التشغيل Windows Vista)، وهو امتداد متوفر فقط على نظامي التشغيل Windows Vista والإصدارات الأحدث، يسمح بالاستفادة من مزايا نموذج برنامج تشغيل عرض Windows (WDDM) الخاص بنظام Windows Vista، ويُستخدم في Windows Aero . [ 40 ] يسمح Direct3D 9Ex، بالاقتران مع برامج تشغيل WDDM من فئة DirectX 9، بمحاكاة ذاكرة الرسومات ونقلها إلى ذاكرة النظام، كما يسمح بمقاطعة عمليات الرسومات وجدولتها، ويسمح بمشاركة أسطح DirectX بين العمليات. [ 41 ] كان يُعرف Direct3D 9Ex سابقًا بالإصدار 1.0 من Windows Graphics Foundation (WGF).

تحسينات Direct3D 9Ex - تطبيقات Win32

Direct3D 10

يتضمن نظام التشغيل Windows Vista تحديثًا رئيسيًا لواجهة برمجة تطبيقات Direct3D. كانت تُعرف سابقًا باسم WGF 2.0 (مؤسسة رسومات Windows 2.0)، ثم DirectX 10 وDirectX Next، وتتميز Direct3D 10 [ 42 ] بنموذج تظليل مُحدَّث 4.0 وإمكانية مقاطعة اختيارية لبرامج التظليل. [ 41 ] في هذا النموذج، لا تزال برامج التظليل تتكون من مراحل ثابتة كما في الإصدارات السابقة، ولكن جميع المراحل تدعم واجهة موحدة تقريبًا، بالإضافة إلى نموذج وصول موحد للموارد مثل الصور النسيجية وثوابت التظليل. تم توسيع اللغة نفسها لتكون أكثر تعبيرًا، بما في ذلك عمليات الأعداد الصحيحة، وزيادة كبيرة في عدد التعليمات، وبنى لغوية أقرب إلى لغة C. بالإضافة إلى مراحل تظليل الرؤوس والبكسل المتوفرة سابقًا ، تتضمن واجهة برمجة التطبيقات مرحلة تظليل هندسية تُغيّر النموذج القديم لرأس واحد مُدخل/رأس واحد مُخرج، للسماح بإنشاء الهندسة من داخل برنامج التظليل، مما يسمح بإنشاء هندسة معقدة بالكامل بواسطة وحدة معالجة الرسومات.

لا يدعم DirectX  10.0 والإصدارات الأحدث نظامي التشغيل Windows XP والإصدارات الأقدم. علاوة على ذلك، أسقط Direct3D  10 دعم واجهة برمجة التطبيقات (API) الخاصة بالوضع المُحتفظ به، والتي كانت جزءًا من Direct3D منذ البداية، مما جعل نظام Windows Vista غير متوافق مع ألعاب ثلاثية الأبعاد التي كانت تستخدم واجهة برمجة التطبيقات هذه كمحرك عرض . [ 43 ]

على عكس الإصدارات السابقة من واجهة برمجة التطبيقات (API)، لم يعد Direct3D 10 يستخدم "بتات القدرات" (أو "caps") للإشارة إلى الميزات المدعومة على جهاز رسومات معين. بدلاً من ذلك، يحدد معيارًا أدنى لقدرات الأجهزة التي يجب أن يدعمها نظام العرض ليكون "  متوافقًا مع Direct3D 10". يُعد هذا تحولًا جوهريًا، بهدف تبسيط كود التطبيق عن طريق إزالة كود التحقق من القدرات والحالات الخاصة التي تعتمد على وجود أو عدم وجود قدرات محددة.

نظرًا  لندرة أجهزة Direct3D 10 نسبيًا بعد الإصدار الأولي لنظام التشغيل Windows Vista ، ونظرًا لقاعدة المستخدمين الضخمة  لبطاقات الرسومات غير المتوافقة مع Direct3D 10، فإن أولى  الألعاب المتوافقة مع Direct3D 10 لا تزال تستخدم مسارات عرض Direct3D 9. ومن أمثلة هذه الألعاب، ألعاب كُتبت في الأصل لـ Direct3D  9 ثم نُقلت إلى Direct3D  10 بعد إصدارها، مثل Company of Heroes ، أو ألعاب طُوّرت في الأصل لـ Direct3D  9 ثم أُضيف إليها مسار Direct3D  10 لاحقًا أثناء تطويرها، مثل Hellgate: London أو Crysis  . أُتيحت حزمة تطوير البرامج DirectX 10 SDK في فبراير 2007. [ 44 ]

Direct3D 10.0

يجب أن تدعم الأجهزة المتوافقة مع Direct3D  10.0 الميزات التالية: القدرة على معالجة الأشكال الأولية بالكامل في مرحلة تظليل الهندسة الجديدة، والقدرة على إخراج بيانات الرؤوس المُولَّدة بواسطة خط الأنابيب إلى الذاكرة باستخدام مرحلة إخراج التدفق، ودعم التغطية متعددة العينات من ألفا، وقراءة سطح العمق/الاستنسل أو مورد متعدد العينات بمجرد عدم ربطه كهدف عرض، والتكامل الكامل مع HLSL - جميع  تظليلات Direct3D 10 مكتوبة بلغة HLSL ومُنفَّذة باستخدام نواة التظليل المشتركة، وعمليات التظليل الصحيحة والبتية، وتنظيم حالة خط الأنابيب في 5 كائنات حالة غير قابلة للتغيير، وتنظيم ثوابت التظليل في مخازن ثابتة، وزيادة عدد أهداف العرض والقوام وعينات التظليل، وعدم وجود حد لطول التظليل، وأنواع موارد جديدة وتنسيقات موارد جديدة، [ 45 ] طبقات وقت التشغيل/واجهة برمجة التطبيقات متعددة الطبقات، [ 46 ] وخيار إجراء تبديل وإعداد المواد لكل شكل أولي باستخدام تظليل الهندسة، وزيادة تعميم الوصول إلى الموارد باستخدام العرض، وإزالة بتات إمكانيات الأجهزة القديمة (أحرف كبيرة).

  • يتم التخلص من خطوط الأنابيب الثابتة [ 47 ] لصالح خطوط الأنابيب القابلة للبرمجة بالكامل (والتي يشار إليها غالبًا باسم بنية خط الأنابيب الموحدة)، والتي يمكن برمجتها لمحاكاة نفس الشيء.
  • كائن حالة جديد لتمكين (في الغالب) وحدة المعالجة المركزية من تغيير الحالات بكفاءة.
  • يعمل نموذج التظليل الموحد على تحسين قابلية برمجة خط أنابيب الرسومات . ويضيف تعليمات لإجراء العمليات الحسابية الصحيحة والبتية.
  • توفر نواة التظليل المشتركة [ 48 ] مجموعة كاملة من عمليات الأعداد الصحيحة وعمليات البتات المتوافقة مع معايير IEEE. تُمكّن هذه العمليات فئة جديدة من الخوارزميات في أجهزة الرسومات، ومن أمثلتها تقنيات الضغط والتعبئة، وتحويلات فورييه السريعة، والتحكم في تدفق البرنامج باستخدام حقول البت.
  • تظليل الهندسة ، [ 49 ] [ 50 ] التي تعمل على المثلثات المتجاورة التي تشكل شبكة .
  • تتيح مصفوفات النسيج تبديل النسيج في وحدة معالجة الرسومات دون تدخل وحدة المعالجة المركزية.
  • تتيح تقنية العرض التنبؤي تجاهل استدعاءات الرسم بناءً على شروط أخرى. وهذا يُمكّن من إزالة العناصر المخفية بسرعة ، مما يمنع عرض الكائنات إذا كانت غير مرئية أو بعيدة جدًا بحيث لا يمكن رؤيتها.
  • يدعم الإصدار 2.0 من تقنية النسخ المتعدد، مما يسمح بعرض نسخ متعددة من الشبكات المتشابهة، مثل الجيوش أو العشب أو الأشجار، في استدعاء رسم واحد، مما يقلل وقت المعالجة اللازم للعديد من الكائنات المتشابهة إلى وقت معالجة كائن واحد. [ 51 ]

Direct3D 10.1

أعلنت مايكروسوفت عن Direct3D 10.1 [ 52 ] بعد فترة وجيزة من إصدار Direct3D 10 كتحديث ثانوي. وتمّ وضع المواصفات النهائية مع إصدار حزمة تطوير البرامج DirectX SDK في نوفمبر 2007، وتمّ تضمين بيئة التشغيل مع نظام التشغيل Windows Vista SP1 ، المتوفر منذ منتصف مارس 2008.

يضع Direct3D 10.1 معايير إضافية لجودة الصورة لموردي الرسومات، ويمنح المطورين مزيدًا من التحكم في جودة الصورة. [ 53 ] [ 54 ] تشمل الميزات تحكمًا أدق في منع التعرج (سواءً أخذ العينات المتعددة أو أخذ العينات الفائقة مع تظليل لكل عينة وتحكم التطبيق في موضع العينة) ومرونة أكبر لبعض الميزات الحالية (مصفوفات الخرائط المكعبة وأنماط المزج المستقلة). يجب أن تدعم الأجهزة المتوافقة مع Direct3D 10.1 الميزات التالية: تم تحسين أخذ العينات المتعددة لتعميم الشفافية القائمة على التغطية وجعلها تعمل بشكل أكثر فعالية مع العرض متعدد المراحل، وتحسين سلوك الاستبعاد - حيث يتم استبعاد الوجوه ذات المساحة الصفرية تلقائيًا؛ يؤثر هذا على عرض الإطار السلكي فقط، وأنماط المزج المستقلة لكل هدف عرض، وتنفيذ مُظلل البكسل الجديد بتردد عينة مع التنميط النقطي البدائي، وزيادة عرض نطاق مرحلة خط الأنابيب، ويمكن الآن استخدام أسطح MSAA اللونية والعمق/الاستنسل مع CopyResource كمصدر أو وجهة، ويؤثر MultisampleEnable فقط على تنميط الخطوط النقطي (النقاط والمثلثات لا تتأثر)، ويُستخدم لاختيار خوارزمية رسم الخطوط. هذا يعني أن بعض عمليات التنميط النقطي متعدد العينات من Direct3D 10 لم تعد مدعومة، وتم تعريف تعليمات أخذ عينات النسيج sample_c و sample_c_lz للعمل مع كل من Texture2DArrays و TextureCubeArrays باستخدام عضو الموقع (مكون ألفا) لتحديد فهرس المصفوفة، ودعم TextureCubeArrays.

  • التصفية الإلزامية للنقاط العائمة 32 بت .
  • قواعد الفاصلة العائمة – تستخدم نفس قواعد IEEE-754 للفاصلة العائمة، باستثناء عمليات الفاصلة العائمة ذات 32 بت، حيث تم تحسينها لإنتاج نتيجة ضمن نطاق 0.5 وحدة من الخانة الأخيرة (0.5 ULP) من النتيجة الدقيقة تمامًا. ينطبق هذا على الجمع والطرح والضرب (دقة تصل إلى 0.5 ULP للضرب، و1.0 ULP للمقلوب).
  • التنسيقات – زادت دقة مزج float16 إلى 0.5 ULP. كما أن المزج مطلوب أيضًا لتنسيقات UNORM16/SNORM16/SNORM8.
  • تحويل التنسيق أثناء النسخ بين موارد معينة ذات بنية مسبقة 32/64/128 بت ومكتوبة، وتمثيلات مضغوطة بنفس عرض البت.
  • دعم إلزامي لتقنية MSAA 4x لجميع أهداف العرض باستثناء R32G32B32A32 و R32G32B32. [ 55 ]
  • نموذج التظليل 4.1

على عكس Direct3D 10 الذي كان يتطلب بشكل صارم أجهزة وبرامج تشغيل من فئة Direct3D 10، يمكن تشغيل وقت تشغيل Direct3D 10.1 على أجهزة Direct3D 10.0 باستخدام مفهوم " مستويات الميزات[ 56 ] [ 57 ] [ 58 ] ولكن يتم دعم الميزات الجديدة حصريًا بواسطة الأجهزة الجديدة التي تعرض مستوى الميزة 10_1.

كانت أجهزة Direct3D 10.1 الوحيدة المتاحة حتى يونيو 2008 هي سلسلة Radeon HD 3000 وسلسلة Radeon HD 4000 من ATI ؛ وفي عام 2009، انضمت إليها وحدات معالجة الرسومات Chrome 430/440GT من S3 Graphics وبعض الطرازات الأقل تكلفة من سلسلة GeForce 200 من Nvidia . وفي عام 2011، بدأت شرائح Intel بدعم Direct3D 10.1 مع طرح Intel HD Graphics 2000 (GMA HD).

Direct3D 11

تم إصدار Direct3D 11 [ 59 ] كجزء من نظام التشغيل Windows 7. وعُرض في معرض Gamefest 2008 بتاريخ 22 يوليو 2008، وتم استعراضه في المؤتمر التقني Nvision 08 بتاريخ 26 أغسطس 2008. [ 60 ] [ 61 ] كما تم تضمين المعاينة التقنية لـ Direct3D 11 في إصدار نوفمبر 2008 من حزمة تطوير البرامج DirectX SDK. [ 62 ] وعرضت AMD نماذج أولية لأجهزة DirectX 11 تعمل في معرض Computex بتاريخ 3 يونيو 2009، حيث قامت بتشغيل بعض عينات حزمة تطوير البرامج DirectX 11 SDK. [ 63 ]

يُمكن تشغيل بيئة Direct3D 11 على أجهزة وبرامج تشغيل من فئة Direct3D 9 و10.x باستخدام مفهوم "مستويات الميزات" ، مما يُوسّع نطاق الوظائف التي تم تقديمها لأول مرة في بيئة Direct3D 10.1. [ 56 ] [ 64 ] [ 65 ] تُتيح مستويات الميزات للمطورين توحيد مسار العرض ضمن واجهة برمجة تطبيقات Direct3D 11 والاستفادة من تحسينات واجهة برمجة التطبيقات، مثل إدارة الموارد المُحسّنة والمعالجة المتعددة، حتى على البطاقات منخفضة التكلفة، على الرغم من أن الميزات المتقدمة، مثل نماذج التظليل الجديدة ومراحل العرض، لن تُتاح إلا على الأجهزة ذات المستويات الأعلى. [ 64 ] [ 66 ] هناك ثلاثة ملفات تعريف "10 المستوى 9" تُغطي إمكانيات مُختلفة لبطاقات DirectX 9.0a الشائعة، ولكل من Direct3D 10 و10.1 و11 مستوى ميزات مُنفصل؛ كل مستوى أعلى هو مجموعة شاملة لمستوى أدنى. [ 67 ]

كان من المقرر سابقًا استخدام تقنية التجزئة في Direct3D 10، ولكن تم التخلي عنها لاحقًا. تتميز وحدات معالجة الرسومات مثل Radeon R600 بمحرك تجزئة يمكن استخدامه مع Direct3D 9/10/10.1 [ 68 ] [ 69 ] [ 70 ] وOpenGL [ 71 ] ، ولكنه غير متوافق مع Direct3D 11 (وفقًا لمايكروسوفت). كانت أجهزة الرسومات القديمة مثل Radeon 8xxx وGeForce 3/4 تدعم نوعًا آخر من التجزئة (RT patches، N patches)، ولكن هذه التقنيات لم تُستخدم على نطاق واسع. ولذلك، تم إسقاط دعمها من الأجهزة الأحدث.

كما أشارت مايكروسوفت إلى ميزات أخرى مثل الشفافية المستقلة عن الترتيب ، والتي لم يتم الكشف عنها أبدًا بواسطة واجهة برمجة تطبيقات Direct3D ولكنها مدعومة بشكل شبه شفاف بواسطة أجهزة Direct3D المبكرة مثل خط رقائق PowerVR من Videologic.

Direct3D 11.0

تشمل ميزات Direct3D 11.0 ما يلي: دعم Shader Model 5.0، وربط التظليل الديناميكي، والموارد القابلة للعنونة، وأنواع موارد إضافية، [ 72 ] إجراءات فرعية، ونسخ الهندسة، والتغطية كمدخل لتظليل البكسل، والاستيفاء القابل للبرمجة للمدخلات، وتنسيقات ضغط نسيج جديدة (تنسيق LDR جديد واحد وتنسيق HDR جديد واحد)، وقيود النسيج للحد من التحميل المسبق لـ WDDM، ويتطلب 8 بتات من دقة البكسل الفرعي ودقة mip الفرعية في ترشيح النسيج، وحدود نسيج 16K، وGather4 (دعم للنسيج متعدد المكونات، ودعم الإزاحات القابلة للبرمجة)، وDrawIndirect، وoDepth المحافظ، وDepth Bias، [ 73 ] [ 74 ] إخراج دفق قابل للعنونة، وتقييد mipmap لكل مورد، ومنافذ عرض النقطة العائمة، وتعليمات تحويل التظليل، وتحسين تعدد الخيوط.

ومن الميزات البارزة الأخرى إضافة خوارزميتين جديدتين لضغط النسيج من أجل تعبئة أكثر كفاءة للنسيج عالي الجودة ونسيج HDR/alpha وزيادة ذاكرة التخزين المؤقت للنسيج .

ظهرت هذه الميزة لأول مرة في النسخة التجريبية ، حيث دمج نظام التشغيل ويندوز 7 أول دعم رسمي لتقنية Direct3D 11. ويتضمن تحديث النظام الأساسي لنظام ويندوز فيستا بيئة تشغيل Direct3D 11 كاملة الميزات وتحديث DXGI 1.1، بالإضافة إلى مكونات أخرى ذات صلة من ويندوز 7 مثل WARP و Direct2D و DirectWrite و WIC . [ 78 ] [ 79 ]

Direct3D 11.1

يُعدّ Direct3D 11.1 [ 80 ] [ 81 ] تحديثًا لواجهة برمجة التطبيقات (API) المُضمّنة في نظام التشغيل Windows 8. [ 82 ] [ 83 ] يتميز وقت تشغيل Direct3D في Windows 8 بـ DXGI 1.2 [ 84 ] ويتطلب برامج تشغيل أجهزة WDDM 1.2 الجديدة [ 85 ] . [ 86 ] صدرت النسخة التجريبية من حزمة تطوير البرامج (SDK) لنظام Windows 8 Developer Preview في 13 سبتمبر 2011.

تتضمن واجهة برمجة التطبيقات الجديدة ميزات تتبع التظليل وتحسينات لمترجم HLSL، ودعمًا لأنواع بيانات HLSL العددية ذات الدقة الدنيا، و [ 87 ] طرق عرض الوصول غير المرتب (UAVs) في كل مرحلة من مراحل خط الأنابيب، والترسيم النقطي المستقل عن الهدف (TIR)، وخيارًا لتعيين SRVs للمخازن المؤقتة الديناميكية مع NO_OVERWRITE، ومعالجة التظليل لموارد الفيديو، وخيارًا لاستخدام العمليات المنطقية في هدف العرض، وخيارًا لربط نطاق فرعي من مخزن مؤقت ثابت بتظليل واسترجاعه، وخيارًا لإنشاء مخازن مؤقتة ثابتة أكبر مما يمكن للتظليل الوصول إليه، وخيارًا للتخلص من الموارد وطرق عرض الموارد، وخيارًا لتغيير الموارد الفرعية باستخدام خيارات نسخ جديدة، وخيارًا لفرض عدد العينات لإنشاء حالة ترسيم نقطي، وخيارًا لمسح كل أو جزء من طريقة عرض الموارد، وخيارًا لاستخدام Direct3D في عمليات الجلسة 0، وخيارًا لتحديد مستويات قص المستخدم في HLSL على مستوى الميزة 9 وما فوق، ودعمًا لمخزن الظل على مستوى الميزة 9، ودعمًا لتشغيل الفيديو، ودعمًا موسعًا لموارد Texture2D المشتركة، والتشغيل الفوري التبديل بين سياقات ومستويات ميزات Direct3D 10 و11. يتضمن Direct3D 11.1 مستوى الميزات الجديد 11_1، الذي يُدخل تحديثات طفيفة على لغة التظليل، مثل مخازن الثوابت الأكبر حجمًا وتعليمات الدقة المزدوجة الاختيارية، بالإضافة إلى أوضاع المزج المحسّنة والدعم الإلزامي لتنسيقات الألوان 16 بت لتحسين أداء وحدات معالجة الرسومات منخفضة التكلفة مثل Intel HD Graphics . [ 86 ] [ 88 ] تم تحديث WARP لدعم مستوى الميزات 11_1.

يتضمن تحديث النظام الأساسي لنظام التشغيل Windows 7 مجموعة محدودة من ميزات Direct3D 11.1، على الرغم من أن المكونات التي تعتمد على WDDM 1.2 - مثل مستوى الميزة 11_1 وواجهات برمجة التطبيقات ذات الصلة، أو التخزين المؤقت الرباعي للعرض المجسم - غير موجودة. [ 89 ] [ 90 ]

Direct3D 11.2

تم تضمين Direct3D 11.2 [ 91 ] [ 92 ] [ 93 ] مع نظام التشغيل Windows 8.1 . [ 94 ] [ 95 ] تتطلب ميزات الأجهزة الجديدة DXGI 1.3 [ 96 ] مع برامج تشغيل WDDM 1.3 [ 97 ] ، وتشمل تعديل وربط التظليل أثناء التشغيل، ورسم بياني لربط الدوال (FLG)، ومترجم HLSL مدمج ، وخيار إضافة تعليقات توضيحية لأوامر الرسومات. [ 98 ] يُقدم مستويا الميزات 11_0 و11_1 دعمًا اختياريًا للموارد المُجزأة مع تثبيت مستوى تفاصيل التظليل (المستوى 2). [ 99 ] توفر الميزة الأخيرة تحكمًا فعالًا في جداول صفحات الأجهزة الموجودة في العديد من وحدات معالجة الرسومات الحالية. [ 100 ] تم تحديث WARP لدعم الميزات الجديدة بشكل كامل. [ 94 ] [ 101 ] مع ذلك، لا يوجد مستوى ميزات 11_2؛ فالميزات الجديدة موزعة على مستويات الميزات الحالية. يمكن التحقق من الميزات التي تعتمد على الأجهزة بشكل فردي عبر [ 95 ] [ 102 ]CheckFeatureSupport . بعض الميزات "الجديدة" في Direct3D 11.2 تُظهر في الواقع بعض ميزات الأجهزة القديمة بطريقة أكثر تفصيلًا؛ على سبيل المثال ، تُظهر دعمًا جزئيًا للنسخ على مستوى الميزات 9_1 و9_2، بينما يتم دعمها بالكامل بدءًا من مستوى الميزات 9_3 فصاعدًا. [ 103 ]D3D11_FEATURE_D3D9_SIMPLE_INSTANCING_SUPPORT

Direct3D 11.X

Direct3D 11.X هو إصدار متطور من DirectX 11.2 يعمل على جهاز Xbox One . [ 104 ] [ 105 ] ويتضمن بعض الميزات، مثل حزم الرسم، التي أُعلن عنها لاحقًا كجزء من DirectX 12. [ 106 ]

Direct3D 11.3

تم إصدار Direct3D 11.3 [ 107 ] في يوليو 2015 مع نظام التشغيل Windows 10؛ ويتضمن ميزات عرض ثانوية من Direct3D 12، مع الحفاظ على البنية العامة لواجهة برمجة تطبيقات Direct3D 11.x. [ 108 ] [ 109 ] [ 110 ] يقدم Direct3D 11.3 ميزات اختيارية مثل قيمة مرجع الاستنسل المحددة بواسطة Shader، وتحميل عرض الوصول غير المرتب المكتوب، وعرض الصور النقطي المرتب (ROVs)، وميزة التبديل القياسي الاختيارية، وتعيين النسيج الافتراضي الاختياري، والتحويل النقطي المحافظ (من بين ثلاث مستويات)، [ 111 ] ودعم الوصول الموحد للذاكرة (UMA) الاختياري ، وموارد مُجزأة إضافية (المستوى 2) (موارد مُجزأة من الحجم). [ 112 ]

Direct3D 11.4

  • Direct3D 11.4 الإصدار 1511 - تم تقديم Direct3D 11.4 الأولي مع تحديث Windows 10 Threshold 2 (الإصدار 1511) مما يحسن دعم محولات الرسومات الخارجية و DXGI 1.5. [ 113 ]
  • Direct3D 11.4 الإصدار 1607 - يتضمن Direct3D 11.4 المحدث مع تحديث الذكرى السنوية لنظام التشغيل Windows 10 (الإصدار 1607) دعم WDDM 2.1 وتنسيق UHDTV HDR10 ( ST 2084 ) ودعم معدلات التحديث المتغيرة لتطبيقات UWP.

Direct3D 12

يُتيح Direct3D 12 [ 114 ] مستوىً أدنى من تجريد الأجهزة مقارنةً بالإصدارات السابقة، مما يُمكّن التطبيقات المستقبلية من تحسين قابلية التوسع متعدد الخيوط بشكل ملحوظ وتقليل استهلاك وحدة المعالجة المركزية. ويتحقق ذلك من خلال مُواءمة طبقة تجريد Direct3D مع الأجهزة الأساسية بشكل أفضل، عبر ميزات جديدة مثل الرسم غير المباشر، وجداول الواصفات، وكائنات حالة خط الأنابيب المُختصرة، وحزم استدعاءات الرسم. ويُعدّ تقليل الحمل الزائد لبرنامج التشغيل الميزة الرئيسية لـ Direct3D 12، على غرار Mantle من AMD . [ 114 ] وبحسب مُطوّره الرئيسي ماكس ماكمولين، فإن الهدف الرئيسي من Direct3D 12 هو تحقيق "كفاءة على مستوى أجهزة الألعاب" وتحسين التوازي في وحدة المعالجة المركزية. [ 115 ] [ 116 ] [ 117 ]

على الرغم من إعلان شركة Nvidia عن دعم واسع النطاق لـ Direct3D 12، إلا أنها أبدت بعض التحفظ بشأن مدى جاذبية واجهة برمجة التطبيقات الجديدة على نطاق واسع، مشيرةً إلى أنه في حين قد يكون مطورو محركات الألعاب متحمسين لإدارة موارد وحدة معالجة الرسومات مباشرةً من كود تطبيقاتهم، فإن "الكثير من الأشخاص الآخرين" لن يكونوا سعداء بالقيام بذلك. [ 118 ]

تتضمن Direct3D 12 بعض الميزات الجديدة للأجهزة، [ 110 ] [ 108 ] [ 119 ] بما في ذلك Shader Model 5.1، [ 120 ] Volume Tiled Resources (المستوى 2)، [ 120 ] Shader Specified Stencil Reference Value، Typed UAV Load، Conservative Rasterization (المستوى 1)، تحسينات في التصادم والاستبعاد مع Conservative Rasterization، Rasterizer Ordered Views (ROVs)، Standard Swizzles، Default Texture Mapping، Swap Chains، swizzled resources و compressed resources ، [ 121 ] أوضاع مزج إضافية ، [ 122 ] مزج قابل للبرمجة وشفافية فعالة مستقلة عن الترتيب (OIT) مع UAV مرتبة بالبكسل. [ 123 ]

تطورت كائنات حالة خط الأنابيب (PSOs) [ 124 ] منذ Direct3D 11، وتعني حالات خط الأنابيب الجديدة المختصرة تبسيط العملية. كان DirectX 11 يوفر مرونة في كيفية تغيير حالاته، على حساب الأداء. يؤدي تبسيط العملية وتوحيد خطوط الأنابيب (مثل حالات مُظلل البكسل) إلى عملية أكثر انسيابية، مما يقلل بشكل كبير من النفقات العامة ويسمح لبطاقة الرسومات برسم المزيد من الاستدعاءات لكل إطار. بمجرد إنشاء كائن حالة خط الأنابيب، يصبح غير قابل للتغيير. [ 125 ]

تُعرّف التوقيعات الجذرية إعدادات لربط قوائم الأوامر بالموارد التي تحتاجها برامج التظليل. وهي تُحدد تخطيط الموارد التي ستستخدمها برامج التظليل، وتُحدد الموارد التي سيتم ربطها بخط المعالجة. تحتوي قائمة أوامر الرسومات على توقيع جذري للرسومات وآخر للحساب، بينما تحتوي قائمة أوامر الحساب على توقيع جذري للحساب فقط. هذه التوقيعات الجذرية مستقلة تمامًا عن بعضها البعض. مع أن التوقيع الجذري يُحدد أنواع البيانات التي ستستخدمها برامج التظليل، إلا أنه لا يُحدد أو يُعيّن الذاكرة أو البيانات الفعلية. [ 126 ]

تُعدّ المعاملات الجذرية أحد أنواع المدخلات في التوقيع الجذري. وتُسمى القيم الفعلية للمعاملات الجذرية التي يتم تعديلها أثناء التشغيل بالوسائط الجذرية. وهذه هي البيانات التي تقرأها برامج التظليل. [ 126 ]

في Direct3D 11، تُرسل الأوامر من وحدة المعالجة المركزية (CPU) إلى وحدة معالجة الرسومات (GPU) واحدًا تلو الآخر، وتعمل وحدة معالجة الرسومات على تنفيذ هذه الأوامر بالتتابع. هذا يعني أن سرعة إرسال الأوامر من وحدة المعالجة المركزية بشكل خطي تُحدّ من سرعة تنفيذها. أما في DirectX 12، فتُرسل هذه الأوامر على شكل قوائم أوامر، تحتوي على جميع المعلومات المطلوبة في حزمة واحدة. وبذلك، تستطيع وحدة معالجة الرسومات حساب وتنفيذ هذا الأمر في عملية واحدة، دون الحاجة إلى انتظار أي معلومات إضافية من وحدة المعالجة المركزية.

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

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

تُعد الأكوام الديناميكية أيضًا من ميزات Direct3D 12. [ 127 ]

يدعم Direct3D 12 بشكلٍ صريحٍ استخدام محولات متعددة، مما يسمح بالتحكم المباشر في أنظمة تكوين وحدات معالجة الرسومات المتعددة (mGPU). ويمكن إنشاء هذه التكوينات باستخدام محولات رسومات من نفس مُصنِّع الأجهزة أو من مُصنِّعين مختلفين. [ 128 ]

أصدرت مايكروسوفت في عام 2019 دعمًا تجريبيًا لـ D3D 12 لنظام التشغيل Windows 7 SP1 عبر حزمة NuGet مخصصة. [ 129 ] [ 130 ] [ 131 ]

  • Direct3D 12 الإصدار 1607 - مع تحديث الذكرى السنوية لنظام التشغيل Windows 10 (الإصدار 1607)، الذي صدر في 2 أغسطس 2016، تم تحديث بيئة تشغيل Direct3D 12 لدعم بنيات تعدد الخيوط الصريح والتواصل بين العمليات، مما يسمح للمطورين بالاستفادة من وحدات معالجة الرسومات الحديثة ذات المعالجة المتوازية الضخمة. [ 132 ] تشمل الميزات الأخرى تحديث التوقيعات الجذرية إلى الإصدار 1.1، بالإضافة إلى دعم تنسيق HDR10 ومعدلات التحديث المتغيرة .
  • Direct3D 12 الإصدار 1703 - مع تحديث Windows 10 Creators Update (الإصدار 1703)، الذي صدر في 11 أبريل 2017، تم تحديث بيئة تشغيل Direct3D 12 لدعم Shader Model 6.0 و DXIL . ويتطلب Shader Model 6.0 تحديث Windows 10 Anniversary Update (الإصدار 1607) وWDDM 2.1. وتشمل الميزات الرسومية الجديدة اختبار حدود العمق وMSAA القابل للبرمجة. [ 133 ]
  • Direct3D 12 الإصدار 1709 – يتضمن Direct3D في تحديث Windows 10 Fall Creators Update (الإصدار 1709)، الذي صدر في 17 أكتوبر 2017، تحسينات في تصحيح الأخطاء. [ 133 ]
  • يوفر تحديث Direct3D 12 الإصدار 1809 - تحديث Windows 10 أكتوبر 2018 (الإصدار 1809) دعمًا لتقنية DirectX Raytracing بحيث يمكن لوحدات معالجة الرسومات الاستفادة من واجهة برمجة التطبيقات الخاصة بها.
  • يُقدّم تحديث Direct3D 12 الإصدار 1903 لنظام التشغيل Windows 10 (الإصدار 1903) دعمًا لتقنية DirectML ووحدات المعالجة العصبية (NPUs) . [ 134 ] [ 135 ] ويمكن لتقنية DirectML دعم كلٍ من مُظلِّلات الحوسبة ومُظلِّلات الموترات .
  • يُقدّم تحديث Direct3D 12 الإصدار 2004 لنظام التشغيل Windows 10 (الإصدار 2004) دعمًا لـ DirectX 12 Ultimate ، و Mesh & Amplification Shaders، [ 136 ] و Sampler Feedback، [ 137 ] بالإضافة إلى DirectX Raytracing Tier 1.1 [ 138 ] وتحسينات في تخصيص الذاكرة. [ 139 ]
  • يوفر Direct3D 12 الإصدار 21H2 - Windows 10 الإصدار 21H2 و Windows 11 الإصدار 21H2 دعمًا لـ DirectStorage .

بنيان

طبقة تجريدية

Direct3D هو أحد مكونات نظام واجهة برمجة تطبيقات Microsoft DirectX . يهدف Direct3D إلى تجريد عملية الاتصال بين تطبيق الرسومات وبرامج تشغيل أجهزة الرسومات. ويُعرض كطبقة تجريدية بسيطة بمستوى يُضاهي GDI (انظر الرسم التوضيحي المرفق). يحتوي Direct3D على العديد من الميزات التي تفتقر إليها GDI.

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

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

جهاز
  • الجهاز المرجعي : يحاكي وظائف جديدة غير متوفرة حاليًا في الأجهزة. يلزم تثبيت حزمة تطوير البرامج Direct3D لاستخدام هذا النوع من الأجهزة.
  • جهاز مرجعي فارغ : لا يقوم بأي وظيفة. يُستخدم هذا الجهاز عندما لا يكون SDK مثبتًا ويتم طلب جهاز مرجعي.
  • جهاز برمجي قابل للتوصيل : يقوم بعملية عرض البرامج. تم تقديم هذا الجهاز مع DirectX 9.0 . [ 140 ]

يحتوي كل جهاز على سلسلة تبديل واحدة على الأقل . تتكون سلسلة التبديل من سطح واحد أو أكثر من أسطح المخزن المؤقت الخلفي . تتم عملية العرض في المخزن المؤقت الخلفي.

علاوة على ذلك، تحتوي الأجهزة على مجموعة من الموارد ؛ وهي بيانات محددة تُستخدم أثناء عملية العرض. ولكل مورد أربع سمات:

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

يدعم Direct3D وضعين للعرض:

  • وضع ملء الشاشة: يُنشئ تطبيق Direct3D جميع المخرجات الرسومية لجهاز العرض. في هذا الوضع، يلتقط Direct3D تلقائيًا ضغطات Alt-Tab ويضبط/يستعيد دقة الشاشة وتنسيق البكسل دون تدخل المبرمج. كما يُسبب هذا الوضع العديد من المشاكل في تصحيح الأخطاء نظرًا لـ"وضع التعاون الحصري".
  • وضع النافذة: تُعرض النتيجة داخل مساحة النافذة. يتواصل Direct3D مع GDI لإنشاء المخرجات الرسومية على الشاشة. قد يُحقق وضع النافذة نفس مستوى الأداء الذي يُحققه وضع ملء الشاشة، وذلك بحسب دعم برنامج التشغيل.

خط الأنابيب

عملية خط أنابيب الرسومات Direct3D 11

تُعرّف واجهة برمجة تطبيقات Microsoft Direct3D 11 عمليةً لتحويل مجموعة من الرؤوس والنسيج والمخازن المؤقتة والحالة إلى صورة على الشاشة. تُوصف هذه العملية بأنها مسار عرض يتكون من عدة مراحل متميزة. المراحل المختلفة لمسار Direct3D 11 هي: [ 142 ]

  1. مُجمِّع الإدخال : [ 143 ] يقرأ بيانات الرؤوس من مخزن مؤقت للرؤوس مُقدَّم من التطبيق ويُمرِّرها عبر خط الأنابيب.
  2. Vertex Shader : [ 144 ] يقوم بتنفيذ عمليات على رأس واحد في كل مرة، مثل التحويلات أو التكسية أو الإضاءة.
  3. Hull-Shader : [ 145 ] يقوم بإجراء عمليات على مجموعات من نقاط التحكم في الرقعة، ويولد بيانات إضافية تُعرف باسم ثوابت الرقعة.
  4. Tessellator : [ 146 ] يقسم الهندسة لإنشاء تمثيلات من الدرجة الأعلى للهيكل.
  5. Domain-Shader : [ 147 ] يقوم بإجراء عمليات على الرؤوس الناتجة عن مرحلة التبليط، بنفس طريقة تظليل الرؤوس.
  6. مُظلِّل الهندسة : [ 148 ] يُعالج الأشكال الهندسية الأولية بالكامل مثل المثلثات والنقاط والخطوط. عند إعطاء شكل هندسي أولي، تتجاهله هذه المرحلة أو تُنشئ شكلاً هندسياً أولياً جديداً واحداً أو أكثر.
  7. مخرجات التدفق : [ 149 ] يمكن كتابة نتائج المرحلة السابقة إلى الذاكرة. وهذا مفيد لإعادة تدوير البيانات إلى مسار المعالجة.
  8. المُرَسِّم : [ 150 ] [ 151 ] يُحوِّل الأشكال الأولية إلى بكسلات، ويُغذِّي هذه البكسلات إلى مُظلِّل البكسل. قد يُنفِّذ المُرَسِّم أيضًا مهامًا أخرى مثل قصّ ما هو غير مرئي، أو استيفاء بيانات الرؤوس إلى بيانات لكل بكسل.
  9. Pixel Shader : [ 152 ] يحدد لون البكسل النهائي المراد كتابته إلى هدف العرض ويمكنه أيضًا حساب قيمة العمق المراد كتابتها إلى مخزن العمق.
  10. دمج المخرجات : [ 153 ] يدمج أنواعًا مختلفة من بيانات الإخراج ( قيم تظليل البكسل ، ومزج ألفا، والعمق/الاستنسل...) لبناء النتيجة النهائية.

مراحل خط الأنابيب الموضحة بمربع دائري قابلة للبرمجة بالكامل. يوفر التطبيق برنامج تظليل يصف العمليات الدقيقة المطلوب تنفيذها في كل مرحلة. العديد من المراحل اختيارية ويمكن تعطيلها تمامًا.

مستويات الميزات

في إصدارات Direct3D من 5 إلى 9، عندما قدمت الإصدارات الجديدة من واجهة برمجة التطبيقات (API) دعمًا لإمكانيات أجهزة جديدة، كان معظمها اختياريًا - إذ احتفظ كل مُصنِّع لبطاقات الرسومات بمجموعة خاصة به من الميزات المدعومة بالإضافة إلى الوظائف الأساسية المطلوبة. وكان لا بد من تحديد دعم الميزات الفردية باستخدام "بتات الإمكانيات" أو "caps"، مما جعل برمجة الرسومات عبر مختلف المُصنِّعين مهمة معقدة.

قدم Direct3D 10 مجموعة مبسطة للغاية من متطلبات الأجهزة الإلزامية استنادًا إلى أكثر إمكانيات Direct3D 9 شيوعًا والتي كان على جميع بطاقات الرسومات الداعمة الالتزام بها، مع عدد قليل فقط من الإمكانيات الاختيارية لتنسيقات وعمليات النسيج المدعومة.

أضاف Direct3D 10.1 بعض متطلبات الأجهزة الإلزامية الجديدة، وللحفاظ على التوافق مع أجهزة وبرامج تشغيل الإصدار 10.0، تم تجميع هذه الميزات في مجموعتين تُسميان "مستويات الميزات"، حيث يُمثل المستوى 10.1 مجموعةً شاملةً للمستوى 10.0. ومع إضافة Direct3D 11.0 و11.1 و12 دعمًا لأجهزة جديدة، تم تجميع القدرات الإلزامية الجديدة في مستويات ميزات أعلى. [ 56 ]

كما قدم Direct3D 11 "10level9"، وهي مجموعة فرعية من واجهة برمجة تطبيقات Direct3D 10 بثلاثة مستويات من الميزات التي تغلف بطاقات Direct3D 9 المختلفة مع برامج تشغيل WDDM ، وأعاد Direct3D 11.1 تقديم بعض الميزات الاختيارية لجميع المستويات، [ 154 ] والتي تم توسيعها في Direct3D 11.2 والإصدارات اللاحقة.

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

يتم تقديم مستويات جديدة من الميزات مع الإصدارات المحدثة من واجهة برمجة التطبيقات (API)، وعادةً ما تتضمن ما يلي:

  • الميزات الإلزامية الرئيسية – (Direct3D 11.0، 12)،
  • بعض الميزات الثانوية (Direct3D 10.1، 11.1)، أو
  • مجموعة مشتركة من الميزات الاختيارية السابقة (Direct3D 11.0 "المستوى 10 9").

كل مستوى أعلى هو مجموعة شاملة تمامًا لمستوى أدنى، مع عدد قليل فقط من الميزات الجديدة أو الاختيارية سابقًا التي تُضاف إلى الوظائف الأساسية في المستوى الأعلى. [ 67 ] أما الميزات الأكثر تقدمًا في مراجعة رئيسية لواجهة برمجة تطبيقات Direct3D، مثل نماذج التظليل الجديدة ومراحل العرض، فلا تُتاح إلا على الأجهزة ذات المستوى الأعلى. [ 65 ] [ 66 ]

توجد إمكانيات منفصلة للإشارة إلى دعم عمليات نسيج محددة وتنسيقات موارد معينة؛ ويتم تحديد هذه الإمكانيات لكل تنسيق نسيج باستخدام مجموعة من علامات الإمكانيات. [ 155 ] [ 156 ]

تستخدم مستويات الميزات الشرطة السفلية كفاصل (أي "12_1")، بينما تستخدم إصدارات API/وقت التشغيل النقطة (أي "Direct3D 11.4").

Direct3D 11 مستوى

في Direct3D 11.4 لنظام التشغيل Windows 10، هناك تسعة مستويات للميزات مقدمة من خلال D3D_FEATURE_LEVELالبنية؛ المستويات 9_1 و9_2 و9_3 (المعروفة مجتمعة باسم Direct3D 10 المستوى 9 ) تعيد تغليف ميزات مختلفة لبطاقات Direct3D 9 الشائعة، وتشير المستويات 10_0 و10_1 إلى الإصدارات القديمة المقابلة من Direct3D 10، [ 65 ] وتعكس المستويات 11_0 و11_1 الميزة التي تم تقديمها مع واجهات برمجة التطبيقات وأوقات التشغيل Direct3D 11 وDirect3D 11.1، بينما تتوافق المستويات 12_0 و12_1 مع مستويات الميزات الجديدة التي تم تقديمها مع واجهة برمجة التطبيقات Direct3D 12.

مستويات الميزات في Direct3D 11.4
مستوى الميزاتميزات الأجهزة الإلزاميةميزات اختيارية
9_1نموذج التظليل 2.0 ( vs_2_0/ ps_2_0)، نسيج 2K، نسيج الحجم، استعلامات الأحداث، BC1-3 (المعروف أيضًا باسم DXTn)، وبعض القدرات المحددة الأخرى.غير متوفر
9_2استعلامات الحجب، تنسيقات الفاصلة العائمة (بدون مزج)، أحرف كبيرة موسعة، جميع ميزات 9_1.
9_3vs_2_a/ ps_2_xمع النسخ المتماثلة وحدود التظليل الإضافية، والقوام بدقة 4K، وأهداف العرض المتعددة (4 MRTs)، والمزج ذو النقطة العائمة (محدود)، وجميع ميزات 9_2.
10_0نموذج التظليل 4.0، تظليل هندسي، إخراج دفق، ألفا إلى التغطية، نسيج 8K، نسيج MSAA، استنسل ذو وجهين، طرق عرض هدف العرض العامة، مصفوفات النسيج، BC4/BC5، دعم كامل لتنسيق الفاصلة العائمة، جميع ميزات 9_3.عمليات المزج المنطقي، DirectCompute (CS 4.0/4.1)، تنسيقات البكسل الموسعة. [ 154 ]
10_1Shader Model 4.1، ومصفوفات cubemap، وMSAA الموسعة، وجميع ميزات 10_0.
11_0نموذج التظليل 5.0/5.1، تظليل الهيكل والمجال، DirectCompute (CS 5.0/5.1)، نسيج 16K، BC6H/BC7، تنسيقات البكسل الموسعة، جميع ميزات 10_1.عرض الطائرات بدون طيار فقط مع عدد عينات القوة، وإزاحة المخزن المؤقت الثابتة والتحديثات الجزئية، وعمليات الفاصلة العائمة ذات الدقة المزدوجة (64 بت)، والحد الأدنى لدقة الفاصلة العائمة (10 أو 16 بت )، وتصفية الحد الأدنى/الأقصى.
11_1عمليات المزج المنطقي، والتحويل النقطي المستقل عن الهدف، والطائرات بدون طيار في كل مرحلة من مراحل خط الأنابيب مع زيادة عدد الفتحات، والعرض باستخدام الطائرات بدون طيار فقط مع فرض عدد العينات، وإزاحة المخزن المؤقت الثابتة والتحديثات الجزئية، جميعها ميزات الإصدار 11_0.موارد مُرصّفة (أربعة مستويات)، وتقنية تحويل الصور إلى صور نقطية محافظة (ثلاثة مستويات)، وقيمة مرجعية للاستنسل من مُظلل البكسل، وعروض مُرتبة باستخدام مُحوّل الصور النقطية، وتحميلات UAV المكتوبة لتنسيقات إضافية.
12_0موارد البلاط من المستوى 2 (Texture2D)، تحميلات الطائرات بدون طيار المكتوبة (تنسيقات إضافية).
12_1المستوى الأول من عملية تحويل الصور إلى صور نقطية محافظة، عرض الصور النقطية المرتبة.

Direct3D 12 مستوى

يتطلب Direct3D 12 لنظام التشغيل Windows 10 بطاقة رسومات متوافقة مع مستويي الميزات 11_0 و11_1 اللذين يدعمان ترجمة عناوين الذاكرة الافتراضية، ويتطلبان برامج تشغيل WDDM 2.0. يوجد مستويان جديدان للميزات، 12_0 و12_1، يتضمنان بعض الميزات الجديدة التي يوفرها Direct3D 12 والتي تُعد اختيارية في المستويين 11_0 و11_1. [ 157 ] تمت إعادة ضبط بعض الميزات التي كانت اختيارية سابقًا لتصبح أساسية في المستويين 11_0 و11_1. تم إصدار Shader Model 6.0 مع تحديث Windows 10 Creators Update ويتطلب تحديث Windows 10 Anniversary Update وبرامج تشغيل WDDM 2.1.

مستويات ميزات Direct3D 12
مستوىالميزات الإلزاميةميزات اختيارية
11_0جميع الميزات الإلزامية 11_0 من Direct3D 11، Shader Model 5.1، Resource binding Tier 1.عمليات المزج المنطقي، عمليات الفاصلة العائمة ذات الدقة المزدوجة (64 بت)، الحد الأدنى لدقة الفاصلة العائمة (10 أو 16 بت).

ربط الموارد (ثلاثة مستويات)، موارد متجانبة (أربعة مستويات)، تحويل الصور النقطي المحافظ (ثلاثة مستويات)، قيمة مرجع الاستنسل من Pixel Shader، طرق عرض مرتبة بواسطة المُحَوِّل النقطي، تحميلات UAV المكتوبة لتنسيقات إضافية، نسخ العرض.

نموذج التظليل 6.0–6.7

الأوامر الوصفية، معدل التظليل المتغير، تتبع الأشعة، تظليل الشبكة، تغذية راجعة لأخذ العينات.

ميزات اختيارية أخرى. [ 158 ]

الطائرات بدون طيار في كل مرحلة من مراحل خط الأنابيب، عرض الطائرات بدون طيار فقط مع عدد عينات إجباري، وإزاحة مخزن مؤقت ثابتة وتحديثات جزئية.
11_1عمليات المزج المنطقي، والتحويل النقطي المستقل عن الهدف، وزيادة عدد فتحات الطائرات بدون طيار.
12_0ربط الموارد من المستوى 2، موارد البلاط من المستوى 2 (Texture2D)، تحميلات الطائرات بدون طيار المكتوبة (تنسيقات إضافية)، نموذج التظليل 6.0.
12_1المستوى الأول من عملية تحويل الصور إلى صور نقطية محافظة، عرض الصور النقطية المرتبة.
12_2DirectX 12 Ultimate : Shader Model 6.5, Raytracing Tier 1.1, Mesh Shaders, Variable-Rate Shading, Sampler Feedback, Resource Binding Tier 3, Tiled Resources Tier 3 (Texture3D), Conservative Rasterization Tier 3, 40-bit virtual address space.

يُقدّم Direct3D 12 نموذجًا مُحسّنًا لربط الموارد، يسمح بالتحكم الصريح في الذاكرة. تُمثَّل كائنات "عرض الموارد" المجردة [ 159 ] الآن باستخدام مُعرّفات الموارد، التي تُخصَّص باستخدام أكوام وجداول الذاكرة. [ 160 ] تُحدِّد مستويات ربط الموارد الحد الأقصى لعدد الموارد التي يُمكن الوصول إليها باستخدام CBV (عرض المخزن المؤقت الثابت)، وSRV (عرض موارد التظليل)، وUAV (عرض الوصول غير المُرتَّب)، بالإضافة إلى وحدات أخذ عينات النسيج. يسمح مستوى الأجهزة 3 بموارد غير مرتبطة تمامًا، ولا يحدّها سوى حجم كومة المُعرّفات، بينما يفرض مستوى الأجهزة 1 و2 بعض القيود على عدد المُعرّفات ("العروض") التي يُمكن استخدامها في وقت واحد. [ 161 ] [ 162 ]

مستويات ربط الموارد
حدود المواردالمستوى 1المستوى الثانيالمستوى 3
الواصفات في كومة CBV/SRV/UAVمليونمليونأكثر من مليون
عدد وحدات التحكم في الحزم لكل مرحلة تظليل1414كومة كاملة
عدد SRVs لكل مرحلة تظليل128كومة كاملة
الطائرات بدون طيار في جميع المراحل8, 64 64كومة كاملة
عدد العينات لكل مرحلة تظليل16كومة كاملة
64 فتحة على مستوى الميزات 11_1 للأجهزة

تعدد الخيوط

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

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

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

تم تقديم ميزة تبديل السياق الأكثر دقة، أي القدرة على تبديل خيطي تنفيذ على مستوى تعليمات التظليل بدلاً من مستوى الأمر الواحد أو حتى مجموعة الأوامر، في WDDM/DXGI 1.2 الذي تم إصداره مع نظام التشغيل Windows 8. [ 86 ] يتغلب هذا على مشكلة جدولة محتملة عندما يستغرق تنفيذ أمر واحد/مجموعة أوامر وقتًا طويلاً جدًا، مما يستدعي إنهاءه بواسطة مؤقت مراقبة نظام التشغيل. [ 163 ]

أُعيد تصميم WDDM 2.0 وDirectX 12 للسماح باستدعاءات الرسم متعددة الخيوط بالكامل. وقد تحقق ذلك بجعل جميع الموارد غير قابلة للتغيير (أي للقراءة فقط)، وتسلسل حالات العرض، واستخدام حزم استدعاءات الرسم. هذا يُجنّب إدارة الموارد المعقدة في برنامج تشغيل وضع النواة، مما يُتيح إمكانية استدعاءات متعددة قابلة لإعادة الدخول إلى برنامج تشغيل وضع المستخدم عبر سياقات تنفيذ متزامنة تُوفّرها خيوط عرض منفصلة في التطبيق نفسه.

Direct3D Mobile

يُعدّ Direct3D Mobile مشتقًا من Direct3D ولكنه يستهلك ذاكرة أقل . يدعم نظام التشغيل Windows CE تقنية Direct3D Mobile. [ 164 ]

تطبيقات بديلة

توجد تطبيقات بديلة لواجهة برمجة تطبيقات Direct3D، وهي مفيدة للأنظمة غير ويندوز وللأجهزة التي لا تدعم بعض إصدارات DirectX:

  • DXVK – طبقة ترجمة مفتوحة المصدر تعتمد على Vulkan لـ Direct3D 8/9/10/11، تُمكّن من تشغيل تطبيقات ثلاثية الأبعاد على نظام Linux باستخدام Wine. [ 165 ] [ 166 ] يستخدمها Proton / Steam [ 167 ] لنظام Linux. يستطيع DXVK تشغيل عدد كبير من ألعاب Windows الحديثة على نظام Linux.
    • D7VK – نسخة معدلة من DXVK مخصصة حصريًا لـ Direct3D 3 و 5 و 6 و 7. [ 168 ] [ 169 ] [ 170 ] [ 171 ]
    • D8VK – نسخة معدلة قديمة من DXVK لإضافة دعم Direct3D 8 على نظام Linux. [ 172 ] تم دمجها مع الإصدار 2.4 من DXVK الذي صدر في 10 يوليو 2024.
    • D9VK – نسخة معدلة قديمة من DXVK لإضافة دعم Direct3D 9، [ 173 ] مُضمنة مع Steam/Proton على نظام Linux. [ 174 ] في 16 ديسمبر 2019، تم دمج D9VK في DXVK. [ 175 ]
  • جاليوم ناين – يُمكّن جاليوم ناين من تشغيل تطبيقات Direct3D 9 على نظام لينكس بشكل أصلي، أي بدون أي ترجمة للدوال، مما يسمح بسرعة قريبة من سرعة النظام الأصلي. وهو يعتمد على Wine و Mesa . [ 176 ] [ 177 ]
  • vkd3d – مكتبة vkd3d هي مكتبة رسومات ثلاثية الأبعاد مفتوحة المصدر مبنية على Vulkan، وتتيح تشغيل تطبيقات Direct3D 12 على Vulkan . [ 178 ] تُستخدم بشكل أساسي في مشروع Wine ، [ 179 ] [ 180 ] وهي الآن مُضمنة في مشروع Proton التابع لشركة Valve والمُرفق مع Steam على نظام Linux.
  • WineD3D – يحتوي مشروع Wine مفتوح المصدر على تطبيقات عملية لواجهات برمجة تطبيقات Direct3D عبر ترجمتها إلى OpenGL . [ 181 ] ويمكن تشغيل تطبيق Wine على نظام Windows في ظل ظروف معينة. [ 182 ]

D3DX

يأتي Direct3D مزودًا بمكتبة D3DX، وهي مكتبة أدوات مصممة لإجراء العمليات الحسابية الشائعة على المتجهات والمصفوفات والألوان، وحساب مصفوفات الإسقاط والنظر، واستيفاءات الخطوط المنحنية ، والعديد من المهام الأكثر تعقيدًا، مثل تجميع أو دمج التظليلات المستخدمة في برمجة الرسومات ثلاثية الأبعاد، وتخزين الرسوم المتحركة الهيكلية المضغوطة، ومكدسات المصفوفات. تتضمن المكتبة العديد من الوظائف التي توفر عمليات معقدة على الشبكات ثلاثية الأبعاد ، مثل حساب فضاء المماس، وتبسيط الشبكة، ونقل الإشعاع المحسوب مسبقًا ، والتحسين لملاءمة ذاكرة التخزين المؤقت للرؤوس، والتجزئة، ومولدات شبكات النصوص ثلاثية الأبعاد. تشمل الميزات ثنائية الأبعاد فئات لرسم خطوط مساحة الشاشة، وأنظمة الجسيمات القائمة على النصوص والرسوم المتحركة . تشمل الوظائف المكانية إجراءات تقاطع متنوعة، والتحويل من/إلى الإحداثيات المركزية، ومولدات المربعات /الكرات المحيطة. يتم توفير D3DX كمكتبة ارتباط ديناميكي (DLL). تم إيقاف دعم D3DX بدءًا من نظام التشغيل Windows 8 ولا يمكن استخدامه في تطبيقات متجر Windows. [ 183 ]

تمت إزالة بعض الميزات الموجودة في الإصدارات السابقة من D3DX في Direct3D 11، وهي الآن متوفرة كمصادر منفصلة: [ 184 ]

  • Windows SDK و Visual Studio [ 185 ]
  • تم حذف جزء كبير من مكتبة الرياضيات. وتوصي مايكروسوفت باستخدام مكتبة DirectX Math بدلاً منها.
  • تمت إزالة الرياضيات التوافقية الكروية، وهي الآن موزعة كمصدر. [ 186 ]
  • تمت إزالة إطار عمل Effect ويتم توزيعه الآن كمصدر عبر CodePlex. [ 187 ]
  • تمت إزالة واجهة الشبكة ووظائف الهندسة، ويتم توزيعها الآن كمصدر عبر CodePlex ضمن مكتبة معالجة الهندسة DirectXMesh. [ 188 ]
  • تمت إزالة وظائف معالجة الصور، ويتم توزيعها الآن كمصدر عبر CodePlex ضمن مكتبة معالجة الصور DirectXTex. [ 189 ]
  • تمت إزالة الأدوات المساعدة العامة، ويتم توزيعها الآن كمصدر عبر CodePlex ضمن مشروع DirectX Tool Kit (DirectXTK). [ 190 ]
  • تمت إزالة أطلس نسيج المخطط المتساوي، ويتم توزيعه الآن كمصدر عبر CodePlex ضمن مشروع UVAtlas. [ 191 ]

DXUT

DXUT (المعروف أيضًا باسم إطار العمل التجريبي) هو طبقة مبنية على واجهة برمجة تطبيقات Direct3D. صُمم هذا الإطار لمساعدة المبرمج على تقليل الوقت المُستغرق في المهام الروتينية، مثل إنشاء نافذة، وإنشاء جهاز، ومعالجة رسائل نظام التشغيل Windows، والتعامل مع أحداث الجهاز. تمت إزالة DXUT مع إصدار Windows SDK 8.0، ويتم توزيعه الآن كمصدر عبر CodePlex. [ 192 ]

انظر أيضاً

مراجع

  1. "تكوين وظيفة استنسل العمق" . مايكروسوفت. 19 أغسطس 2020.
  2. "RenderStateManager.UseWBuffer" . مايكروسوفت. 6 نوفمبر 2009.
  3. "مزج النسيج (Direct3D 9)" . مايكروسوفت. 6 يناير 2021.
  4. "دمج الأشكال الهندسية (Direct3D 9)" . مايكروسوفت. 6 يناير 2021.
  5. "HLSL" . مايكروسوفت. 4 أغسطس 2021.
  6. "التأثيرات (Direct3D 11)" . مايكروسوفت. 11 يونيو 2021.
  7. "مجموعة أدوات تطوير برامج DirectX، أكتوبر 2006" . مايكروسوفت. مؤرشف من الأصل في 2 نوفمبر 2011.
  8. "دليل منصة ويندوز المتقدمة للتحويل النقطي (WARP) - بنية WARP وأداؤها" . MSDN. 11 أكتوبر 2022.
  9. "DirectX 8: رفع مستوى الواقعية في الرسومات" (ملف PDF) . evga.com . تم الاطلاع عليه بتاريخ 6 سبتمبر 2023 .
  10. "الصفحة الرئيسية > تقنية ATI SMARTSHADER لوحدات معالجة الرسومات - تشغيل الجيل القادم من Radeon" . anandtech.com . مؤرشف من الأصل في 4 أبريل 2017. تم الاطلاع عليه في 6 سبتمبر 2023 .
  11. "مُظلِّلات الرؤوس ومُظلِّلات البكسل" . thg.ru/ . تم الاطلاع عليه في 6 سبتمبر 2023 .
  12. بينفولد، دوم (16 يناير 2002). "مُظلِّلات الرؤوس ومُظلِّلات البكسل" . مؤرشف من الأصل في 1 سبتمبر 2012. تم الاطلاع عليه في 15 مارس 2026 .
  13. "تنزيلات مايكروسوفت دايركت إكس لأنظمة ويندوز (Win95، Win98، Win98SE، WinME، Win2000، WinXP)" . www.falconfly.de . مؤرشف من الأصل بتاريخ 10 نوفمبر 2006. تم الاطلاع عليه بتاريخ 11 يناير 2022 .
  14. "DirectX 9.0c End-User Runtime" . مايكروسوفت . 17 أكتوبر 2007. مؤرشف من الأصل في 11 سبتمبر 2012. تم الاطلاع عليه في 11 يناير 2022 .
  15. "فريق إدارة شركة كيوب سوفت" . qubesoft.com. 4 أبريل 2017. مؤرشف من الأصل في 6 أبريل 2017. تم الاطلاع عليه في 5 أبريل 2017 .
  16. 1 2 كلارو، نيكول (أبريل 1995). "مزيد من العرض" (ملف PDF) . مجلة مطوري الألعاب . مؤرشف (ملف PDF) من الأصل في 26 يناير 2021. تم الاطلاع عليه في 21 أغسطس 2022 .
  17. بروسايز، جيف (16 مايو 1995). "الانضمام إلى حزب الوسائط المتعددة" . مجلة الكمبيوتر الشخصي . تم الاسترجاع في 20 أغسطس 2022 .
  18. تومسون، نايجل (أغسطس 1996). "بناء مشهد باستخدام وضع الاحتفاظ في Direct3D" (ملف PDF) . مجلة مطوري الألعاب . مؤرشف (ملف PDF) من الأصل في 26 يناير 2021. تم الاطلاع عليه في 20 أغسطس 2022 .
  19. بيركس، أوتو (12 أبريل 2015). "دايركت إكس" . مدونة أوتو بيركس . تم الاطلاع عليه بتاريخ 22 أغسطس 2022 .
  20. تشين، ريموند (22 يناير 2004). "ماذا حدث لـ DirectX 4؟" . الشيء الجديد القديم . مايكروسوفت . تم الاسترجاع في 28 أغسطس 2022 .
  21. "بيان صحفي - انهيار مايكروسوفت (فبراير 1997)" . شركة مايكروسوفت. 18 فبراير 1997.
  22. "بيان صحفي - انهيار مايكروسوفت (يوليو 1997)" . شركة مايكروسوفت. 22 يوليو 1997.
  23. رون فوسنر. "احصل على عرض ثلاثي الأبعاد سريع وبسيط باستخدام DrawPrimitive و DirectX 5.0" . مجلة أنظمة مايكروسوفت.
  24. "برمجة إطار عمل الوضع الفوري لـ Direct3D 7، الجزء 3: تعدد النسيج" . gamedev.net. 29 مايو 2000. مؤرشف من الأصل في 5 أغسطس 2011. تم الاطلاع عليه في 17 سبتمبر 2011 .
  25. "مايكروسوفت تُصدر الإصدار النهائي من DirectX 6.0" . مايكروسوفت. 7 أغسطس 1998.
  26. "مايكروسوفت تُصدر DirectX 6.1" . مايكروسوفت. 3 فبراير 1999.
  27. "تحديث بيل غيتس لبرنامج تاليسمان، أبريل 1997" (ملف PDF) . مايكروسوفت. 5 مايو 1997. مؤرشف من الأصل (ملف PDF) في 8 ديسمبر 2015. تم الاطلاع عليه في 31 أكتوبر 2015 .
  28. "DDS (تنسيق سطح الرسم المباشر)" . MSDN. 19 أغسطس 2020.
  29. "DirectX 7: [ مقرر إصداره ] يوليو 1999" . GameSpot . المملكة المتحدة. مارس 1999. مؤرشف من الأصل في 8 مايو 1999. تم الاطلاع عليه في 20 يوليو 2019 .
  30. "مايكروسوفت تعلن عن إصدار DirectX 8.0" . مايكروسوفت. 9 نوفمبر 2000. تم الاطلاع عليه في 7 يناير 2015 .
  31. "ميزة الحركة المباشرة: DirectX 8.0" . جيم سبوت . المملكة المتحدة. مؤرشف من الأصل في 23 فبراير 2001. تم الاطلاع عليه في 20 يوليو 2019 .
  32. "رسومات وفيديو DirectX 8: بداية جديدة" . gamedev.net. 30 نوفمبر 2000. مؤرشف من الأصل في 4 يونيو 2007. تم الاطلاع عليه في 18 فبراير 2007 .
  33. "Direct3D 9 Graphics" . MSDN . تم الاطلاع عليه في 30 سبتمبر 2014 .
  34. "كتابة تظليلات HLSL في Direct3D 9" . MSDN . تم الاطلاع عليه في 30 سبتمبر 2014 .
  35. "HLSL في Direct3D 9.0" . مايكروسوفت . مؤرشف من الأصل في 27 أغسطس 2010.
  36. "أهداف عرض متعددة (Direct3D 9)" . MSDN . تم الاطلاع عليه في 30 سبتمبر 2014 .
  37. "الخامات متعددة العناصر (Direct3D 9)" . MSDN . تم الاطلاع عليه في 30 سبتمبر 2014 .
  38. "تقنيات مخزن الاستنسل (Direct3D 9)" . MSDN . تم الاطلاع عليه في 30 سبتمبر 2014 .
  39. "تحسينات Direct3D 9Ex" . MSDN . تم الاطلاع عليه في 30 سبتمبر 2014 .
  40. "واجهات برمجة تطبيقات الرسومات في ويندوز" . MSDN. أغسطس 2009.
  41. 1 2 "دور نموذج برنامج تشغيل عرض ويندوز في DWM" . 2 أبريل 2006.
  42. "ميزات واجهة برمجة التطبيقات (Direct3D 10)" . MSDN . تم الاطلاع عليه في 30 سبتمبر 2014 .
  43. دعم مايكروسوفت (17 مارس 2009). "إزالة وضع الاحتفاظ بـ Direct3D من ويندوز فيستا" . مؤرشف من الأصل في 1 يونيو 2013.
  44. "مجموعة أدوات تطوير برامج DirectX" . مايكروسوفت. 2 فبراير 2007. مؤرشف من الأصل في 18 نوفمبر 2012.
  45. "أنواع الموارد (Direct3D 10)" . MSDN . تم الاطلاع عليه في 30 سبتمبر 2014 .
  46. "طبقات واجهة برمجة التطبيقات (Direct3D 10)" . MSDN . تم الاطلاع عليه في 30 سبتمبر 2014 .
  47. "أخبار سي نت" . تم الاطلاع عليه في 30 سبتمبر 2014 .
  48. "Common-Shader Core" . مايكروسوفت. 30 يونيو 2021.
  49. "ميزات تظليل الهندسة" . مايكروسوفت. 23 أغسطس 2019.
  50. "مراحل التظليل" . مايكروسوفت. 11 أكتوبر 2016.
  51. "ما هو Direct3D 10 - تحسينات إضافية" . موقع Tom's Hardware. 8 نوفمبر 2006.
  52. "ميزات Direct3D 10.1" . MSDN . تم الاطلاع عليه في 30 سبتمبر 2014 .
  53. "مايكروسوفت تقدم تفاصيل DirectX 10.1 في مؤتمر SIGGRAPH" . إكستريم تك. 7 أغسطس 2007.
  54. "ميزات Direct3D 10.1" . MSDN. 6 يناير 2021.
  55. 1 2 "طريقة ID3D11Device::CheckMultisampleQualityLevels" . MSDN . تم الاطلاع عليه في 30 سبتمبر 2014 .
  56. 1 2 3 تشاك والبورن (20 يونيو 2012). "مستويات ميزات Direct3D" . مدونة ألعاب ويندوز وDirectX SDK .
  57. "تعداد D3D10_FEATURE_LEVEL1" . MSDN . تم الاطلاع عليه بتاريخ 22 نوفمبر 2009 .
  58. "مستويات ميزات Direct3D" . MSDN . تم الاطلاع عليه في 30 سبتمبر 2014 .
  59. "ميزات Direct3D 11" . MSDN . تم الاطلاع عليه في 30 سبتمبر 2014 .
  60. 1 2 3 "عروض جيم فيست 2008" . مايكروسوفت. مؤرشف من الأصل في 13 نوفمبر 2013.
  61. 1 2 "عروض تقنية Nvision 08" . إنفيديا . تم الاطلاع عليه في 16 سبتمبر 2011 .
  62. "مجموعة أدوات تطوير برامج DirectX، نوفمبر 2008" . مايكروسوفت. 7 نوفمبر 2008.
  63. "شركة AMD تستعرض أول وحدة معالجة رسومية في العالم تدعم DirectX 11" . موقع Engadget. 3 يونيو 2009.
  64. 1 2 "مقدمة إلى خط أنابيب الرسومات Direct3D 11 - عرض تقديمي من GameFest 2008" . مايكروسوفت. 27 أغسطس 2008. الشريحة 56. مؤرشف من الأصل في 5 نوفمبر 2012.
  65. 1 2 3 "Direct3D 11 على الأجهزة ذات الإصدارات الأقدم" . MSDN . تم الاطلاع عليه في 18 نوفمبر 2012 .
  66. 1 2 "مجموعة برامج تشغيل ويندوز - دعم Direct3D 11" . MSDN . تم الاطلاع عليه في 13 يونيو 2009 .
  67. 1 2 "مستويات ميزات Direct3D" . MSDN . تم الاطلاع عليه في 2 يوليو 2012 .
  68. "استخدام تجزئة الأجهزة من ATI في DX9" . 14 يوليو 2008.
  69. "مجموعة أدوات تطوير تجزئة AMD DX9" . مؤرشفة من الأصل في 8 نوفمبر 2010.
  70. "برمجة التجزئة في الوقت الحقيقي على وحدة معالجة الرسومات" (ملف PDF) . مؤرشف من الأصل (ملف PDF) في 27 يوليو 2011.
  71. "أمثلة على تجزئة OpenGL" . مؤرشف من الأصل في 9 أبريل 2010.
  72. "أنواع الموارد الجديدة" . MSDN . تم الاطلاع عليه في 30 سبتمبر 2014 .
  73. "انحياز العمق" . MSDN . تم الاطلاع عليه في 30 سبتمبر 2014 .
  74. "بنية D3D11_RASTERIZER_DESC1" . MSDN . تم الاطلاع عليه في 30 سبتمبر 2014 .
  75. "Shader Model 5" . MSDN . تم الاطلاع عليه في 30 سبتمبر 2014 .
  76. "نظرة عامة على التبليط" . مايكروسوفت. 16 سبتمبر 2020.
  77. "نظرة عامة على التبليط" . MSDN . تم الاطلاع عليه في 30 سبتمبر 2014 .
  78. "وصف تحديث النظام الأساسي لنظام التشغيل Windows Server 2008 وتحديث النظام الأساسي لنظام التشغيل Windows Vista" . Support.microsoft.com. 2 أكتوبر 2012. تم الاطلاع عليه في 15 يونيو 2013 .
  79. "تحديث النظام الأساسي لنظام التشغيل ويندوز فيستا - مدونة مطوري DirectX - الصفحة الرئيسية للموقع - مدونات MSDN" . Blogs.msdn.com. 10 سبتمبر 2009. مؤرشف من الأصل في 8 أبريل 2014. تم الاطلاع عليه في 15 يونيو 2013 .
  80. "ميزات Direct3D 11.1" . MSDN . تم الاطلاع عليه في 30 سبتمبر 2014 .
  81. "بنية D3D11_FEATURE_DATA_D3D11_OPTIONS" . MSDN . تم الاطلاع عليه في 30 سبتمبر 2014 .
  82. "تحسينات ميزات DirectX في نظام التشغيل Windows 8" . MSDN . تم الاطلاع عليه في 30 سبتمبر 2014 .
  83. "ميزات Direct3D 11.1" . MSDN . تم الاطلاع عليه في 13 سبتمبر 2009 .
  84. "تحسينات DXGI 1.2" . MSDN . تم الاطلاع عليه في 30 سبتمبر 2014 .
  85. "ميزات WDDM 1.2" . MSDN . تم الاطلاع عليه في 30 سبتمبر 2014 .
  86. 1 2 3 "تحسينات نموذج برنامج تشغيل شاشة ويندوز في معاينة مطوري ويندوز" . MSDN. 13 سبتمبر 2011.
  87. "الأنواع العددية" . تم الاطلاع عليه في 2 أكتوبر 2014 .
  88. "معالج الرسوميات المدمج Haswell من إنتل يدعم DirectX 11.1، ويعزز دعم التطبيقات الاحترافية" . AnandTech. 5 أغسطس 2011. مؤرشف من الأصل في 13 سبتمبر 2011.
  89. "DirectX Graphics – تحديث النظام الأساسي لنظام التشغيل Windows 7" . MSDN. 14 نوفمبر 2012.
  90. "DirectX 11.1 وويندوز 7" . مدونة ألعاب ويندوز وDirectX SDK . 13 نوفمبر 2012.
  91. "برمجة DirectX" . MSDN. مؤرشف من الأصل في 31 أكتوبر 2013. تم الاطلاع عليه في 30 سبتمبر 2014 .
  92. "ميزات Direct3D 11.2" . MSDN . تم الاطلاع عليه في 30 سبتمبر 2014 .
  93. "بنية D3D11_FEATURE_DATA_D3D11_OPTIONS1" . MSDN . تم الاطلاع عليه في 30 سبتمبر 2014 .
  94. 1 2 "دليل ميزات ويندوز 8.1 - برمجة DirectX" . مكتبة MSDN . 26 يونيو 2013. مؤرشف من الأصل في 27 أغسطس 2015. تم الاطلاع عليه في 27 يونيو 2013 .
  95. 1 2 بينيت سوربو (26 يونيو 2013). "ما الجديد في Direct3D 11.2" . القناة التاسعة - BUILD 2013 .
  96. "تحسينات DXGI 1.3" . مكتبة MSDN . 26 يونيو 2013.
  97. "ما الجديد في برامج تشغيل العرض الخاصة بنظام التشغيل Windows 8.1 Preview (WDDM 1.3)" . MSDN . تم الاطلاع عليه في 30 سبتمبر 2014 .
  98. "تم نقل المحتوى (ويندوز)" . مؤرشف من الأصل في 4 مارس 2016. تم الاطلاع عليه في 6 مارس 2015 .
  99. "تعداد D3D11_TILED_RESOURCES_TIER" . MSDN . تم الاطلاع عليه في 30 سبتمبر 2014 .
  100. تشارلز هوليميرش، مات ساندي (26 يونيو 2013). "الخامات الافتراضية الضخمة للألعاب: موارد Direct3D المُجزأة" . القناة التاسعة - BUILD 2013 .
  101. "ميزات Direct3D 11.2" . مكتبة MSDN . 26 يونيو 2013.
  102. "مدونات MSDN" . MSDN . تم الاطلاع عليه في 30 سبتمبر 2014 .
  103. "بنية D3D11_FEATURE_DATA_D3D9_SIMPLE_INSTANCING_SUPPORT" . MSDN . تم الاطلاع عليه في 30 سبتمبر 2014 .
  104. "رفع مستوى الأداء باستخدام Direct3D" . بناء تطبيقات لنظام التشغيل Windows . 14 أكتوبر 2013. تم الاطلاع عليه في 30 سبتمبر 2014 .
  105. "مايكروسوفت ترفض رسميًا مانتل" . 16 أكتوبر 2013. تم الاطلاع عليه في 30 سبتمبر 2014 .
  106. مقطع كريس تيكتور من http://channel9.msdn.com/Blogs/DirectX-Developer-Blog/DirectX-Evolving-Microsoft-s-Graphics-Platform (يبدأ تقريبًا عند الدقيقة 18).
  107. "العرض (رسومات Direct3D 12) - تطبيقات Win32" . 30 ديسمبر 2021.
  108. 1 2 سميث، رايان (18 سبتمبر 2014). "مايكروسوفت تُفصّل ميزات العرض الجديدة في Direct3D 11.3 و12" . AnandTech . مؤرشف من الأصل في 26 سبتمبر 2014. تم الاطلاع عليه في 30 سبتمبر 2014 .
  109. سميث، رايان (18 سبتمبر 2014). "مراجعة NVIDIA GeForce GTX 980: Maxwell Mark 2" . AnandTech . مؤرشف من الأصل في 22 سبتمبر 2014. تم الاطلاع عليه في 30 سبتمبر 2014. من أبرز ميزات Maxwell 2 الجديدة، دعمه الكامل لـ Direct3D 11.2/11.3.
  110. 1 2 "ملخص الميزات الجديدة لـ DirectX 11.3 - الموارد المُجزأة - تحميلات الطائرات بدون طيار المُصنفة" . 19 سبتمبر 2014. تم الاطلاع عليه في 30 سبتمبر 2014 .
  111. "تعداد D3D11_CONSERVATIVE_RASTERIZATION_TIER" . مكتبة MSDN . 22 فبراير 2015. تم الاطلاع عليه في 22 فبراير 2015 .
  112. "ميزات Direct3D 11.3" . مكتبة MSDN . 28 مارس 2015. تم الاطلاع عليه في 28 مارس 2015 .
  113. "مدونة ألعاب ويندوز و DirectX SDK" .
  114. 1 2 ريان سميث. "أناند تك - مايكروسوفت تعلن عن دايركت إكس 12: برمجة الرسومات منخفضة المستوى تصل إلى دايركت إكس" . مؤرشف من الأصل في 27 مارس 2014. تم الاطلاع عليه في 30 سبتمبر 2014 .
  115. "منطقة مطوري إنتل" . إنتل . تم الاطلاع عليه بتاريخ 21 ديسمبر 2022 .
  116. "نظرة عامة على Direct3D 12 الجزء 1: 'أقرب إلى المعدن'"تم الاطلاع عليه بتاريخ 2 أكتوبر 2014 .
  117. أول دقيقتين من https://channel9.msdn.com/Events/Build/2014/3-564
  118. "نظرة فاحصة على DirectX 12 - التقرير التقني - الصفحة 3" . 31 مارس 2014. تم الاطلاع عليه في 30 سبتمبر 2014 .
  119. "2484602-pixel+ordered+uav.jpg" . مؤرشف من الأصل في 30 أبريل 2018. تم استرجاعه في 19 سبتمبر 2014 .
  120. 1 2 "Shader Model 5.1 - تطبيقات Win32" . 20 نوفمبر 2019.
  121. "تعرّف على مستقبل رسومات الحاسوب الشخصي: مايكروسوفت تكشف عن DirectX 12 أسرع وأقرب إلى أداء أجهزة الألعاب المنزلية" . PCWorld . 20 مارس 2014. تم الاطلاع عليه بتاريخ 30 سبتمبر 2014 .
  122. «سيضيف DirectX 12 أيضًا ميزات جديدة لوحدات معالجة الرسومات من الجيل التالي» . 21 مارس 2014. تم الاطلاع عليه في 30 سبتمبر 2014 .
  123. كواليسكي، سيريل (21 مارس 2014). "سيضيف DirectX 12 أيضًا ميزات جديدة لوحدات معالجة الرسومات من الجيل التالي" . تقرير التقنية . تم الاطلاع عليه في 1 أبريل 2014 .
  124. "المكتبة التقنية" . إنتل . تم الاطلاع عليه في 21 ديسمبر 2022 .
  125. stevewhims (30 ديسمبر 2021). "خطوط الأنابيب والظلال مع Direct3D 12 - تطبيقات Win32" . learn.microsoft.com . تم الاطلاع عليه في 19 ديسمبر 2023 .
  126. 1 2 stevewhims (6 فبراير 2023). "نظرة عامة على توقيعات الجذر - تطبيقات Win32" . learn.microsoft.com . تم الاطلاع عليه في 19 ديسمبر 2023 .
  127. "نظرة عامة على Direct3D 12 الجزء 7: الأكوام الديناميكية" . تم الاطلاع عليه في 2 أكتوبر 2014 .
  128. "محول متعدد" . مؤرشف من الأصل في 14 سبتمبر 2016. تم الاطلاع عليه في 3 أغسطس 2016 .
  129. "نقل ألعاب DirectX 12 إلى نظام التشغيل Windows 7" . 21 أغسطس 2019.
  130. "DirectX-Specs" .
  131. ^ "Microsoft.Direct3D.D3D12On7 1.1.0" .
  132. نموذج تظليل HLSL 6.0
  133. 1 2 "الإعلان عن ميزات جديدة في DirectX 12" . مدونة مطوري DirectX . تم الاطلاع عليه بتاريخ 24 فبراير 2018 .
  134. "التعلم الآلي المباشر (DirectML)" . وثائق مايكروسوفت . تم الاطلاع عليه بتاريخ 28 يونيو 2020 .
  135. "DirectML" . مستندات مايكروسوفت.
  136. "القادم إلى DirectX 12 - تظليل الشبكة وتظليل التضخيم: إعادة ابتكار مسار الهندسة" . مدونة مطوري DirectX . تم الاطلاع عليه في 28 يونيو 2020 .
  137. "قريبًا من DirectX 12 - ملاحظات حول أداة Sampler: بعض البيانات المفيدة التي كانت مخفية سابقًا، أصبحت متاحة الآن" . مدونة مطوري DirectX . تم الاطلاع عليها في 4 نوفمبر 2019 .
  138. "DirectX Raytracing (DXR) Tier 1.1" . مدونة مطوري DirectX . تم الاطلاع عليه بتاريخ 6 نوفمبر 2019 .
  139. "القادم إلى DirectX 12: مزيد من التحكم في تخصيص الذاكرة" . مدونة مطوري DirectX . تم الاطلاع عليه بتاريخ 11 نوفمبر 2019 .
  140. "برنامج تحويل الصور النقطية لمجموعة تطوير البرامج (SDK) الخاصة بـ Microsoft DirectX 9.0" . مايكروسوفت. 1 أغسطس 2005. مؤرشف من الأصل في 5 سبتمبر 2012.
  141. "موارد Direct3D - مجمع الذاكرة" . مؤرشف من الأصل في 9 مايو 2008.
  142. "خط أنابيب الرسومات" . رسومات Direct3D 11. وثائق مايكروسوفت . تم الاطلاع عليه في 19 أكتوبر 2021 .
  143. "مرحلة تجميع المدخلات" . رسومات Direct3D 11. وثائق مايكروسوفت . 4 نوفمبر 2020. تم الاطلاع عليه في 19 أكتوبر 2021 .
  144. "مرحلة تظليل الرؤوس" . رسومات Direct3D 11. وثائق مايكروسوفت . تم الاطلاع عليه في 19 أكتوبر 2021 .
  145. "مراحل التجزئة" . رسومات Direct3D 11. وثائق مايكروسوفت . 16 سبتمبر 2020. مرحلة تظليل الهيكل . تم الاسترجاع في 19 أكتوبر 2021 .
  146. "مراحل التجزئة" . رسومات Direct3D 11. وثائق مايكروسوفت . 16 سبتمبر 2020. مرحلة التجزئة . تم الاسترجاع في 19 أكتوبر 2021 .
  147. "مراحل التجزئة" . رسومات Direct3D 11. وثائق مايكروسوفت . 16 سبتمبر 2020. مرحلة تظليل المجال . تم الاسترجاع في 19 أكتوبر 2021 .
  148. "مرحلة تظليل الهندسة" . رسومات Direct3D 11. وثائق مايكروسوفت . 24 مايو 2021. تم الاطلاع عليه في 19 أكتوبر 2021 .
  149. "مرحلة إخراج البيانات المتدفقة" . رسومات Direct3D 11. وثائق مايكروسوفت . 4 نوفمبر 2020. تم الاطلاع عليه في 19 أكتوبر 2021 .
  150. "RenderStates" . DirectX 9.0 للتعليمات البرمجية المُدارة. وثائق مايكروسوفت . 6 نوفمبر 2009. تم الاطلاع عليه في 19 أكتوبر 2021 .
  151. "مرحلة التحويل النقطي" . رسومات Direct3D 11. وثائق مايكروسوفت . 4 نوفمبر 2020. تم الاطلاع عليه في 19 أكتوبر 2021 .
  152. "مرحلة تظليل البكسل" . رسومات Direct3D 11. وثائق مايكروسوفت . 19 أغسطس 2020. تم الاطلاع عليه في 19 أكتوبر 2021 .
  153. "مرحلة دمج المخرجات" . رسومات Direct3D 11. وثائق مايكروسوفت . 24 مايو 2021. تم الاطلاع عليه في 19 أكتوبر 2021 .
  154. 1 2 "ميزات Direct3D 11.1 - تطبيقات Win32" . 19 أغسطس 2020.
  155. "تعداد دعم تنسيق D3D11" . MSDN . تم الاطلاع عليه في 16 يونيو 2015 .
  156. "تعداد D3D11_FORMAT_SUPPORT2" . MSDN . تم الاطلاع عليه في 16 يونيو 2015 .
  157. "مستويات الأجهزة - تطبيقات Win32" . learn.microsoft.com . 30 ديسمبر 2021. تم الاطلاع عليه في 21 ديسمبر 2022 .
  158. "D3D12_FEATURE - تطبيقات Win32" . 14 فبراير 2023.
  159. "مقدمة إلى مورد في Direct3D 11 - تطبيقات Win32" . 6 أكتوبر 2021.
  160. فولفغانغ إنجل . "مقدمة في ربط الموارد في مايكروسوفت دايركت إكس 12" .
  161. GVCS005 - مايكروسوفت دايركت ثري دي 12: تفاصيل واجهة برمجة التطبيقات الجديدة وتحسينات إنتل (مؤرشف في 4 أبريل 2015، على موقع Wayback Machine)
  162. "العروض" . learn.microsoft.com . تم الاطلاع عليه في 21 ديسمبر 2022 .
  163. "اكتشاف مهلة الاتصال واستعادتها (TDR) - برامج تشغيل ويندوز" . مايكروسوفت .
  164. ^ Direct3D موبايل ، مايكروسوفت، 6 يناير 2010.
  165. جيسون إيفانجيلو (1 مارس 2019). "ويندوز 10 مقابل لينكس: اختبار أداء 6 ألعاب من ستيم على جهاز Intel Hades Canyon NUC" . فوربس . تم الاطلاع عليه في 7 أكتوبر 2019 .
  166. ريبوهلي، فيليب (3 أبريل 2019)، تطبيق D3D11 وD3D10 القائم على Vulkan لنظام Linux / Wine: doitsujin/dxvk ، تم الاطلاع عليه في 3 أبريل 2019
  167. أداة توافق لـ Steam Play تعتمد على Wine ومكونات إضافية: ValveSoftware/Proton ، Valve ، 3 أبريل 2019 ، تم الاطلاع عليها في 3 أبريل 2019
  168. تساقط الثلوج في الشتاء (13 مارس 2026)، WinterSnowfall/d7vk ، تم استرجاعه في 13 مارس 2026
  169. لارابيل، مايكل (7 نوفمبر 2025). "D7VK تهدف إلى تقديم Direct3D 7 على Vulkan" . فورونيكس . تم الاسترجاع في 13 مارس 2026 .
  170. أورلاند، كايل (10 نوفمبر 2025). "مشروع جديد يوفر توافقًا قويًا مع نظام لينكس لمزيد من ألعاب ويندوز الكلاسيكية" . آرس تكنيكا . تم الاطلاع عليه في 13 مارس 2026 .
  171. لارابيل، مايكل (11 مارس 2026). "إصدار D7VK 1.5 مع دعم Direct3D 3 عبر Vulkan" . فورونيكس . تاريخ الاسترجاع: 15 مارس 2026 .
  172. "مستودع D8VK على GitHub" . GitHub . تم الاطلاع عليه في 2 فبراير 2024 .
  173. "مستودع D9VK على GitHub" . GitHub . تم الاطلاع عليه في 6 أكتوبر 2019 .
  174. لارابيل، مايكل (30 يوليو 2019). "إعادة بناء بروتون على واين 4.11، وإضافة D9VK Direct3D 9، وتحسين استخدام وحدة المعالجة المركزية، وDXVK 1.3" . فورونيكس . تم الاطلاع عليه في 15 مارس 2026 .
  175. "تنفيذ واجهة Direct3D9 الأمامية بواسطة جوشوا أشتون · طلب سحب رقم 1275 · doitsujin/dxvk" . جيت هاب . تم الاطلاع عليه في 17 ديسمبر 2019 .
  176. بناء دعم Gallium Nine على تثبيت WINE موجود: iXit/wine-nine-standalone ، مجموعة iXit، 3 أبريل 2019 ، تم الاطلاع عليه في 3 أبريل 2019
  177. جوي سنيدون (10 أكتوبر 2018). "أوبونتو 18.10 تدعم Gallium Nine، وأحدث إصدار من Mesa 18.2.2" . يا إلهي! أوبونتو! . تم الاطلاع عليه في 7 أكتوبر 2019 .
  178. WineHQ - vkd3d ، Direct3D 12، 3 أبريل 2019 ، تم الاطلاع عليه في 30 يونيو 2020
  179. "إصدار Vkd3d 1.0" . WineHQ . تم الاطلاع عليه في 3 أبريل 2019 .
  180. لارابيل، مايكل (23 أغسطس 2019). "بروتون من فالف تقدم فرعًا مع VKD3D لـ Direct3D 12 عبر Vulkan" . فورونيكس . تم الاسترجاع في 15 مارس 2026 .
  181. "يفخر فريق Wine بالإعلان عن الإصدار المستقر Wine 4.0" . WineHQ . تم الاطلاع عليه في 3 أبريل 2019 .
  182. "WineD3DOnWindows – موسوعة النبيذ الرسمية" . Wiki.winehq.org. 2 يونيو 2013. مؤرشف من الأصل في 17 يناير 2009. تم الاطلاع عليه في 15 يونيو 2013 .
  183. "مرجع D3DX 11" . MSDN . تم الاطلاع عليه في 30 سبتمبر 2014 .
  184. "العيش بدون D3DX" . MSDN.
  185. "أداة تجميع التأثيرات" . مايكروسوفت. 19 أغسطس 2020.
  186. "رياضيات التوافقيات الكروية" . msdn.com . تم الاطلاع عليه بتاريخ 23 نوفمبر 2014 .
  187. "التأثيرات 11" . كود بليكس . مؤرشف من الأصل في 24 سبتمبر 2014. تم الاطلاع عليه في 30 سبتمبر 2014 .
  188. "مكتبة معالجة هندسة DirectXMesh" . CodePlex . مؤرشف من الأصل في 29 سبتمبر 2014. تم الاطلاع عليه في 30 سبتمبر 2014 .
  189. "مكتبة معالجة نسيج DirectXTex" . CodePlex . مؤرشف من الأصل في 25 سبتمبر 2014. تم الاطلاع عليه في 30 سبتمبر 2014 .
  190. "مجموعة أدوات DirectX" . CodePlex . مؤرشف من الأصل في 29 سبتمبر 2014. تم الاطلاع عليه في 30 سبتمبر 2014 .
  191. "UVAtrlas" . CodePlex . مؤرشف من الأصل في 27 يونيو 2015. تم الاطلاع عليه في 23 نوفمبر 2014 .
  192. "تحديث DXUT لسطح المكتب Win32" . MSDN.