اقتراحي هو كالآتي وبهذا الترتيب: XNA فـ OpenGL فـ Direct3D.
السبب: باستخدام XNA تستطيع الحصول على نتائج بوقت قصير نسبياً وبمجهود برمجي محدود، وذلك لكون XNA يقدم العديد من التسهيلات للعمليات الشائعة في رسوميات الحاسوب.
يأتي بعدها OpenGL وذلك فقط لأنك في بيئة أكاديمية تقدر OpenGL أكثر من Direct3D (بغض النظر عن وجهة نظرهم).
أخيراً Direct3D رغم أنه ذو طابع عصري ويأتي مع تسهيلات كثيرة تقترب من XNA، إلا أنه (ولسبب ما) غير محبذ في الأوساط الأكاديمة.
أما في 19/ذو الحجة/1430 09:49 ص، فقد تنهد YAS-SAY بارتياح وهو يرد:
ياريت توضحولنا شو الفروق بين هي المكتبات
كل من دايركت ثري دي وأوبن جي إل متشابهين في الوظيفة والأهداف، فهما واجهات برمجة يدعمها نظام التشغيل تستطيع استخدامهما لإظهار الرسوميات بأداء عالي. التعامل مع كلا المكتبتين يتم على مستوى المثلثات وحالة جهاز الرسم (render states)، وهو مستوى خفيض نسبياً، ويتطلب جهداً كبيراً لتطوير برنامج يقوم بالوظائف الاعتيادية لبرامج الرسوميات العصرية كالألعاب (إظهار شخصيات، تحريكها، مواد، إكساءات، ... الخ).
يبقى الاختلاف بينهما في تصميم الـ API، فأقرب تشبيه لهما هو أن OpenGL يكافئ لغة C و Direct3D يكافئ لغة ++C. وفي كليهما تستطيع الوصول لنفس النتائج.
ثم تأتي XNA كمكتبة ذات مستوى أعلى من كلا المكتبتين السابقتين. وهي تقدم العديد من الوظائف الجاهزة، وبالتالي تستطيع بناء برنامجك بشكل أسرع باستخدام XNA. يحصر استخدام XNA من خلال لغة #C فقط، وقد يعتبر البعض هذا نقصاً، لكن نحن يهمنا النتيجة في النهاية.
أرجو أن يكون اقتراحي ذا عون لك في اتخاذك القرار، وإن كانت لديك أية أسئلة فلا تتردد بطرحها هنا ☺
برأيي اقرأ مواضيع الرسوميات في الكتابين الأولين، ثم انتقل للكتاب المتقدم هذا. ونحن معك إن شاء الله إن واجهتَ أية مشكلة أو أردتَ طرح أي سؤال أو نقاش في XNA.