أوبن جي إل

أوبن جي إل
المؤلف(ون) الأصلي(ون)سيليكون جرافيك
المطور(ون)مجموعة كرونوس
(سابقا ARB )
الإصدار الأولي30 يونيو 1992 ؛ منذ 32 عامًا ( 1992-06-30 )
إصدار مستقر
4.6 [1]  / 31 يوليو 2017 ؛ منذ 7 سنوات ( 31 يوليو 2017 )
مكتوب فيج [2]
خليفةفولكان
يكتبواجهة برمجة التطبيقات للرسومات ثلاثية الأبعاد
رخصة
  • رخصة مفتوحة المصدر لاستخدام نموذج التنفيذ (SI): هذا هو ترخيص البرمجيات الحرة B الذي تم تصميمه بشكل وثيق على أساس تراخيص BSD وX وMozilla.
  • ترخيص العلامة التجارية للمرخصين الجدد الذين يرغبون في استخدام العلامة التجارية والشعار OpenGL والمطالبة بالتوافق. [3]
موقع إلكترونيموقع opengl.org

OpenGL ( مكتبة الرسومات المفتوحة [4] ) عبارة عن واجهة برمجة تطبيقات (API) متعددة اللغات ومنصات متعددة لتقديم رسومات متجهية ثنائية وثلاثية الأبعاد . تُستخدم واجهة برمجة التطبيقات عادةً للتفاعل مع وحدة معالجة الرسومات (GPU)، لتحقيق تقديم متسارع بالأجهزة .

بدأت شركة Silicon Graphics, Inc. (SGI) في تطوير OpenGL في عام 1991 وأصدرته في 30 يونيو 1992. [5] [6] يتم استخدامه لمجموعة متنوعة من التطبيقات، بما في ذلك التصميم بمساعدة الكمبيوتر (CAD)، وألعاب الفيديو ، والتصور العلمي ، والواقع الافتراضي ، ومحاكاة الطيران . منذ عام 2006، تم إدارة OpenGL بواسطة اتحاد التكنولوجيا غير الربحي Khronos Group . [7]

تصميم

رسم توضيحي لعملية خط أنابيب الرسومات

تصف مواصفات OpenGL واجهة برمجة تطبيقات مجردة (API) لرسم الرسومات ثنائية الأبعاد وثلاثية الأبعاد. وهي مصممة ليتم تنفيذها في الغالب أو بالكامل باستخدام تسريع الأجهزة مثل وحدة معالجة الرسومات (GPU )، على الرغم من أنه من الممكن تنفيذ واجهة برمجة التطبيقات بالكامل في برنامج يعمل على وحدة المعالجة المركزية (CPU) .

يتم تعريف واجهة برمجة التطبيقات على أنها مجموعة من الوظائف التي يمكن استدعاؤها بواسطة برنامج العميل، إلى جانب مجموعة من الثوابت الصحيحة المسماة (على سبيل المثال، الثابت GL_TEXTURE_2D، والذي يتوافق مع العدد العشري 3553). على الرغم من أن تعريفات الوظائف تشبه ظاهريًا تلك الموجودة في لغة البرمجة C ، إلا أنها مستقلة عن اللغة. على هذا النحو، يحتوي OpenGL على العديد من ارتباطات اللغة ، ومن أبرزها ارتباط JavaScript WebGL (واجهة برمجة التطبيقات، المستندة إلى OpenGL ES 2.0 ، للرسم ثلاثي الأبعاد من داخل متصفح الويب )؛ وارتباطات C WGL و GLX و CGL ؛ وارتباط C الذي يوفره نظام التشغيل iOS ؛ وارتباطات Java وC التي يوفرها نظام التشغيل Android .

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

تطوير

لم يعد OpenGL قيد التطوير النشط، بينما بين عامي 2001 و2014، تم تحديث مواصفات OpenGL بشكل سنوي في الغالب، مع إصدارين (3.1 و3.2) في عام 2009 وثلاثة (3.3 و4.0 و4.1) في عام 2010، تم إصدار أحدث مواصفات OpenGL 4.6 في عام 2017، بعد انقطاع دام ثلاث سنوات، وكان يقتصر على تضمين أحد عشر امتدادًا ARB وEXT موجودًا في ملف التعريف الأساسي. [8]

تم التخلي عن التطوير النشط لـ OpenGL لصالح واجهة برمجة التطبيقات Vulkan ، التي تم إصدارها في عام 2016، والتي تحمل الاسم الرمزي glNext أثناء التطوير الأولي. في عام 2017، أعلنت مجموعة Khronos أن OpenGL ES لن تحتوي على إصدارات جديدة [9] وركزت منذ ذلك الحين على تطوير Vulkan والتقنيات الأخرى. [10] [11] ونتيجة لذلك، فإن بعض القدرات التي تقدمها وحدات معالجة الرسومات الحديثة، مثل تتبع الأشعة ، لا يدعمها معيار OpenGL. ومع ذلك، قد يتم توفير الدعم للميزات الأحدث من خلال ملحقات OpenGL الخاصة بالبائع. [12] [13]

يتم إصدار إصدارات جديدة من مواصفات OpenGL بواسطة مجموعة Khronos، حيث تعمل كل منها على توسيع واجهة برمجة التطبيقات لدعم العديد من الميزات الجديدة. يتم تحديد تفاصيل كل إصدار بالإجماع بين أعضاء المجموعة، بما في ذلك مصنعي بطاقات الرسومات ومصممي أنظمة التشغيل وشركات التكنولوجيا العامة مثل Mozilla و Google . [14]

بالإضافة إلى الميزات المطلوبة بواسطة واجهة برمجة التطبيقات الأساسية، قد يوفر بائعو وحدة معالجة الرسومات (GPU) وظائف إضافية في شكل ملحقات . قد تقدم الملحقات وظائف جديدة وثوابت جديدة، وقد تخفف القيود المفروضة على وظائف OpenGL الحالية أو تزيلها. يمكن للبائعين استخدام الملحقات لعرض واجهات برمجة التطبيقات المخصصة دون الحاجة إلى دعم من بائعين آخرين أو مجموعة Khronos ككل، مما يزيد بشكل كبير من مرونة OpenGL. يتم جمع جميع الملحقات في سجل OpenGL وتحديدها بواسطة. [15]

يرتبط كل امتداد بمعرف قصير، بناءً على اسم الشركة التي طورته. على سبيل المثال، معرف Nvidia هو NV، وهو جزء من اسم الامتداد GL_NV_half_float، والثابت GL_HALF_FLOAT_NV، والوظيفة glVertex2hNV(). [16] إذا وافقت عدة بائعين على تنفيذ نفس الوظيفة باستخدام نفس واجهة برمجة التطبيقات، فقد يتم إصدار امتداد مشترك، باستخدام المعرف EXT. في مثل هذه الحالات، قد يحدث أيضًا أن تمنح لجنة مراجعة الهندسة المعمارية لمجموعة Khronos الامتداد موافقتها الصريحة، وفي هذه الحالة يتم استخدام المعرف ARB. [17]

يتم تشكيل الميزات التي يقدمها كل إصدار جديد من OpenGL عادةً من الميزات المجمعة للعديد من الامتدادات التي تم تنفيذها على نطاق واسع، وخاصة الامتدادات من نوع ARB أو EXT.

التوثيق

