مؤدي OpenGL

OpenGL Performer ، المعروف سابقًا باسم IRIS Performer ويُشار إليه عادةً باسم Performer ، هو بيئة لتطوير التطبيقات. [ 1 ] [ 2 ] وهو مكتبة تجارية تضم أكوادًا مساعدة [ 3 ] مبنية على OpenGL لتمكين تطبيقات المحاكاة المرئية في الوقت الحقيقي . طُوّر OpenGL Performer بواسطة SGI . وهو متوفر لأنظمة IRIX و Linux والعديد من إصدارات Microsoft Windows . كما يتوفر بنسختي ANSI C و C++ .

تاريخ

ظهر برنامج Performer عام 1991 عندما قرر فريق من مشروع Open Inventor التابع لشركة SGI ، والذي كان يُعرف آنذاك باسم IRIS Inventor، التركيز على الأداء بدلاً من سهولة البرمجة. فبينما وفّر Inventor كائنات سهلة الاستخدام وعناصر واجهة مستخدم متنوعة للتفاعل معها، ركّز Performer على نظام رسم بياني للمشهد يُمكن إعادة ترتيبه ديناميكيًا لتحسين الأداء، مما يسمح بتنفيذ مراحل مهمة العرض المختلفة بالتوازي في خيوط معالجة متعددة . سمح Performer للمشهد بوصف مستويات التفاصيل باستخدام نطاقات التباطؤ ووظائف التلاشي. تمت مراقبة معدل الإطارات والإحصائيات، وحُسب عامل "الإجهاد". يُمكن استخدام هذا العامل لزيادة ترجيح مستوى التفاصيل في المشهد، أو إزالة بعض التفاصيل للحفاظ على معدل الإطارات المستهدف.

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

لم يكن لدى برنامج Performer تنسيق ملف أصلي، بل مجرد مُحمِّلات إضافات من جهات خارجية مثل مُحمِّل تنسيق OpenFlight من MultiGen . وبالمثل، لم يكن هناك وقت تشغيل افتراضي، بل كان هناك نموذج برمجي وتطبيق "perfly" التجريبي الذي كان يُستخدم ويُعدّل باستمرار. ولعل هذا ما ساهم في سمعته بصعوبة استخدامه.

بحلول منتصف التسعينيات، بدأ يتضح أنه لا يوجد ما يمنع دمج برنامجي Inventor وPerformer. أدى ذلك إلى مشروع Cosmo 3D الذي كانت SGI تنوي بناء كل من Inventor وPerformer (اللذان أصبحا الآن عبارة عن طبقات وسيطة لواجهة برمجة التطبيقات ) عليه، بالإضافة إلى الترويج له كواجهة برمجة تطبيقات قياسية جديدة وعالية المستوى للعمل المستقبلي على منصة SGI. مع ذلك، بعد الإصدار التجريبي الأول من Cosmo 3D، انضمت SGI إلى Intel و IBM (ولاحقًا DEC ) لإنشاء OpenGL++ ، وهو في الأساس نسخة مُحسّنة من Cosmo. توقف هذا المشروع عندما حوّلت SGI اهتمامها إلى مشروع مماثل تقريبًا مع Microsoft يُعرف باسم Fahrenheit ، والذي توقف هو الآخر. اليوم، لا يزال Inventor وPerformer منتجين منفصلين، ولم ترَ أي من النسخ المدمجة النور.

سمات

يتألف برنامج Performer بشكل أساسي من مكتبتين: مكتبة libpr ذات المستوى الأدنى ومكتبة libpf ذات المستوى الأعلى . توفر مكتبة libpr واجهة برمجة كائنية التوجه لوظائف العرض عالية السرعة، وذلك بالاعتماد على مفهومي pfGeoSet و pfGeoState . يمثل pfGeoSet مجموعة من العناصر الرسومية الأساسية، مثل المضلعات أو الخطوط. أما pfGeoState فيحتوي على خصائص متعلقة بـ pfGeoSet معين، مثل الإضاءة والشفافية والتركيب.

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

توفر مكتبات Performer الأخرى - libpfutil و libpfdb و libpfui وما إلى ذلك - وظائف لإنشاء هندسة محسّنة، وتحويل قاعدة البيانات، وإدخال الجهاز (مثل التفاعل مع صناديق الطيران الخارجية وحافلات MIL-STD-1553 mux)، ونماذج الحركة، ونماذج التصادم، وواجهة قاعدة بيانات مستقلة عن التنسيق تدعم تنسيقات البيانات الشائعة مثل Open Inventor و OpenFlight و Designer's Workbench و Medit وملف Wavefront .obj .

مراجع

  1. "برمجة السينغراف باستخدام أوبن جي إل" (ملف PDF) . جامعة HW . تاريخ الاسترجاع: 27-03-2025 .
  2. تشين، ران (25-11-2011). وقائع المؤتمر الدولي لعام 2011 في الكهرباء والاتصالات والتحكم الآلي . نيويورك، نيويورك: سبرينغر ساينس آند بيزنس ميديا. ص 1668. ISBN  978-1-4419-8849-2.
  3. "الفصل الثاني: أساسيات مُنفِّذ OpenGL" . TechPubs . 28-03-1968 . تم الاطلاع عليه بتاريخ 27-03-2025 .
  • صفحة منتج OpenGL Performer
  • دليل البدء السريع لبرنامج OpenGL Performer
  • دليل مبرمجي OpenGL Performer
  • نموذج كود OpenGL Performer مؤرشف بتاريخ 1 أبريل 2010 على موقع Wayback Machine