الرسم السريع ثلاثي الأبعاد

QuickDraw 3D ، أو QD3D اختصارًا، هي واجهة برمجة تطبيقات للرسومات ثلاثية الأبعاد طورتها شركة Apple Inc. (التي كانت تُعرف آنذاك باسم Apple Computer, Inc.) بدءًا من عام 1995، في الأصل لأجهزة كمبيوتر Macintosh الخاصة بها ، ولكن تم تقديمها كنظام متعدد المنصات. [ 1 ]
قُسِّمَ نظام QD3D إلى طبقتين. وفّر نظامٌ أدنى يُعرف باسم RAVE (محرك تسريع العرض الافتراضي) طبقة تجريد للأجهزة بوظائف مشابهة لـ Direct3D أو إصدارات مُصغَّرة من OpenGL مثل MiniGL . وفوق هذه الطبقة، كان هناك نظام رسم بياني للمشهد مُوجَّه للكائنات ، وهو QD3D نفسه، الذي تولّى تحميل النماذج ومعالجتها بمستوى مشابه لـ OpenGL++ . [ 2 ] كما وفّر النظام عددًا من الأدوات المساعدة عالية المستوى لتحويل تنسيقات الملفات، وتطبيق عرض قياسي لنظام التشغيل Mac OS.
لم يكن لتقنية QD3D تأثير يُذكر في سوق الحواسيب، ويعود ذلك إلى وضع شركة آبل المتعثر في منتصف التسعينيات، بالإضافة إلى عدة قرارات مصيرية اتخذها فريق التصميم بشأن التغييرات المستقبلية في سوق أجهزة العرض ثلاثي الأبعاد، والتي لم تتحقق. تخلت آبل عن العمل على QD3D بعد تولي ستيف جوبز منصب الرئيس التنفيذي عام ١٩٩٨، وأعلنت أن دعم تقنية العرض ثلاثي الأبعاد في نظام ماك أو إس سيعتمد على OpenGL .
OpenGL في التسعينيات
كانت واجهة برمجة التطبيقات ثلاثية الأبعاد المعيارية في التسعينيات هي OpenGL. طُوّرت هذه الواجهة بواسطة شركة SGI ، وكانت في البداية متوافقة تمامًا مع إمكانيات أنظمة محطات العمل الخاصة بها ، حيث عملت كطبقة تجريد للأجهزة. تألفت واجهة برمجة تطبيقات OpenGL في الغالب من تعليمات ضبط الحالة لإعداد أوضاع الرسم، مثل لون الطلاء أو موضع الكاميرا، ونظام لإرسال البيانات الهندسية إلى النظام، عادةً على شكل شبكات من المثلثات. تم حفظ مجموعة هذه التعليمات في قائمة عرض ، والتي تم عرضها لاحقًا لإنتاج المخرجات.
كانت لغة OpenGL تفتقر إلى العديد من الميزات اللازمة لإنتاج برنامج ثلاثي الأبعاد متكامل. فقد تُركت مهام حفظ وتحميل بيانات الهندسة، وتجميعها في مجموعات لإنتاج نماذج ثلاثية الأبعاد، والتحكم في حالة البرنامج، للمبرمج. واعتُبر هذا ميزة في عصر كانت فيه القدرة محدودة، وكان التحكم المباشر في هذه الوظائف سبيلًا لتحسين الأداء.
مع ذلك، أدى هذا النقص في الوظائف عالية المستوى إلى صعوبة كتابة برامج بسيطة بسرعة، فضلاً عن نقص التوافق بين الأنظمة. بدأت جهود عديدة لتوفير واجهات برمجة تطبيقات (APIs) قياسية عالية المستوى، مثل OpenGL++ و(لاحقًا) Fahrenheit ، والتي تولت العديد من مهام إدارة البيانات الشائعة، مثل تحميل البيانات الهندسية من الملفات وعرضها. بفضل أنظمة رسم المشهد القياسية هذه، لم يكن على المبرمج سوى توفير واجهة المستخدم الرسومية للبرنامج.
على الرغم من أن OpenGL لغة برمجة منخفضة المستوى في الغالب، إلا أنها تضمنت بعض المفاهيم عالية المستوى التي كانت تُستخدم فعليًا على أنظمة SGI. وقد أدى ذلك إلى ظهور سلسلة أخرى من واجهات برمجة التطبيقات (APIs) التي أزالت هذه الميزات لتسهيل تنفيذها على الأجهزة الشائعة. وأشهر هذه الواجهات هي MiniGL ، وهي ليست واجهة برمجة تطبيقات منفصلة، بل مجرد قائمة بالوظائف الموجودة في OpenGL والتي يُضمن دعمها على جميع الأجهزة، مما يضمن تشغيل أي برنامج يقتصر على هذه الوظائف بأقصى أداء.
QD3D
صُمم برنامج QD3D منذ البداية ليعمل على أجهزة كمبيوتر ذات قدرة أقل بكثير من محطات العمل. وقد أدى ذلك إلى بذل جهد مكثف لفصل الطبقات العليا والسفلى لواجهة برمجة التطبيقات (API) بشكل واضح، حيث كان نظام RAVE ذو المستوى الأدنى أقرب إلى MiniGL منذ البداية. وقد وفر هذا ميزة توفير واجهة برمجة تطبيقات (API) نظيفة وبسيطة يمكن نقلها بسهولة أكبر إلى أجهزة مختلفة.
بما أن نقل RAVE كان كافيًا، فقد أمكن جعل واجهات برمجة التطبيقات (APIs) للطبقة العليا معقدة حسب الرغبة، وتضمن نظام QD3D مخططًا كاملًا للمشهد، وتنسيقًا موحدًا لملفات النماذج، و3DMF، وحتى عناصر واجهة مستخدم رسومية أساسية تستخدمها. لكتابة تطبيق بسيط في QD3D، كان على المبرمج فقط تضمين بعض المكتبات ثم وضع عناصر واجهة المستخدم الرسومية في برنامجه باستخدام ResEdit أو أدوات مشابهة.
تضمنت الوظائف الإضافية نظام عرض "إضافي"، يسمح للتطبيق بعرض المشهد بأنماط متنوعة. وبدون تغيير النموذج أو الكود، يمكن للمطورين عرض المشهد نفسه بشكل تفاعلي أو (باستخدام إضافات مناسبة) باستخدام طرق مثل تتبع الأشعة أو تظليل فونغ.
كانت واجهة برمجة تطبيقات QD3D نظامًا شبيهًا بالكائنات يعتمد على كود C خالص . صُممت البنى المختلفة بعناية لتضمين مؤشرات إلى كائنات أخرى مهمة. كانت الكائنات على دراية بجميع حالات الرسم التي تحتاجها، مما أدى إلى الاستغناء عن الكود الذي كان سيُستخدم عادةً عند التطوير باستخدام OpenGL.
من سلبيات نظام الطبقات في QD3D، أنه تسبب في مشاكل في الأداء. فعلى سبيل المثال، كان النظام يخزن حالة كل كائن ويضبطها تلقائيًا قبل الرسم. سهّل هذا الأمر عملية التطوير بشكل كبير، ولكنه أدى أيضًا إلى انخفاض الأداء بشكل لا يمكن للمطور التحكم فيه مباشرة. أما التطبيقات التي تُفضّل الأداء على سهولة البرمجة، فيمكنها بدلاً من ذلك استخدام طبقة RAVE مباشرةً.
من بين الجوانب الأخرى المثيرة للقلق إخفاء مخطط المشهد عن الأنظار، ويمكن تحقيق تحسينات كبيرة في أداء العرض من خلال "حذف" المخطط بعناية لإزالة العناصر غير المرئية. مع أن الإصدارات اللاحقة من QD3D أضافت إمكانية الحذف التلقائي للعناصر غير المرئية (استنادًا إلى تجميع العناصر في مخطط المشهد)، إلا أن عدم دعم OpenGL لهذه الميزة كان يُجبر المطورين عادةً على تنفيذها من البداية.
التبديل إلى OpenGL
لا يعتمد الأداء الجيد للرسومات ثلاثية الأبعاد على المستوى الأدنى على المبرمج فقط لتوفير نماذج فعّالة، بل أيضًا على برامج تشغيل عالية الجودة للأجهزة. على الرغم من أن RAVE صُممت لتكون متعددة المنصات، إلا أن مطوري الأجهزة الذين يدعمون نظام Mac ( ATI و NVIDIA و 3dfx ) هم فقط من قاموا بتطوير برامج تشغيل لها. هذا الأمر جعل أي مقارنة بين QD3D وواجهات برمجة التطبيقات البديلة أحادية الجانب، حيث اضطرت QD3D، خارج نظام Mac، إلى اللجوء إلى تطبيق برمجي لـ RAVE.
مع ازدياد شعبية OpenGL على نظام ويندوز (ويُعزى ذلك غالبًا إلى شركة id Software التي دافعت عن واجهة برمجة التطبيقات هذه على حساب D3D)، كان مطورو الأجهزة يصممون أجهزتهم المستقبلية بشكل متزايد وفقًا لمجموعة الميزات المستقبلية المخطط لها لـ D3D من مايكروسوفت. وبفضل آلية التوسعة الخاصة بها، تمكنت OpenGL من تتبع هذه التغييرات بسهولة نسبية، بينما ظلت مجموعة ميزات RAVE ثابتة نسبيًا.
في معرض ماك وورلد في يناير 1999، أعلنت آبل أن برنامجي QuickDraw 3D وRAVE لن يُضمّنا إلى نظام التشغيل Mac OS X. وقامت الشركة بتسريح فريق التطوير في يونيو 1999 ، واستبدلت التقنية الداخلية بتقنية OpenGL بعد شراء نسخة مخصصة لنظام Mac وفريق عمل رئيسي من شركة Conix Enterprises .
بعد أن أوقفت آبل دعمها لـ QD3D، طُوِّر تطبيقٌ مفتوح المصدر لواجهة برمجة تطبيقات QD3D خارجيًا. يُعرف هذا التطبيق باسم Quesa ، وهو يجمع بين مفاهيم QD3D المتقدمة ومُعالج OpenGL. بالإضافة إلى تسريع الأجهزة عبر المنصات، تتيح هذه المكتبة أيضًا استخدام واجهة برمجة تطبيقات QD3D على منصات لم تدعمها آبل قط (مثل لينكس ). آخر تحديث لها كان في عام 2023. [ 3 ]
التطبيقات
من بين مئات التطبيقات المنشورة التي تستخدم نظام RAVE ما يلي:
- آلة حاسبة بيانية في التسعينيات، كانت تُشحن مع كل جهاز باور ماكنتوش
- زلزال
- النزول 2
- غير واقعي
- كارماجيدون 2
- شرطي المستقبل: شرطة لوس أنجلوس
- سباق الماء
- ستراتافيجن ثلاثي الأبعاد
- إنفيني-دي
- عالم الحشرات
انظر أيضاً
مراجع
- ↑ "ثلاثي الأبعاد: ماذا حدث لشركة آبل؟" . بلومبيرغ . 25 سبتمبر 1995.
{{cite web}}: CS1 maint: deprecated archiveal service ( link ) - ↑ "ركن الألعاب السرية - مقابلة: برايان جرينستون، الجزء 2" . 25 يونيو 1999.
{{cite web}}: CS1 maint: deprecated archiveal service ( link ) - ^ "Jwwalker/Quesa README" . جيثب . تم الاسترجاع في 4 يونيو 2023 .
روابط خارجية
- برمجة الرسومات ثلاثية الأبعاد باستخدام QuickDraw 3D 1.5.4 — دليل QD3D (مؤرشف)
- QuickDraw 3D: بُعد جديد لرسومات ماكنتوش - مقال ما قبل الإصدار، يونيو 1995
- أسئلة وأجوبة حول برنامج QuickDraw 3D
- الصفحة الرئيسية لمشروع كويسا
- الصفحة الرئيسية لمشروع Pomme — نسخة معدلة من Quesa، تستخدم لنقل لعبة Pangea Software إلى المنصات الحديثة.
- واجهات برمجة تطبيقات الرسم البياني ثلاثي الأبعاد
- واجهات برمجة تطبيقات أنظمة تشغيل ماكنتوش