أصدرت لجنة مراجعة بنية OpenGL سلسلة من الأدلة الإرشادية جنبًا إلى جنب مع المواصفات التي تم تحديثها لتتبع التغييرات في واجهة برمجة التطبيقات. يشار إليها عادةً بألوان أغلفةها:

الكتاب الأحمر
دليل برمجة OpenGL، الإصدار التاسع. ISBN  978-0-134-49549-1
الدليل الرسمي لتعلم OpenGL، الإصدار 4.5 باستخدام SPIR-V
الكتاب البرتقالي
لغة تظليل OpenGL، الطبعة الثالثة. ISBN 0-321-63763-1 
كتاب تعليمي ومرجعي لـ GLSL .

الكتب التاريخية (قبل OpenGL 2.0):

الكتاب الأخضر
برمجة OpenGL لنظام X Window. ISBN 978-0-201-48359-8 
كتاب عن واجهة X11 ومجموعة أدوات OpenGL (GLUT).
الكتاب الأزرق
الدليل المرجعي لبرنامج OpenGL، الطبعة الرابعة. ردمك 0-321-17383-X 
في الأساس نسخة مطبوعة مطبوعة من صفحات دليل Unix (man) لـ OpenGL.
يتضمن رسمًا تخطيطيًا قابلاً للطي بحجم الملصق يوضح هيكل تنفيذ OpenGL المثالي.
كتاب ألفا (الغلاف الأبيض)
برمجة OpenGL لنظامي التشغيل Windows 95 وWindows NT. ISBN 0-201-40709-4 
كتاب حول ربط OpenGL مع Microsoft Windows.

يمكن أيضًا الوصول إلى وثائق OpenGL عبر صفحتها الرسمية على الويب. [18]

المكتبات المرتبطة

تم إصدار أقدم إصدارات OpenGL مع مكتبة مصاحبة تسمى مكتبة OpenGL Utility Library (GLU). وقد وفرت ميزات بسيطة ومفيدة من غير المرجح أن تكون مدعومة في الأجهزة المعاصرة، مثل التبليط ، وإنشاء خرائط mip والأشكال البدائية . تم تحديث مواصفات GLU آخر مرة في عام 1998 وتعتمد على ميزات OpenGL التي أصبحت قديمة الآن .

أدوات السياق والنوافذ

نظرًا لأن إنشاء سياق OpenGL عملية معقدة إلى حد ما، ونظرًا لأنها تختلف بين أنظمة التشغيل ، فقد أصبح إنشاء سياق OpenGL التلقائي ميزة مشتركة للعديد من مكتبات تطوير الألعاب وواجهة المستخدم ، بما في ذلك SDL و Allegro و SFML و FLTK و Qt . تم تصميم عدد قليل من المكتبات لإنتاج نافذة قادرة على OpenGL فقط. كانت أول مكتبة من هذا القبيل هي OpenGL Utility Toolkit (GLUT)، والتي حلت محلها لاحقًا freeglut . GLFW هو بديل أحدث. [19]

  • تم تصميم مجموعات الأدوات هذه لإنشاء وإدارة نوافذ OpenGL، وإدارة الإدخال، ولكن القليل أبعد من ذلك. [20]
  • GLFW – برنامج متعدد المنصات للتعامل مع النوافذ ولوحة المفاتيح والفأرة وعصا التحكم؛ وهو أكثر توجهاً نحو الألعاب
  • freeglut – معالج متعدد المنصات للنوافذ ولوحة المفاتيح والفأرة؛ واجهة برمجة التطبيقات الخاصة به عبارة عن مجموعة فرعية من واجهة برمجة تطبيقات GLUT، وهي أكثر استقرارًا وحداثة من GLUT
  • مجموعة أدوات OpenGL (GLUT) – معالج نوافذ قديم، لم يعد يتم صيانته.
  • يمكن للعديد من "مكتبات الوسائط المتعددة" إنشاء نوافذ OpenGL، بالإضافة إلى الإدخال والصوت والمهام الأخرى المفيدة لتطبيقات تشبه الألعاب
  • Allegro 5 – مكتبة وسائط متعددة متعددة الأنظمة مع واجهة برمجة تطبيقات C تركز على تطوير الألعاب
  • طبقة الوسائط المباشرة البسيطة (SDL) – مكتبة وسائط متعددة متعددة الأنظمة مع واجهة برمجة تطبيقات C
  • SFML – مكتبة وسائط متعددة متعددة الأنظمة مع واجهة برمجة تطبيقات C++ وارتباطات أخرى متعددة للغات مثل C# وJava وHaskell وGo
  • مجموعة أدوات واجهة المستخدم
  • FLTK – مكتبة أدوات C++ صغيرة متعددة الأنظمة الأساسية
  • Qt – مجموعة أدوات واجهة مستخدم متعددة المنصات بلغة C++. توفر العديد من كائنات مساعدة OpenGL، والتي تلخص حتى الفرق بين GL المكتبي وOpenGL ES
  • wxWidgets – مجموعة أدوات واجهة مستخدم متعددة الأنظمة الأساسية بلغة C++

مكتبات تحميل الامتداد

نظرًا لحجم العمل المرتفع المطلوب لتحديد وتحميل ملحقات OpenGL، فقد تم تصميم عدد قليل من المكتبات التي تقوم بتحميل جميع الملحقات والوظائف المتاحة تلقائيًا. تشمل الأمثلة مكتبة OpenGL Easy Extension (GLEE) ومكتبة OpenGL Extension Wrangler (GLEW) و glbinding . يتم أيضًا تحميل الملحقات تلقائيًا بواسطة معظم روابط اللغة، مثل JOGL وPyOpenGL.

التنفيذات

لقطة شاشة لـ glxinfo، تُظهر معلومات حول تنفيذ Mesa لـ OpenGL على نظام

Mesa 3D هو تطبيق مفتوح المصدر لـ OpenGL. يمكنه إجراء عرض برمجي خالص، وقد يستخدم أيضًا تسريع الأجهزة على BSD و Linux ومنصات أخرى من خلال الاستفادة من البنية الأساسية للعرض المباشر . اعتبارًا من الإصدار 20.0، فإنه ينفذ الإصدار 4.6 من معيار OpenGL.

تاريخ

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

بحلول أوائل التسعينيات، أصبحت شركة Silicon Graphics (SGI) رائدة في مجال الرسومات ثلاثية الأبعاد لمحطات العمل. أصبحت واجهة برمجة التطبيقات IRIS GL [21] [22] الخاصة بها هي المعيار الصناعي، وتستخدم على نطاق أوسع من PHIGS المستندة إلى المعايير المفتوحة . [ بحاجة لمصدر ] وكان هذا لأن IRIS GL كان يعتبر أسهل في الاستخدام، [ من قبل من؟ ] ولأنه يدعم عرض الوضع الفوري . على النقيض من ذلك، كان يعتبر PHIGS صعب الاستخدام وقديمًا في الوظائف.

كان منافسو SGI (بما في ذلك Sun Microsystems و Hewlett-Packard و IBM ) قادرين أيضًا على جلب أجهزة ثلاثية الأبعاد إلى السوق مدعومة بالامتدادات التي تم إجراؤها على معيار PHIGS، مما ضغط على SGI لفتح مصدر إصدار من IRIS GL كمعيار عام يسمى OpenGL .

ومع ذلك، كان لدى SGI العديد من العملاء الذين يتطلب تغيير IRIS GL إلى OpenGL استثمارات كبيرة. وعلاوة على ذلك، كان لدى IRIS GL وظائف API غير ذات صلة بالرسومات ثلاثية الأبعاد. على سبيل المثال، كان يتضمن واجهة برمجة تطبيقات للنوافذ ولوحة المفاتيح والفأرة، ويرجع ذلك جزئيًا إلى أنه تم تطويره قبل نظام X Window و NeWS من Sun. وكانت مكتبات IRIS GL غير مناسبة للفتح بسبب مشكلات الترخيص وبراءات الاختراع [ بحاجة لشرح إضافي ] . تطلبت هذه العوامل من SGI الاستمرار في دعم واجهات برمجة التطبيقات البرمجية المتقدمة والمملوكة Iris Inventor و Iris Performer بينما نضج دعم السوق لـ OpenGL.

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

في عام 1992، [23] قادت شركة SGI إنشاء مجلس مراجعة بنية OpenGL (OpenGL ARB)، وهي مجموعة الشركات التي ستحافظ على مواصفات OpenGL وتوسعها في المستقبل.

في عام 1994، لعبت شركة SGI بفكرة إصدار شيء يسمى " OpenGL++ " والذي تضمن عناصر مثل واجهة برمجة تطبيقات الرسم البياني للمشهد (من المفترض أنها تعتمد على تقنية Performer الخاصة بها ). تم تداول المواصفات بين عدد قليل من الأطراف المهتمة - لكنها لم تتحول أبدًا إلى منتج. [24]

في عام 1996، أصدرت مايكروسوفت Direct3D ، والذي أصبح في النهاية المنافس الرئيسي لـ OpenGL. وقع أكثر من 50 مطورًا للألعاب على خطاب مفتوح إلى مايكروسوفت، صدر في 12 يونيو 1997، داعين الشركة إلى دعم OpenGL بنشاط. [25] في 17 ديسمبر 1997، [26] بدأت مايكروسوفت وSGI مشروع فهرنهايت ، والذي كان جهدًا مشتركًا بهدف توحيد واجهات OpenGL وDirect3D (وإضافة واجهة برمجة تطبيقات مشهد الرسم البياني أيضًا). في عام 1998، انضمت Hewlett-Packard إلى المشروع. [27] أظهر في البداية بعض الوعد بإضفاء النظام على عالم واجهات برمجة تطبيقات الرسوميات الحاسوبية ثلاثية الأبعاد التفاعلية، ولكن بسبب القيود المالية في SGI، والأسباب الاستراتيجية في Microsoft، والافتقار العام إلى دعم الصناعة، تم التخلي عنه في عام 1999. [28]

في يوليو 2006، صوتت لجنة مراجعة بنية OpenGL على نقل السيطرة على معيار واجهة برمجة التطبيقات OpenGL إلى مجموعة Khronos. [29] [30]

دعم الصناعة

في يونيو 2018، أوقفت شركة Apple استخدام واجهات برمجة التطبيقات OpenGL على جميع منصاتها ( iOS و macOS و tvOS )، مما شجع المطورين بشدة على استخدام واجهة برمجة التطبيقات Metal الخاصة بها ، والتي تم تقديمها في عام 2014. [31]

تستخدم شركة id Software تقنية OpenGL في ألعابها بدءًا من GLQuake (نقل Quake إلى OpenGL مع بعض التعديلات) الذي تم إصداره في عام 1997. [32] كان أول محرك مرخص للشركة مع دعم OpenGL هو محرك Quake II ، والمعروف أيضًا باسم id Tech 2. [ 33] في عام 2016، أصدرت الشركة تحديثًا لـ id Tech 6 أضاف دعمًا لـ Vulkan، خليفة OpenGL. ألغى ID Tech 7 دعم OpenGL. [34]

في مارس 2023، قامت Valve بإزالة دعم OpenGL من Dota 2. [ 35]

توقف Khronos عن تقديم الدعم في OpenGL لعدد من تقنيات الرسوميات الحديثة، على سبيل المثال Ray Tracing ، وفك تشفير الفيديو على وحدة معالجة الرسومات ، وخوارزمية التنعيم باستخدام التعلم العميق - AMD FidelityFX Super Resolution (FSR) [36] [37] و Nvidia DLSS. [38] [39]

قامت شركة Atypical Games، بدعم من شركة Samsung، بتحديث محرك اللعبة الخاص بها لاستخدام Vulkan، بدلاً من OpenGL، عبر جميع المنصات غير التابعة لشركة Apple. [40]

يستخدم نظام التشغيل Fuchsia OS من Google واجهة برمجة تطبيقات رسومية أصلية ويتطلب وحدة معالجة رسومية متوافقة مع Vulkan. يعتزم Fuchsia دعم OpenGL أعلى Vulkan من خلال طبقة ترجمة ANGLE. [41]

تاريخ الإصدار

تم إصدار الإصدار الأول من OpenGL، الإصدار 1.0، في 30 يونيو 1992 بواسطة مارك سيجال وكيرت أكلي . ومنذ ذلك الحين، تم توسيع OpenGL من حين لآخر عن طريق إصدار إصدار جديد من المواصفات. تحدد مثل هذه الإصدارات مجموعة أساسية من الميزات التي يجب أن تدعمها جميع بطاقات الرسومات المطابقة، والتي يمكن كتابة امتدادات جديدة عليها بسهولة أكبر. يميل كل إصدار جديد من OpenGL إلى دمج العديد من الامتدادات التي تتمتع بدعم واسع النطاق بين بائعي بطاقات الرسومات، على الرغم من أن تفاصيل هذه الامتدادات قد تتغير.

سجل إصدارات OpenGL
إصدار تاريخ الافراج عنه سمات
1.1 4 مارس 1997 [42] [43] كائنات الملمس، مصفوفات الرؤوس
1.2 16 مارس 1998 القوام ثلاثي الأبعاد، وBGRA وتنسيقات البكسل المعبأة ، [44] مقدمة لمجموعة فرعية من التصوير مفيدة لتطبيقات معالجة الصور
1.2.1 14 أكتوبر 1998 مفهوم تمديدات ARB
1.3 14 أغسطس 2001 تعدد الملمس ، أخذ العينات المتعددة، ضغط الملمس
1.4 24 يوليو 2002 القوام العميق، GLSlang [45]
1.5 29 يوليو 2003 كائن المخزن المؤقت للرأس (VBO)، استعلامات الانسداد [46]
2.0 7 سبتمبر 2004 GLSL 1.1، MRT ، نسيج غير قائم على قوة اثنين، رسومات نقطية، [47] استنسل ثنائي الجانب [46]
2.1 2 يوليو 2006 GLSL 1.2، كائن مخزن البكسل (PBO)، مواد sRGB [46]
3.0 11 أغسطس 2008 GLSL 1.3، مصفوفات الملمس، العرض الشرطي، كائنات المخزن المؤقت للإطارات (FBO) [48]
3.1 24 مارس 2009 GLSL 1.4، المثيلات، كائن المخزن المؤقت للنسيج، كائن المخزن المؤقت الموحد، إعادة التشغيل البدائية [49]
3.2 3 أغسطس 2009 GLSL 1.5، Geometry Shader، مواد متعددة العينات [50]
3.3 11 مارس 2010 GLSL 3.30، يعيد نقل أكبر قدر ممكن من الوظائف من مواصفات OpenGL 4.0
4.0 11 مارس 2010 GLSL 4.00، التبليط على وحدة معالجة الرسوميات، برامج التظليل بدقة 64 بت [51]
4.1 26 يوليو 2010 GLSL 4.10، مخرجات تصحيح أخطاء صديقة للمطورين [أ] ، التوافق مع OpenGL ES 2.0 [52]
4.2 8 أغسطس 2011 [53] GLSL 4.20، تظليل مع عدادات ذرية، رسم ردود الفعل التحويلية، حزم التظليل، تحسينات الأداء
4.3 6 أغسطس 2012 [54] GLSL 4.30، حوسبة برامج التظليل باستخدام التوازي مع وحدة معالجة الرسوميات، وكائنات مخزن تخزين برامج التظليل، وضغط نسيج ETC2/EAC عالي الجودة، وزيادة أمان الذاكرة، وامتداد المتانة متعدد التطبيقات، والتوافق مع OpenGL ES 3.0 [55]
4.4 22 يوليو 2013 [56] GLSL 4.40، التحكم في وضع المخزن المؤقت، الاستعلامات غير المتزامنة الفعالة، تخطيط متغيرات التظليل، ربط كائنات متعددة بكفاءة، النقل المبسط لتطبيقات Direct3D، امتداد الملمس بدون ارتباط، امتداد الملمس المتفرق [56]
4.5 11 أغسطس 2014 [15] [57] GLSL 4.50، الوصول المباشر للحالة (DSA)، التحكم في التدفق، المتانة، توافق واجهة برمجة التطبيقات OpenGL ES 3.1 وبرنامج التظليل، ميزات محاكاة DX11
4.6 31 يوليو 2017 [8] [58] GLSL 4.60، معالجة هندسية أكثر كفاءة وتنفيذ shader، مزيد من المعلومات، عدم وجود سياق خطأ، مشبك إزاحة المضلع، SPIR-V، الترشيح المتباين الخواص

أوبن جي إل 2.0

تاريخ الإصدار : 7 سبتمبر 2004

تم تصميم OpenGL 2.0 في الأصل بواسطة 3Dlabs لمعالجة المخاوف من ركود OpenGL وافتقاره إلى اتجاه قوي. [59] اقترحت 3Dlabs عددًا من الإضافات الرئيسية للمعيار. تم رفض معظمها في ذلك الوقت من قبل ARB أو لم تتحقق أبدًا بالشكل الذي اقترحته 3Dlabs. ومع ذلك، تم الانتهاء من اقتراحهم للغة تظليل على غرار C في النهاية، مما أدى إلى الصياغة الحالية للغة تظليل OpenGL ( GLSL أو GLslang). مثل لغات التظليل الشبيهة بالتجميع التي حلت محلها، فقد سمحت باستبدال الرأس ذي الوظيفة الثابتة وأنبوب الشظية ببرامج تظليل ، على الرغم من كتابتها هذه المرة بلغة عالية المستوى تشبه C.

كان تصميم GLSL ملحوظًا بسبب تقديمه لعدد قليل نسبيًا من التنازلات فيما يتعلق بحدود الأجهزة المتاحة آنذاك. وقد استعاد هذا التقليد السابق لـ OpenGL الذي حدد هدفًا طموحًا وتطلعيًا لمسرعات ثلاثية الأبعاد بدلاً من مجرد تتبع حالة الأجهزة المتاحة حاليًا. تتضمن مواصفات OpenGL 2.0 النهائية [60] دعمًا لـ GLSL.

Longs Peak وOpenGL 3.0

قبل إصدار OpenGL 3.0، كان للإصدار الجديد الاسم الرمزي Longs Peak . وفي وقت الإعلان الأصلي عنه، تم تقديم Longs Peak باعتباره أول إصدار رئيسي لواجهة برمجة التطبيقات في عمر OpenGL. وكان يتألف من إصلاح شامل للطريقة التي يعمل بها OpenGL، مما يتطلب تغييرات أساسية في واجهة برمجة التطبيقات.

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

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

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

لدعم التوافق مع الإصدارات السابقة، ستظل واجهة برمجة التطبيقات القديمة القائمة على الحالة متاحة، ولكن لن يتم عرض أي وظائف جديدة عبر واجهة برمجة التطبيقات القديمة في الإصدارات الأحدث من OpenGL. كان هذا ليسمح لقواعد التعليمات البرمجية القديمة، مثل غالبية منتجات CAD ، بالاستمرار في العمل بينما يمكن كتابة برامج أخرى ضد واجهة برمجة التطبيقات الجديدة أو نقلها إليها.

كان من المقرر في البداية الانتهاء من Longs Peak في سبتمبر 2007 تحت اسم OpenGL 3.0، لكن مجموعة Khronos أعلنت في 30 أكتوبر أنها واجهت العديد من المشكلات التي كانت ترغب في معالجتها قبل إصدار المواصفات. [61] ونتيجة لذلك، تأخرت المواصفات، ودخلت مجموعة Khronos في تعتيم إعلامي حتى إصدار مواصفات OpenGL 3.0 النهائية.

لقد ثبت أن المواصفات النهائية أقل ثورية بكثير من اقتراح Longs Peak. فبدلاً من إزالة جميع الأوضاع الفورية والوظائف الثابتة (الوضع غير المظلل)، تضمنت المواصفات هذه الميزات كميزات قديمة. لم يتم تضمين نموذج الكائن المقترح، ولم يتم الإعلان عن أي خطط لتضمينه في أي مراجعات مستقبلية. ونتيجة لذلك، ظلت واجهة برمجة التطبيقات كما هي إلى حد كبير مع ترقية بعض الامتدادات الموجودة إلى وظائف أساسية. تسبب هذا القرار بين بعض مجموعات المطورين في حدوث ضجة، [62] حيث أعلن العديد من المطورين أنهم سيتحولون إلى DirectX احتجاجًا. دارت معظم الشكاوى حول عدم التواصل من قبل Khronos مع مجتمع التطوير والتخلص من العديد من الميزات التي نظر إليها الكثيرون بشكل إيجابي. وشملت الإحباطات الأخرى متطلبات أجهزة DirectX 10 لاستخدام OpenGL 3.0 وغياب تظليل الهندسة والرسم المتماثل كميزات أساسية.

ذكرت مصادر أخرى أن رد فعل المجتمع لم يكن شديدًا كما تم تقديمه في الأصل، [63] حيث أظهر العديد من البائعين دعمهم للتحديث. [64] [65]

أوبن جي إل 3.0

تاريخ الإصدار : 11 أغسطس 2008

قدم OpenGL 3.0 آلية إهمال لتبسيط المراجعات المستقبلية لواجهة برمجة التطبيقات. يمكن تعطيل بعض الميزات، التي تم وضع علامة عليها على أنها إهمال، تمامًا عن طريق طلب سياق متوافق مع نظام النوافذ. لا يزال من الممكن الوصول إلى ميزات OpenGL 3.0 جنبًا إلى جنب مع هذه الميزات الإهمال، ولكن عن طريق طلب سياق كامل .

تتضمن الميزات القديمة ما يلي:

  • جميع عمليات معالجة الرؤوس والأجزاء ذات الوظائف الثابتة
  • العرض المباشر باستخدام glBegin وglEnd
  • قوائم العرض
  • أهداف عرض الألوان المفهرسة
  • لغة تظليل OpenGL الإصداران 1.10 و1.20

أوبن جي إل 3.1

تاريخ الإصدار : 24 مارس 2009

لقد أزال OpenGL 3.1 بالكامل جميع الميزات التي تم إيقاف استخدامها في الإصدار 3.0، باستثناء الخطوط العريضة. من هذا الإصدار فصاعدًا، ليس من الممكن الوصول إلى الميزات الجديدة باستخدام سياق كامل ، أو الوصول إلى الميزات التي تم إيقاف استخدامها باستخدام سياق متوافق مع الإصدارات السابقة . يتم استثناء القاعدة السابقة إذا كان التنفيذ يدعم امتداد ARB_compatibility، ولكن هذا غير مضمون.

دعم الأجهزة: تدعم Mesa ARM Panfrost مع الإصدار 21.0.

أوبن جي إل 3.2

تاريخ الإصدار : 3 أغسطس 2009

لقد قام OpenGL 3.2 بالبناء على آليات الإلغاء التي قدمها OpenGL 3.0، وذلك من خلال تقسيم المواصفات إلى ملف تعريف أساسي وملف تعريف توافق . تتضمن سياقات التوافق واجهات برمجة التطبيقات ذات الوظائف الثابتة التي تمت إزالتها سابقًا، والتي تعادل ملحق ARB_compatibility الذي تم إصداره جنبًا إلى جنب مع OpenGL 3.1، في حين لا تتضمن السياقات الأساسية ذلك. كما تضمن OpenGL 3.2 ترقية إلى إصدار GLSL 1.50.

أوبن جي إل 3.3

تاريخ الإصدار: 11 مارس 2010

يدعم Mesa برنامج Driver SWR، وsoftpipe، وبطاقات Nvidia القديمة مع NV50.

أوبن جي إل 4.0

تاريخ الإصدار : 11 مارس 2010

تم إصدار OpenGL 4.0 بالتزامن مع الإصدار 3.3. وقد تم تصميمه للأجهزة القادرة على دعم Direct3D 11.

كما هو الحال في OpenGL 3.0، يحتوي هذا الإصدار من OpenGL على عدد كبير من الامتدادات غير المهمة إلى حد ما، والمصممة لكشف قدرات أجهزة Direct3D من الفئة 11 بشكل كامل. فيما يلي فقط الامتدادات الأكثر تأثيرًا.

دعم الأجهزة: سلسلة Nvidia GeForce 400 والإصدارات الأحدث، وسلسلة AMD Radeon HD 5000 والإصدارات الأحدث (برامج التظليل FP64 التي تم تنفيذها عن طريق المحاكاة على بعض وحدات معالجة الرسوميات TeraScale)، ورسومات Intel HD في معالجات Intel Ivy Bridge والإصدارات الأحدث. [66]

أوبن جي إل 4.1

تاريخ الإصدار : 26 يوليو 2010

دعم الأجهزة: سلسلة Nvidia GeForce 400 والإصدارات الأحدث، وسلسلة AMD Radeon HD 5000 والإصدارات الأحدث (برامج التظليل FP64 التي تم تنفيذها عن طريق المحاكاة على بعض وحدات معالجة الرسوميات TeraScale)، ورسومات Intel HD في معالجات Intel Ivy Bridge والإصدارات الأحدث. [66]

  • الحد الأدنى لحجم "الحد الأقصى للملمس" هو 16,384 × 16,384 لوحدات معالجة الرسومات التي تنفذ هذه المواصفات. [67]

أوبن جي إل 4.2

تاريخ الإصدار: 8 أغسطس 2011 [53]

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

دعم الأجهزة: سلسلة Nvidia GeForce 400 والإصدارات الأحدث، وسلسلة AMD Radeon HD 5000 والإصدارات الأحدث (برامج التظليل FP64 التي تم تنفيذها عن طريق المحاكاة على بعض وحدات معالجة الرسوميات TeraScale)، ورسومات Intel HD في معالجات Intel Haswell والإصدارات الأحدث. [66] (Linux Mesa: Ivy Bridge والإصدارات الأحدث)

أوبن جي إل 4.3

تاريخ الإصدار: 6 أغسطس 2012 [54]

  • حوسبة برامج التظليل التي تستفيد من التوازي بين وحدات معالجة الرسوميات في سياق خط أنابيب الرسوميات
  • كائنات مخزن التخزين المؤقت للتظليل، مما يسمح للتظليل بقراءة وكتابة كائنات المخزن المؤقت مثل تحميل/تخزين الصور من 4.2، ولكن من خلال اللغة بدلاً من استدعاءات الوظائف.
  • استعلامات معلمات تنسيق الصورة
  • ضغط نسيج ETC2/EAC كميزة قياسية
  • التوافق الكامل مع واجهات برمجة التطبيقات OpenGL ES 3.0
  • قدرات التصحيح لتلقي رسائل التصحيح أثناء تطوير التطبيق
  • عروض القوام لتفسير القوام بطرق مختلفة دون تكرار البيانات
  • زيادة أمان الذاكرة ومتانة التطبيقات المتعددة

دعم الأجهزة: سلسلة AMD Radeon HD 5000 والإصدارات الأحدث (برامج التظليل FP64 التي تم تنفيذها عن طريق المحاكاة على بعض وحدات معالجة الرسوميات TeraScale)، ورسوميات Intel HD في معالجات Intel Haswell والإصدارات الأحدث. [66] (Linux Mesa: Ivy Bridge بدون نسيج الاستنسل، Haswell والإصدارات الأحدث)، وسلسلة Nvidia GeForce 400 والإصدارات الأحدث. تدعم محاكاة VIRGL للآلات الافتراضية الإصدار 4.3+ مع Mesa 20.

أوبن جي إل 4.4

تاريخ الإصدار: 22 يوليو 2013 [56]

  • عناصر التحكم في استخدام كائن المخزن المؤقت المفروضة
  • الاستعلامات غير المتزامنة في كائنات المخزن المؤقت
  • التعبير عن المزيد من عناصر التحكم في تخطيط متغيرات الواجهة في برامج التظليل
  • ربط فعال لكائنات متعددة في وقت واحد

دعم الأجهزة: سلسلة AMD Radeon HD 5000 والإصدارات الأحدث (برامج تظليل FP64 التي تم تنفيذها عن طريق المحاكاة على بعض وحدات معالجة الرسوميات TeraScale)، ورسومات Intel HD في معالجات Intel Broadwell والإصدارات الأحدث (Linux Mesa: Haswell والإصدارات الأحدث)، [68] سلسلة Nvidia GeForce 400 والإصدارات الأحدث، [69] Tegra K1 .

أوبن جي إل 4.5

تاريخ الإصدار: 11 أغسطس 2014 [15] [57]

  • الوصول المباشر للحالة (DSA) - تمكن أدوات الوصول إلى الكائنات من الاستعلام عن الحالة وتعديلها دون ربط الكائنات بالسياقات، من أجل زيادة كفاءة ومرونة التطبيقات والبرامج الوسيطة. [70]
  • التحكم في التدفق – يمكن للتطبيقات التحكم في تدفق الأوامر المعلقة قبل تبديل السياق – مما يتيح تطبيقات متعددة الخيوط عالية الأداء؛
  • المتانة - توفير منصة آمنة للتطبيقات مثل متصفحات WebGL، بما في ذلك منع إعادة تعيين وحدة معالجة الرسومات مما يؤثر على أي تطبيقات أخرى قيد التشغيل؛
  • التوافق بين واجهة برمجة التطبيقات OpenGL ES 3.1 وبرنامج shader – لتمكين التطوير السهل وتنفيذ أحدث تطبيقات OpenGL ES على أنظمة سطح المكتب.

دعم الأجهزة: سلسلة AMD Radeon HD 5000 والإصدارات الأحدث (برامج تظليل FP64 التي تم تنفيذها عن طريق المحاكاة على بعض وحدات معالجة الرسوميات TeraScale)، ورسوميات Intel HD في معالجات Intel Broadwell والإصدارات الأحدث (Linux Mesa: Haswell والإصدارات الأحدث)، وسلسلة Nvidia GeForce 400 والإصدارات الأحدث، [69] و Tegra K1 وTegra X1. [71] [72]

أوبن جي إل 4.6

تاريخ الإصدار: 31 يوليو 2017 [15] [8] [58]

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

دعم الأجهزة: سلسلة AMD Radeon HD 7000 والإصدارات الأحدث (برامج التظليل FP64 التي تم تنفيذها عن طريق المحاكاة على بعض وحدات معالجة الرسوميات TeraScale)، ومعالجات Intel Haswell والإصدارات الأحدث، وسلسلة Nvidia GeForce 400 والإصدارات الأحدث. [69]

دعم السائق:

التنفيذات البديلة

أوقفت شركة Apple استخدام OpenGL في نظامي التشغيل iOS 12 وmacOS 10.14 Mojave لصالح Metal ، لكنه لا يزال متاحًا اعتبارًا من macOS 14 Sonoma (بما في ذلك أجهزة Apple silicon ). [80] أحدث إصدار مدعوم لـ OpenGL هو 4.1 من عام 2011. [81] [82] يمكن لمكتبة خاصة من Molten - مؤلفو MoltenVK - تسمى MoltenGL، ترجمة مكالمات OpenGL إلى Metal. [83]

هناك العديد من المشاريع التي تحاول تنفيذ OpenGL على رأس Vulkan. حقق برنامج Vulkan الخلفي لـ ANGLE من Google التوافق مع OpenGL ES 3.1 في يوليو 2020. [84] يتضمن مشروع Mesa3D أيضًا مثل هذا البرنامج، المسمى Zink . [85]

أضافت Microsoft Windows 11 على Arm دعمًا لـ OpenGL 3.3 عبر GLon12، وهو تطبيق OpenGL مفتوح المصدر على DirectX 12 عبر Mesa Gallium . [86] [87] [88]

فولكان

Vulkan، والذي كان يسمى سابقًا "مبادرة الجيل التالي من OpenGL" (glNext)، [89] [90] هو جهد إعادة تصميم من البداية إلى النهاية لتوحيد OpenGL وOpenGL ES في واجهة برمجة تطبيقات مشتركة واحدة لن تكون متوافقة مع إصدارات OpenGL الحالية. [91] [92] [93]

تم إصدار الإصدار الأولي من Vulkan API في 16 فبراير 2016.

انظر أيضا

  • لغة التجميع ARB – لغة التظليل منخفضة المستوى القديمة لـ OpenGL
  • Direct3D – المنافس الرئيسي لـ OpenGL
  • Glide (API) – واجهة برمجة تطبيقات رسومية كانت تستخدم في السابق على بطاقات 3dfx Voodoo
  • Metal (API) – واجهة برمجة تطبيقات رسومية لنظامي التشغيل iOS وmacOS وtvOS وwatchOS
  • OpenAL – مكتبة صوتية متعددة الأنظمة، مصممة لتشبه OpenGL
  • OpenGL ES – OpenGL للأنظمة المضمنة
  • OpenSL ES – واجهة برمجة تطبيقات للصوت على الأنظمة المضمنة، تم تطويرها بواسطة مجموعة Khronos
  • OpenVG – واجهة برمجة تطبيقات لتسريع الرسومات ثنائية الأبعاد، تم تطويرها بواسطة مجموعة Khronos
  • مواصفات واجهة RenderMan (RISpec) – واجهة برمجة التطبيقات المفتوحة من Pixar للرسم الواقعي دون اتصال بالإنترنت
  • VOGL – مصحح أخطاء لـ OpenGL
  • Vulkan – واجهة برمجة تطبيقات رسومية ثنائية وثلاثية الأبعاد متعددة الأنظمة، منخفضة التكلفة، "مبادرة OpenGL من الجيل التالي"
  • خط أنابيب الرسومات
  • ويب جي إل
  • وحدة معالجة الرسومات على الويب

ملحوظات

  1. ^ اختياري، تم إنشاؤه في OpenGL 4.3

مراجع

  1. ^ "Khronos تصدر OpenGL 4.6 مع دعم SPIR-V".
  2. ^ Lextrait, Vincent (January 2010). "The Programming Languages ​​Beacon, v10.0". مؤرشف من الأصل في 30 مايو 2012. تم الاسترجاع في 14 مارس 2010 .
  3. ^ "المنتجات: البرمجيات: OpenGL: التراخيص والشعارات". SGI. مؤرشف من الأصل في 1 نوفمبر 2012. تم الاسترجاع في 7 نوفمبر 2012 .
  4. ^ "نظام الرسوميات OpenGL: مواصفات" (ملف PDF) . 4.0 (ملف تعريف أساسي). 11 مارس 2010.
  5. ^ "SGI – نظرة عامة على OpenGL". مؤرشف من الأصل في 31 أكتوبر 2004. تم الاسترجاع في 16 فبراير 2007 .
  6. ^ بيدي، جون (يوليو 2012). "من هي الأجمل بينهم جميعًا؟". عالم الرسوميات الحاسوبية . تم الاسترجاع في 30 مايو 2018 .
  7. ^ "OpenGL ARB to Pass Control of OpenGL Specification to Khronos Group". مجموعة Khronos . 31 يوليو 2006. تم الاسترجاع في 18 مارس 2021 .
  8. ^ abc "Khronos Releases OpenGL 4.6 with SPIR-V Support". The Khronos Group Inc. 31 يوليو 2017. تم الاسترجاع في 31 يوليو 2017 .
  9. ^ "مستقبل OpenGL (مناقشة المنتدى)". مجموعة كرونوس . 2020.
  10. ^ “أرشيف أخبار خرونوس”. مجموعة خرونوس . 28 نوفمبر 2022.
  11. ^ “مدونة خرونوس”. مجموعة خرونوس . 28 نوفمبر 2022.
  12. ^ "GLSL_NV_ray_tracing".
  13. ^ "GL_NV_mesh_shader".
  14. ^ "نظرة عامة على عضوية Khronos والأسئلة الشائعة". Khronos.org . تم الاسترجاع في 7 نوفمبر 2012 .
  15. ^ abcd "سجل OpenGL الخاص بـ Khronos". مجموعة Khronos . تم الاسترجاع في 31 يوليو 2017 .
  16. ^ "NV_half_float". سجل OpenGL . مجموعة Khronos.
  17. ^ "كيفية إنشاء ملحقات API لـ Khronos". مجموعة Khronos . تم الاسترجاع في 31 يوليو 2017 .
  18. ^ "OpenGL - The Industry's Foundation for High Performance Graphics". مجموعة كرونوس . 19 يوليو 2011. تم الاسترجاع في 18 مارس 2021 .
  19. ^ "قائمة بدائل GLUT، التي تديرها مجموعة Khronos" . تم الاسترجاع في 2 مايو 2013 .
  20. ^ "أدوات وواجهات برمجة تطبيقات ذات صلة". www.opengl.org . OpenGL . تم الاسترجاع في 8 أكتوبر 2014 .
  21. ^ "IRIS GL، ملكية SGI".
  22. ^ كيلجارد، مارك (2008). "OpenGL Prehistory: IRIS GL (slide)". www.slideshare.net .
  23. ^ "إنشاء OpenGL ARB". مؤرشف من الأصل في 22 فبراير 2007. تم الاسترجاع في 16 فبراير 2007 .
  24. ^ "نهاية OpenGL++". مجموعة Khronos.
  25. ^ "مطورو الألعاب الكبار يدعون مايكروسوفت لدعم OpenGL بشكل نشط". الجيل القادم . العدد 32. إيماجين ميديا . أغسطس 1997. ص 17.
  26. ^ "إعلان فهرنهايت". مؤرشف من الأصل في 27 سبتمبر 2007.
  27. ^ "أعضاء فرقة فهرنهايت. 1998". Computergram International . 1998. مؤرشف من الأصل في 5 أكتوبر 2007.
  28. ^ "نهاية فهرنهايت". السجل .
  29. ^ "OpenGL ARB ستسلم التحكم في مواصفات OpenGL إلى مجموعة Khronos". بيان صحفي صادر عن Khronos. 31 يوليو 2006.
  30. ^ "OpenGL ARB يمرر التحكم في مواصفات OpenGL إلى مجموعة Khronos". أرشيف AccessMyLibrary.
  31. ^ سميث، رايان (5 يونيو 2018). "Apple Deprecates OpenGL Across All OSes; Urges Developers to use Metal". www.anandtech.com . شراء . تم الاسترجاع في 5 يونيو 2018 .
  32. ^ "GLQuake". ويكي Quake .
  33. ^ "ترخيص التكنولوجيا: id Tech 2". مؤرشف من الأصل في 8 نوفمبر 2009. تم الاسترجاع في 17 سبتمبر 2008 .
  34. ^ "Doom Wiki: id Tech 7" . تم الاسترجاع في 26 أكتوبر 2021 .
  35. ^ Dawe, Liam (7 مارس 2023). "Dota 2 تزيل دعم OpenGL، البطل الجديد Muerta متاح الآن، تحديث كبير في أبريل". GamingOnLinux . تم الاسترجاع في 26 مارس 2023 .
  36. ^ "AMD FidelityFX Super Resolution" . تم الاسترجاع في 17 مايو 2022 .
  37. ^ "AMD FidelityFX Super Resolution (FSR)".
  38. ^ "NVIDIA DLSS".
  39. ^ "البدء في استخدام DLSS". يونيو 2021.
  40. ^ "Jet Set Vulkan: التفكير في الانتقال إلى Vulkan".
  41. ^ "Magma: نظرة عامة". fuchsia.dev . تم الاسترجاع في 26 مارس 2023 .
  42. ^ Kilgard, Mark J. (2001). برمجة OpenGL لنظام X Window . برمجة الرسوميات (الطبعة السادسة). بوسطن، ماساتشوستس. ميونيخ: Addison-Wesley. ص. 6. ISBN 978-0-201-48359-8.
  43. ^ "نظام الرسوميات OpenGL: مواصفات" (PDF) . 1.1. 4 مارس 1997.
  44. ^ Astle, Dave (1 أبريل 2003). "Moving Beyond OpenGL 1.1 for Windows". gamedev.net . تم الاسترجاع في 15 نوفمبر 2007 .
  45. ^ إيسورنا، جي إم (2015). محاكاة المواد البصرية: النظرية والتقنيات وتحليل الحالات. يو بي سي غراو. Arquitectura، Urbanisme i edificació (بالإسبانية). جامعة السياسة في كاتالونيا. ص. 191. ردمك 978-84-9880-564-2تم الاسترجاع في 21 أغسطس 2019 .
  46. ^ abc "نظام رسومات OpenGL: مواصفات" (PDF) . 2.1. 1 ديسمبر 2006.
  47. ^ "النقطة البدائية".
  48. ^ "نظام الرسوميات OpenGL: مواصفات" (PDF) . 3.0. 23 سبتمبر 2008.
  49. ^ "نظام الرسوميات OpenGL: مواصفات" (PDF) . 3.1. 28 مايو 2009.
  50. ^ "نظام الرسوميات OpenGL: مواصفات" (ملف PDF) . 3.2 (ملف تعريف أساسي). 7 ديسمبر 2009.
  51. ^ "Khronos تطلق تسريعًا متطورًا للرسوميات عبر الأنظمة الأساسية باستخدام OpenGL 4.0". 11 مارس 2010.
  52. ^ "Khronos تدفع عجلة تطور الرسومات ثلاثية الأبعاد عبر الأنظمة الأساسية مع إصدار مواصفات OpenGL 4.1". 26 يوليو 2010.
  53. ^ "Khronos تُثري الرسومات ثلاثية الأبعاد عبر الأنظمة الأساسية بإصدار مواصفات OpenGL 4.2". 8 أغسطس 2011.
  54. ^ "Khronos تصدر مواصفات OpenGL 4.3 مع تحسينات رئيسية". 6 أغسطس 2012.
  55. ^ "شركة Khronos تصدر مواصفات OpenGL 4.3 مع تحسينات كبيرة". 6 أغسطس 2012.
  56. ^ abc "Khronos تصدر مواصفات OpenGL 4.4". 22 يوليو 2013.
  57. ^ "مجموعة Khronos تعلن عن تقدم كبير في نظام OpenGL البيئي – بيان صحفي لمجموعة Khronos". مجموعة Khronos Inc. 10 أغسطس 2014. تم الاسترجاع في 17 أبريل 2015 .
  58. ^ ab Kessenich, John; Baldwin, Dave. "The OpenGL Shading Language, Version 4.60.7". The Khronos Group Inc. تم الاسترجاع في 21 أغسطس 2019 .
  59. ^ أبي تشاهلا، فيدي (16 سبتمبر 2008). "OpenGL 3 (3DLabs وتطور OpenGL)". Tom's Hardware . تم الاسترجاع في 24 أكتوبر 2010 .
  60. ^ "نظام الرسوميات OpenGL: مواصفات" (PDF) . 2.0. 22 أكتوبر 2004.
  61. ^ "OpenGL ARB تعلن عن تحديث لـ OpenGL 3.0". 30 أكتوبر 2007. تم الاسترجاع في 31 أكتوبر 2007 .
  62. ^ "إصدار OpenGL 3.0، غضب المطورين – Slashdot". Tech.slashdot.org . تم الاسترجاع في 7 نوفمبر 2012 .
  63. ^ "تم عرض OpenGL BOF بشكل جيد، ولم يتم رؤية أي شوكة".
  64. ^ "المعيار الصناعي للرسومات عالية الأداء". OpenGL. 18 أغسطس 2008. تم الاسترجاع في 31 يوليو 2017 .
  65. ^ "NVIDIA توفر الآن برنامج التشغيل المبكر لـ OpenGL 3.0".
  66. ^ abcd "برنامج تشغيل Intel Iris وHD Graphics لنظامي التشغيل Windows 7/8/8.1 64bit". مركز تنزيل Intel . مؤرشف من الأصل في 2 أبريل 2015.
  67. ^ "الحجم الأقصى المتوقع للنسيج - برمجة الرسومات ووحدة معالجة الرسومات". GameDev.net .
  68. ^ "تفاصيل عن معالجات Intel Skylake-S وشرائح سلسلة 100 في تسريب واضح". NDTV Gadgets . 17 أبريل 2015.
  69. ^ abc Larabel, Michael (31 يوليو 2017). "NVIDIA تصدر برنامج تشغيل Linux 381.26.11 مع دعم OpenGL 4.6". Phoronix .
  70. ^ "إصدار OpenGL 4.5—بواحدة من أفضل ميزات Direct3D". Ars Technica . 11 أغسطس 2014 . تم الاسترجاع في 17 أبريل 2015 .
  71. ^ "SG4121: تحديث OpenGL لوحدات معالجة الرسومات NVIDIA". Ustream . مؤرشف من الأصل في 17 مايو 2015 . تم الاسترجاع في 17 أبريل 2015 .
  72. ^ Kilgard, Mark (12 أغسطس 2014). "تحديث OpenGL 4.5 لوحدات معالجة الرسومات NVIDIA" . تم الاسترجاع في 17 أبريل 2015 .
  73. ^ لارابيل، مايكل (21 أغسطس 2019). "برنامج تشغيل Linux OpenGL من Intel يدعم الآن OpenGL 4.6 لنظام Mesa 19.2". Phoronix .
  74. ^ لارابيل، مايكل (27 نوفمبر 2019). "برنامج تشغيل RadeonSI من AMD يمكّن OpenGL 4.6 أخيرًا". Phoronix .
  75. ^ "إصدار برنامج تشغيل الرسومات AMD Adrenalin 18.4.1 (OpenGL 4.6، Vulkan 1.1.70) – Geeks3D". www.geeks3d.com . تم الاسترجاع في 10 مايو 2018 .
  76. ^ "ملاحظات إصدار Radeon Software Adrenalin Edition 18.4.1". support.amd.com . تم الاسترجاع في 10 مايو 2018 .
  77. ^ "إصدار برنامج تشغيل الرسومات من Intel 25.20.100.6861 (OpenGL 4.6 + Vulkan 1.1.103) | Geeks3D". 16 مايو 2019. تم الاسترجاع في 16 مايو 2019 .
  78. ^ "Windows 10 DCH Drivers". Intel DownloadCenter . تم الاسترجاع في 21 أغسطس 2019 .
  79. ^ "إصدار برنامج تشغيل الرسومات NVIDIA GeForce 397.31 (OpenGL 4.6، Vulkan 1.1، RTX، CUDA 9.2) - Geeks3D". www.geeks3d.com . 25 أبريل 2018 . تم الاسترجاع في 10 مايو 2018 .
  80. ^ "وثائق مطوري Apple". developer.apple.com .
  81. ^ كانينغهام، أندرو (7 أكتوبر 2019). "macOS 10.15 Catalina: مراجعة Ars Technica". Ars Technica .
  82. ^ أكسون، صموئيل (6 يونيو 2018). "نهاية دعم OpenGL، بالإضافة إلى تحديثات أخرى لم تشاركها Apple في الخطاب الرئيسي". Ars Technica . تم الاسترجاع في 19 أكتوبر 2020 .
  83. ^ "Vulkan وOpenGL ES الأسرع على iOS وmacOS". Molten . تم الاسترجاع في 19 أكتوبر 2020 .
  84. ^ مؤلفو مشروع ANGLE (14 أكتوبر 2020). "google/angle: تنفيذ متوافق مع OpenGL ES لنظامي التشغيل Windows وMac وLinux وiOS وAndroid". GitHub . تم الاسترجاع في 17 ديسمبر 2020 .
  85. ^ "Zink". أحدث وثائق مكتبة Mesa 3D Graphics Library .
  86. ^ "حالة Windows على Arm64: منظور رفيع المستوى". Chips and Cheese . 13 مارس 2022 . تم الاسترجاع في 23 أكتوبر 2023 .
  87. ^ "تقديم OpenCL وOpenGL على DirectX". Collabora | استشارات المصدر المفتوح . تم الاسترجاع في 23 أكتوبر 2023 .
  88. ^ "الغوص العميق في OpenGL عبر طبقات DirectX". Collabora | استشارات المصدر المفتوح . تم الاسترجاع في 23 أكتوبر 2023 .
  89. ^ Dingman, Hayden (3 مارس 2015). "تعرف على Vulkan، تقنية الألعاب القوية التي لا تعتمد على منصة وتستهدف DirectX 12". PC World . تم الاسترجاع في 3 مارس 2015 .
  90. ^ برايت، بيتر (3 مارس 2015). "Khronos تكشف عن Vulkan: OpenGL مصمم للأنظمة الحديثة". Ars Technica . تم الاسترجاع في 3 مارس 2015 .
  91. ^ ""Khronos Announces Next Generation OpenGL Initiative"". AnandTech . تم الاسترجاع في 20 أغسطس 2014 .
  92. ^ "إصدار OpenGL 4.5، الكشف عن الجيل التالي من OpenGL: قاتل Mantle متعدد المنصات ومنافس DX12" . تم الاسترجاع في 20 أغسطس 2014 .
  93. ^ "Khronos تنشر عرضها التقديمي حول OpenGL-Next". Phoronix . تم الاسترجاع في 22 أغسطس 2014 .

قراءة إضافية

  • شراينر، ديف؛ سيلرز، جراهام؛ وآخرون. (30 مارس 2013). دليل برمجة OpenGL: الدليل الرسمي لتعلم OpenGL . الإصدار 4.3 (الطبعة الثامنة). أديسون ويسلي. رقم ISBN 978-0-321-77303-6.
  • سيلرز، جراهام؛ رايت، ريتشارد س؛ هايميل، نيكولاس (31 يوليو 2013). OpenGL SuperBible: برنامج تعليمي شامل ومرجع (الطبعة السادسة). أديسون ويسلي. رقم ISBN 978-0-321-90294-8.
  • روست، راندي جيه. (30 يوليو 2009). لغة تظليل OpenGL (الطبعة الثالثة). أديسون ويسلي. رقم ISBN 978-0-321-63763-5.
  • لينجيل، إيريك (2003). دليل ملحقات OpenGL. تشارلز ريفر ميديا. رقم ISBN 1-58450-294-0.
  • لجنة مراجعة بنية OpenGL ؛ شراينر، ديف (2004). دليل مرجعي لـ OpenGL: الوثيقة المرجعية الرسمية لـ OpenGL . الإصدار 1.4. أديسون ويسلي. رقم ISBN 0-321-17383-X.
  • هيئة مراجعة بنية OpenGL ؛ شراينر، ديف؛ وآخرون. (2006). دليل برمجة OpenGL: الدليل الرسمي لتعلم OpenGL . الإصدار 2 (الطبعة الخامسة). أديسون ويسلي. رقم ISBN 0-321-33573-2.
  • الموقع الرسمي
  • نظرة عامة على OpenGL وويكي OpenGL.org مع مزيد من المعلومات حول ارتباطات لغة OpenGL
  • موقع OpenGL الخاص بـ SGI
  • مجموعة كرونوس المحدودة
تم الاسترجاع من "https://en.wikipedia.org/w/index.php?title=OpenGL&oldid=1254242372"
Original text
Rate this translation
Your feedback will be used to help improve Google Translate