OpenGL ES
OpenGL للأنظمة المدمجة ( OpenGL ES أو GLES ) هي مجموعة فرعية من واجهة برمجة تطبيقات OpenGL لعرض رسومات الحاسوب ، وتُستخدم لعرض رسومات ثنائية وثلاثية الأبعاد، مثل تلك المستخدمة في ألعاب الفيديو، والتي عادةً ما يتم تسريعها باستخدام وحدة معالجة الرسومات (GPU). صُممت هذه الواجهة للأنظمة المدمجة مثل الهواتف الذكية، وأجهزة الكمبيوتر اللوحية، ووحدات تحكم ألعاب الفيديو، وأجهزة المساعد الرقمي الشخصي (PDA). تُعد OpenGL ES "واجهة برمجة تطبيقات الرسومات ثلاثية الأبعاد الأكثر استخدامًا على الإطلاق".
واجهة برمجة التطبيقات (API) متعددة اللغات والمنصات. تُدار OpenGL ES من قِبل مجموعة كرونوس ، وهي اتحاد تقني غير ربحي . أما Vulkan ، وهي واجهة برمجة تطبيقات من الجيل التالي من كرونوس، فقد صُممت لتوفير برامج تشغيل أبسط وعالية الأداء للأجهزة المحمولة وأجهزة الكمبيوتر المكتبية.
الإصدارات
توجد الآن عدة إصدارات من مواصفات OpenGL ES. تم تصميم OpenGL ES 1.0 استنادًا إلى مواصفات OpenGL 1.3، وتم تعريف OpenGL ES 1.1 استنادًا إلى مواصفات OpenGL 1.5، وتم تعريف OpenGL ES 2.0 استنادًا إلى مواصفات OpenGL 2.0. هذا يعني، على سبيل المثال، أنه من السهل نقل تطبيق مكتوب لـ OpenGL ES 1.0 إلى OpenGL 1.3 المكتبي؛ وبما أن OpenGL ES هو إصدار مُبسط من واجهة برمجة التطبيقات (API)، فقد يكون العكس صحيحًا أو غير صحيح، وذلك بحسب الميزات المُستخدمة.
يأتي OpenGL ES مزودًا بإصداره الخاص من لغة التظليل (OpenGL ES SL)، وهو يختلف عن OpenGL SL . [ 2 ]
يحتوي الإصداران 1.0 و 1.1 على ملفات تعريف مشتركة (CM) وملفات تعريف مشتركة خفيفة (CL)، والفرق هو أن ملف التعريف المشترك الخفيف يدعم فقط دعم نوع بيانات النقطة الثابتة بدلاً من دعم نوع بيانات النقطة العائمة ، بينما يدعم الملف المشترك كليهما.
OpenGL ES 1.0
تم إصدار OpenGL ES 1.0 للجمهور في 28 يوليو 2003. يعتمد OpenGL ES 1.0 على واجهة برمجة التطبيقات الأصلية OpenGL 1.3، مع إزالة العديد من الوظائف وإضافة القليل منها. أحد الاختلافات الرئيسية بين OpenGL وOpenGL ES هو أن OpenGL ES ألغى الحاجة إلى وضع استدعاءات مكتبة OpenGL بين علامتي `--` glBeginو`--` glEnd. ومن الاختلافات المهمة الأخرى تغيير دلالات استدعاء وظائف العرض الأساسية لصالح مصفوفات الرؤوس، وإضافة أنواع بيانات النقطة الثابتة لإحداثيات الرؤوس. كما أُضيفت سمات لدعم القدرات الحسابية للمعالجات المدمجة بشكل أفضل، والتي غالبًا ما تفتقر إلى وحدة الفاصلة العائمة (FPU). تم حذف العديد من الوظائف وعناصر العرض الأساسية الأخرى في الإصدار 1.0 لإنتاج واجهة خفيفة الوزن، بما في ذلك:
- أشكال العرض الرباعية والمضلعة؛
- texgen، وline، وpolygon stipple؛
- لا يتم دعم وضع المضلع وعرض المضلع المضاد للتشويش، على الرغم من أن العرض باستخدام العينات المتعددة لا يزال ممكنًا (بدلاً من أجزاء حدود ألفا)؛
ARB_Imageعمليات فئة البكسل، والصور النقطية، والقوام ثلاثي الأبعاد غير مدعومة؛- تم التخلص من العديد من أوضاع الرسم الأكثر تقنية، بما في ذلك المخزن المؤقت الأمامي ومخزن التجميع المؤقت؛
- عمليات الصور النقطية لنسخ وحدات البكسل بشكل فردي، والمقيّمين، وعمليات اختيار المستخدم غير مسموح بها؛
- تمت إزالة قوائم العرض والتعليقات، وكذلك عمليات الدفع والسحب لسمات الحالة؛
- وتمت إزالة بعض معايير المواد، بما في ذلك معايير الوجه الخلفي ومستويات القص المحددة من قبل المستخدم.
الإصدار الفعلي هو 1.0.0.2. [ 3 ]
| اسم الامتداد | فرز #رقم | تفاصيل |
|---|---|---|
| إحداثيات بايت OES | امتداد OpenGL ES رقم 14 | (سابقًا OpenGL Extension #291) |
| نسيج مضغوط ذو لوحة ألوان OES | امتداد OpenGL ES رقم 6 | (سابقًا OpenGL Extension #294) |
| OES_fixed_point | امتداد OpenGL ES رقم 9 | (سابقًا OpenGL Extension #292) |
| مصفوفة استعلام OES | امتداد OpenGL ES رقم 16 | (سابقًا OpenGL Extension #296) |
| تنسيق قراءة OES | امتداد OpenGL ES رقم 17 | (سابقًا OpenGL Extension رقم 295) |
| دقة مفردة OES | امتداد OpenGL ES رقم 18 | (سابقًا OpenGL Extension رقم 293) |
| خياري | ميسا (معظم السائقين) | |
| نسيج OES_compressed_ETC1_RGB8 | امتداد OpenGL ES رقم 5 |
OpenGL ES 1.1
أضافت OpenGL ES 1.1 ميزات مثل الدعم الإلزامي للنسيج المتعدد، ودعم مُحسّن للنسيج المتعدد (بما في ذلك عمليات دمج النسيج وعمليات الضرب النقطي )، والتوليد التلقائي لخرائط MIP ، وكائنات مخزن الرؤوس ، واستعلامات الحالة، ومستويات قص المستخدم، وتحكم أكبر في عرض النقاط. [ 4 ] الإصدار الحالي هو 1.1.12. [ 5 ]
| اسم الامتداد | فرز #رقم |
|---|---|
| OES_draw_texture | امتداد OpenGL ES رقم 7 |
| OES_matrix_get | امتداد OpenGL ES رقم 11 |
| مصفوفة حجم نقطة OES | امتداد OpenGL ES رقم 14 |
| OES_point_sprite | امتداد OpenGL ES رقم 15 |
| خياري | ميسا (جميع السائقين) |
| كائن إطار المخزن المؤقت OES | OpenGL ES Extension #10 (أصبح جزءًا أساسيًا في ES 2.0) [ 6 ] |
| صورة OES_EGL | امتداد OpenGL ES رقم 23 |
| OES_EGL_image_external | امتداد OpenGL ES رقم 87 |
| OES_required_internalformat | امتداد OpenGL ES قيد التحديد |
OpenGL ES 2.0
تم إصدار OpenGL ES 2.0 للجمهور في مارس 2007. [ 7 ] وهو مبنيٌّ بشكلٍ عام على OpenGL 2.0، ولكنه يُلغي معظم مسار معالجة الرسومات ذي الوظائف الثابتة لصالح مسار قابل للبرمجة، في خطوةٍ تُشبه الانتقال من OpenGL 3.0 إلى 3.1. [ 8 ] يقتصر تدفق التحكم في المُظلِّلات عمومًا على التفرع الأمامي والحلقات التي يُمكن تحديد الحد الأقصى لعدد التكرارات فيها بسهولة أثناء وقت الترجمة. [ 9 ] تم استبدال جميع ميزات معالجة الرسومات تقريبًا في مرحلتي التحويل والإضاءة، مثل تحديد المواد ومعلمات الإضاءة التي كانت تُحدَّد سابقًا بواسطة واجهة برمجة التطبيقات ذات الوظائف الثابتة، بمُظلِّلات يكتبها مُبرمج الرسومات. ونتيجةً لذلك، فإن OpenGL ES 2.0 غير متوافق مع الإصدارات السابقة OpenGL ES 1.1. استمرت بعض أوجه عدم التوافق بين إصدار سطح المكتب من OpenGL وOpenGL ES 2.0 حتى OpenGL 4.1، الذي أضاف GL_ARB_ES2_compatibilityالامتداد. [ 10 ] الإصدار الحالي هو 2.0.25. [ 11 ]
قامت مجموعة كرونوس بكتابة وثيقة تصف الاختلافات بين OpenGL ES 2.0 و OpenGL 2.0 العادي. [ 12 ]
| اسم الامتداد | فرز #رقم |
|---|---|
| خريطة مكعب نسيج OES | امتداد OpenGL ES رقم 20 |
| OES_texture_npot | امتداد OpenGL ES رقم 37 |
| عمق OES 24 | امتداد OpenGL ES T24 |
| نسيج عمق OES | امتداد OpenGL ES رقم 44 |
| OES_element_index_uint | امتداد OpenGL ES رقم 26 |
| OES_fbo_render_mipmap | امتداد OpenGL ES رقم 27 |
| OES_get_program_binary | امتداد OpenGL ES رقم 47 |
| OES_mapbuffer | امتداد OpenGL ES T29 |
| قالب عمق التعبئة OES | امتداد OpenGL ES43 |
| OES_rgb8_rgba8 | امتداد OpenGL ES30 |
| OES_stencil8 | امتداد OpenGL ES33 |
| OES_vertex_half_float | امتداد OpenGL ES38 |
| إضافي | في ميسا (جميع السائقين) |
| صورة OES_EGL | ملحق OpenGL ES رقم 23 (يختلف في الإصدار 1.1) |
| OES_EGL_image_external | ملحق OpenGL ES رقم 87 (يختلف في الإصدار 1.1) |
| نسيج ثلاثي الأبعاد OES | OpenGL ES Extension #34 (أصبح جزءًا أساسيًا في ES 3.0) [ 13 ] |
| OES_texture_float_linear OES_texture_half_float_linear | امتداد OpenGL ES رقم 35، تم توسيعه في ES 3.0 و 3.1 |
| OES_texture_float OES_texture_half_float | امتداد OpenGL ES رقم 36، تم توسيعه في ES 3.0 و 3.1 |
| المشتقات القياسية OES | امتداد OpenGL ES رقم 45 |
| كائن مصفوفة رؤوس OES | OpenGL ES Extension #71 (أصبح جزءًا أساسيًا في ES 3.0) [ 13 ] |
| سياق OES_surfaceless_context | امتداد OpenGL ES رقم 116 |
| خريطة مكعب نسيج عمق OES | امتداد OpenGL ES رقم 136 |
| EXT_texture_filter_anisotropic | امتداد OpenGL ES رقم 41 |
| EXT_texture_type_2_10_10_10_REV | امتداد OpenGL ES T42 |
| EXT_texture_compression_dxt1 | امتداد OpenGL ES رقم 49 |
| EXT_texture_format_BGRA8888 | امتداد OpenGL ES رقم 51 |
| EXT_discard_framebuffer | امتداد OpenGL ES رقم 64 |
| EXT_blend_minmax | امتداد OpenGL ES رقم 65 |
| EXT_read_format_bgra | امتداد OpenGL ES رقم 66 |
| EXT_multi_draw_arrays | امتداد OpenGL ES رقم 69 |
| عمق التجزئة الخارجي | امتداد OpenGL ES رقم 86 |
| EXT_unpack_subimage | امتداد OpenGL ES رقم 90 |
| EXT_texture_rg | امتداد OpenGL ES103 |
| EXT_draw_buffers | امتداد OpenGL ES رقم 151 |
| EXT_compressed_ETC1_RGB8_sub_texture | امتداد OpenGL ES رقم 188 |
| NV_draw_buffers | امتداد OpenGL ES رقم 91 |
| NV_fbo_color_attachments | امتداد OpenGL ES T92 |
| NV_read_buffer | امتداد OpenGL ES93 |
| NV_read_depth_stencil | امتداد OpenGL ES رقم 94 |
| ANGLE_texture_compression_dxt | امتداد OpenGL ES رقم 111 |
OpenGL ES 3.0
تم إصدار مواصفات OpenGL ES 3.0 [ 14 ] علنًا في أغسطس 2012. [ 15 ] وهي متوافقة مع الإصدارات السابقة OpenGL ES 2.0، ومتوافقة جزئيًا مع WebGL 2.0، [ 16 ] حيث صُممت WebGL 2.0 لتتمتع بدرجة عالية من التوافق مع OpenGL ES 3.0. [ 17 ] الإصدار الحالي من معيار OpenGL ES 3.0 هو 3.0.6، وقد صدر في نوفمبر 2019. [ 18 ]
تتضمن الوظائف الجديدة في مواصفات OpenGL ES 3.0 ما يلي:
- تحسينات متعددة لخط أنابيب العرض لتمكين تسريع التأثيرات البصرية المتقدمة بما في ذلك: استعلامات الحجب ، وردود الفعل التحويلية ، والعرض المُنسخ ، ودعم أربعة أهداف عرض أو أكثر ؛
- ضغط نسيج ETC2 / EAC عالي الجودة كميزة قياسية، مما يلغي الحاجة إلى مجموعة مختلفة من النسيج لكل منصة؛
- إصدار جديد من لغة التظليل GLSL ES [ 19 ] مع دعم كامل لعمليات الأعداد الصحيحة وعمليات الفاصلة العائمة 32 بت ؛
- تم تحسين وظائف النسيج بشكل كبير بما في ذلك الدعم المضمون لنسيج النقطة العائمة ، والنسيج ثلاثي الأبعاد، ونسيج العمق، ونسيج الرؤوس، ونسيج NPOT، ونسيج R/RG، والنسيج غير القابل للتغيير، ونسيج المصفوفة ثنائية الأبعاد، و swizzles ، و LOD و mip level clamps، وخرائط المكعبات السلسة وكائنات أخذ العينات؛
- مجموعة واسعة من تنسيقات النسيج ومخازن العرض المطلوبة والمحددة الحجم بشكل صريح، مما يقلل من تباين التنفيذ ويجعل كتابة التطبيقات المحمولة أسهل بكثير.
| اسم الامتداد | فرز #رقم | تفاصيل |
|---|---|---|
| KHR_context_flush_control | امتداد OpenGL ES رقم 191 | (خاص بـ GL_KHR_context_flush_control فقط) |
| إضافي | في ميسا (جميع السائقين) | |
| OES_texture_compression_astc | امتداد OpenGL ES رقم 162 | |
| مشبك حدود النسيج الخارجي | امتداد OpenGL ES رقم 182 | |
| EXT_draw_elements_base_vertex | امتداد OpenGL ES رقم 204 | |
| OES_EGL_image_external_essl3 | امتداد OpenGL ES T220 | |
| MESA_shader_integer_functions | امتداد OpenGL ES رقم 495 |
OpenGL ES 3.1
تم إصدار مواصفات OpenGL ES 3.1 [ 20 ] علنًا في مارس 2014. تتضمن الوظائف الجديدة في OpenGL ES 3.1 ما يلي: [ 21 ]
- معالجات التظليل الحاسوبية
- تظليلات الرؤوس والقطع المستقلة
- أوامر الرسم غير المباشرة
يتوافق OpenGL ES 3.1 مع الإصدارات السابقة OpenGL ES 2.0 و 3.0، مما يُمكّن التطبيقات من دمج الميزات الجديدة تدريجيًا. الإصدار الحالي هو 3.1 (نوفمبر 2016). [ 22 ]
| اسم الامتداد | فرز #رقم |
|---|---|
| ARB_arrays_of_arrays | تمديد ARB رقم 120 |
| ARB_compute_shader | تمديد ARB رقم 122 |
| ARB_explicit_uniform_location | تمديد مجلس مراجعة الحسابات رقم 128 |
| ARB_framebuffer_no_attachments | تمديد مجلس مراجعة الأصول رقم 130 |
| استعلام واجهة برنامج ARB | تمديد مجلس مراجعة الحسابات الإدارية 134 |
| عدادات ARB_shader_atomic_counters | تمديد مجلس مراجعة الحسابات الإدارية114 |
| ARB_shader_image_load_store | تمديد مجلس مراجعة الحسابات رقم 115 |
| ARB_shader_storage_buffer_object | تمديد مجلس مراجعة الأصول رقم 137 |
| ARB_separate_shader_objects | تمديد مجلس مراجعة شؤون الموظفين رقم 97 |
| ARB_stencil_texturing | تمديد مجلس مراجعة الحسابات الإدارية رقم 138 |
| ARB_vertex_attrib_binding | تمديد مجلس مراجعة الحسابات رقم 125 |
| ARB_draw_indirect | تمديد مجلس مراجعة الحسابات رقم 87 |
| ARB_shading_language_packing | تمديد مجلس مراجعة الأصول رقم 116 |
| حجم صورة تظليل ARB | تمديد مجلس مراجعة الأصول رقم 136 |
| ARB_texture_storage_multisample | تمديد مجلس مراجعة الأصول رقم 141 |
| ARB_texture_multisample | تمديد مجلس مراجعة الأصول رقم 67 |
| مزيج الأعداد الصحيحة للتظليل الخارجي | امتداد OpenGL ES رقم 161 |
| خياري | ميسا (جميع برامج التشغيل OpenGL ES 3.1+) |
| مواقع عينات ARB | تمديد مجلس مراجعة الأصول رقم 181 |
| عرض نسيج OES | امتداد OpenGL ES رقم 218 |
| تنسيقات صور NV | امتداد OpenGL ES رقم 200 |
| EXT_render_snorm | امتداد OpenGL ES رقم 206 |
| EXT_texture_norm16 | امتداد OpenGL ES رقم 207 |
OpenGL ES 3.2
تم إصدار مواصفات OpenGL ES 3.2 [ 23 ] علنًا في أغسطس 2015. وتشمل الإمكانيات الجديدة في OpenGL ES 3.2 ما يلي:
- تظليل الهندسة والتجزئة لمعالجة المشاهد المعقدة بكفاءة على وحدة معالجة الرسومات.
- أهداف عرض الفاصلة العائمة لزيادة المرونة في عمليات الحساب ذات الدقة العالية.
- ضغط ASTC لتقليل حجم الذاكرة وعرض النطاق الترددي المستخدم لمعالجة الصور.
- تحسين المزج لتركيب الألوان المعقدة والتعامل مع ملحقات الألوان المتعددة.
- أهداف نسيجية متقدمة مثل مخازن النسيج، ومصفوفة ثنائية الأبعاد متعددة العينات، ومصفوفات خرائط المكعبات.
- ميزات تصحيح الأخطاء والمتانة لتسهيل تطوير التعليمات البرمجية وتنفيذها بشكل آمن.
الحالة الفعلية هي 3.2.6 يوليو 2019. [ 24 ] [ 25 ]
| اسم الامتداد | فرز #رقم |
|---|---|
| معادلة المزج KHR المتقدمة | امتداد OpenGL ES رقم 168 |
| EXT_color_buffer_float | امتداد OpenGL ES رقم 137 |
| KHR_debug | امتداد OpenGL ES رقم 118 |
| KHR_robustness | امتداد OpenGL ES رقم 190 |
| صورة OES_copy_image | امتداد OpenGL ES رقم 208 |
| OES_draw_buffers_indexed | امتداد OpenGL ES رقم 209 |
| OES_draw_elements_base_vertex | امتداد OpenGL ES رقم 219 |
| OES_geometry_shader | امتداد OpenGL ES رقم 210 |
| OES_gpu_shader5 | امتداد OpenGL ES رقم 211 |
| تظليل عينات OES | امتداد OpenGL ES رقم 169 |
| متغيرات عينة OES | امتداد OpenGL ES رقم 170 |
| OES_shader_image_atomic | امتداد OpenGL ES رقم 171 |
| OES_shader_io_blocks | امتداد OpenGL ES رقم 213 |
| OES_shader_multisample_interpolation | امتداد OpenGL ES رقم 172 |
| OES_tessellation_shader | امتداد OpenGL ES رقم 214 |
| OES_texture_border_clamp | امتداد OpenGL ES رقم 215 |
| مخزن نسيج OES | امتداد OpenGL ES رقم 216 |
| OES_texture_cube_map_array | امتداد OpenGL ES رقم 217 |
| OES_texture_stencil8 | امتداد OpenGL ES رقم 173 |
| OES_texture_storage_multisample_2d_array | امتداد OpenGL ES رقم 174 |
| KHR_texture_compression_astc_ldr | ملحق OpenGL ES رقم 117 (خاص بتقنية LED فقط) |
| OES_primitive_bounding_box | امتداد OpenGL ES رقم 212 |
| خياري | ميسا (جميع برامج التشغيل OpenGL ES 3.2+) |
| KHR_texture_compression_astc_hdr | امتداد OpenGL ES رقم 117 (يتضمن LDR)، امتداد ARB رقم 118 |
| معادلة KHR_blend_equation_advanced_coherent | امتداد OpenGL ES رقم 168 |
| KHR_texture_compression_astc_sliced_3d | امتداد OpenGL ES رقم 249 (امتداد ARB رقم 189) |
| امتداد OpenGL ES رقم 267 |
تم تطوير بعض الإضافات الأخرى أو هي قيد التطوير في Mesa للإصدار التالي من OpenGL ES (انظر Mesamatrix).
الجيل التالي من واجهات برمجة التطبيقات هو Vulkan. [ 26 ]
استخدام المنصة
للاطلاع على القائمة الكاملة للشركات ومنتجاتها المتوافقة، انظر هنا
OpenGL ES 1.0
أضافت OpenGL ES 1.0 واجهة برمجة تطبيقات رسومية ثلاثية الأبعاد رسمية إلى نظامي التشغيل Android [ 27 ] و Symbian OS v8.0a [ 28 ] [ 29 ] ، بالإضافة إلى QNX [ 30 ]. كما يدعمها جهاز PlayStation 3 كإحدى واجهات برمجة التطبيقات الرسومية الرسمية [ 31 ] (إلى جانب مكتبة libgcm منخفضة المستوى ) باستخدام مكتبة Cg من Nvidia بدلاً من GLSL. [ 32 ] ويتضمن جهاز PlayStation 3 أيضًا العديد من ميزات الإصدار 2.0 من OpenGL ES.
OpenGL ES 1.1
يدعم الإصدار 1.1 من OpenGL ES ما يلي:
- أندرويد 1.6
- نظام التشغيل iOS من Apple لأجهزة iPad و iPhone و iPod Touch
- سلسلة أنظمة التشغيل BlackBerry 5.0 من RIM [ 34 ] (فقط BlackBerry Storm 2 و BlackBerry Curve 8530 والطرازات الأحدث تحتوي على الأجهزة اللازمة [ 35 ] )
- بلاك بيري بلاي بوك
- بلاك بيري BB10
- هواتف نوكيا المختلفة مثل نوكيا N95 و N93 و N93i و N82.
- نظام التشغيل Palm webOS ، باستخدام مجموعة أدوات تطوير المكونات الإضافية [ 36 ]
- نينتندو 3DS [ 37 ]
OpenGL ES 2.0
بدعم من:
- منصة أندرويد منذ أندرويد 2.0 من خلال NDK وأندرويد 2.2 من خلال جافا [ 38 ]
- نظام التشغيل AmigaOS على جهاز AmigaOne مع Warp3D Nova وبطاقة رسومات Radeon HD متوافقة .
- نظام التشغيل Apple iOS 5 أو أحدث في أجهزة iPad و iPad Mini و iPhone 3GS أو أحدث و iPod Touch من الجيل الثالث أو أحدث
- أجهزة بلاك بيري التي تعمل بنظام التشغيل بلاك بيري 7.0 وبلاك بيري 10 ، بالإضافة إلى جهاز بلاك بيري بلاي بوك
- عميل جوجل الأصلي
- Intel HD Graphics 965G / X3000 وما فوق (Linux) [ 39 ]
- إنفيديا (أندرويد)، كوري NV40+: لينكس، ويندوز [ 40 ]
- هواتف نوكيا المختلفة (مثل نوكيا N8 التي تعمل بنظام Symbian ^3 ، ونوكيا N9 التي تعمل بنظام MeeGo ، ونوكيا N900 التي تعمل بنظام Maemo [ 41 ] )
- نظام التشغيل بالم ويب أو إس ، باستخدام مجموعة أدوات تطوير المكونات الإضافية [ 36 ]
- وحدة تحكم باندورا
- راسبيري باي
- أودرويد
- هواتف سامسونج المحمولة المختلفة (مثل Wave )
- متصفحات الويب ( WebGL )
- وحدة التحكم GCW Zero
- جهاز بلاي ستيشن فيتا المحمول
- جهاز بلاي ستيشن 4
OpenGL ES 3.0
بدعم من:
- نظام أندرويد منذ الإصدار 4.3، على الأجهزة المزودة بالأجهزة وبرامج التشغيل المناسبة، بما في ذلك:
- نيكسوس 7 (2013)
- نيكسوس 4
- نيكسوس 5
- نيكسوس 10
- إتش تي سي باترفلاي إس
- إتش تي سي ون / ون ماكس
- إل جي جي 2
- إل جي جي باد 8.3
- سامسونج جالاكسي J5
- سامسونج جالاكسي J5 (2016)
- سامسونج جالاكسي إس 4 (إصدار سنابدراجون)
- سامسونج جالاكسي إس 5
- سامسونج جالاكسي نوت 3
- سامسونج جالاكسي نوت 10.1 (إصدار 2014)
- سوني إكسبريا إم
- سوني إكسبريا زد / زد إل
- سوني إكسبريا زد 1
- سوني إكسبريا زد ألترا
- جهاز سوني إكسبريا اللوحي Z
- نظام التشغيل iOS منذ الإصدار 7، على الأجهزة التالية:
- نظام التشغيل BlackBerry 10 منذ الإصدار 10.2، على الأجهزة بما في ذلك:
مدعومة من قبل بعض الإصدارات الحديثة من وحدات معالجة الرسومات هذه: [ 43 ] [ 44 ]
- سلسلة Adreno 300 و 400 ( أندرويد ، بلاك بيري 10 ، ويندوز 10، ويندوز RT )
- سلسلة Mali T600 وما بعدها (أندرويد، لينكس ، ويندوز 7)
- سلسلة PowerVR 6 ( iOS ، Linux)
- فيفانتي (أندرويد، OS X 10.8.3، ويندوز 7)
- إنفيديا (أندرويد)، تسلا G80+: لينكس، ويندوز 7+
- معالج رسومات Intel HD من الجيل الثاني (Sandy Bridge وما فوق) (Linux) [ 39 ]
- معالج AMD Terascale وبنية GCN الفعلية (ويندوز، لينكس)
- LLVMpipe و Softpipe: برامج تشغيل برمجية في Mesa [ 40 ]
- VIRGL: برنامج تشغيل افتراضي للأجهزة الافتراضية في عام 2018 مع Mesa 18.1 (انظر Mesamatrix.net)
OpenGL ES 3.1
مدعوم من قبل أنظمة التشغيل Windows وLinux وAndroid (منذ الإصدار 5.0) على الأجهزة المزودة بالأجهزة وبرامج التشغيل المناسبة، [ 45 ] بما في ذلك:
- سلسلة Adreno 400 [ 46 ] [ 47 ]
- سلسلة Adreno 500 (Mesa 18.1 لنظامي Linux و Android)
- معالج AMD Terascale وبنية GCN الفعلية (Windows، Linux (r600، radeonSI))
- معالج رسومات Intel HD لسلسلة Intel Atom Z3700 (أندرويد)
- معالج رسومات Intel HD لسلسلة Intel Celeron N و J (أندرويد)
- معالج رسومات Intel HD لأجهزة Intel Pentium N و J (أندرويد)
- معالجات Intel HD Graphics Haswell وما فوق (Linux Mesa: Ivy Bridge السابقة بدون نسيج الاستنسل تقريبًا) [ 39 ]
- سلسلة Mali T6xx (midgard) وما بعدها [ 48 ] (أندرويد، لينكس)
- سلسلة Nvidia GeForce 400 وما بعدها (Windows، Linux)
- Nvidia Tegra K1 (Android، Linux)
- إنفيديا تيغرا إكس 1 (أندرويد)
- سلسلة PowerVR 6، 6XE، 6XT، 7XE و7XT (لينكس، أندرويد)
- سلسلة Vivante GC2000 وما بعدها (اختياري مع GC800 و GC1000) [ 49 ]
- panfrost: دعم ARM panfrost (Linux Mesa 22.0)
- v3d: برنامج تشغيل Broadcom VideoCore في Mesa (Linux)
- راسبيري باي 4 و 5
- VIRGL: برنامج تشغيل افتراضي للأجهزة الافتراضية في عام 2018 مع Mesa 18.1 (انظر Mesamatrix.net)
- LLVMpipe: برنامج تشغيل في Mesa 20.2 (Linux)
- softpipe: برنامج تشغيل في Mesa 20.3 (Linux)
- Zink: برنامج تشغيل المحاكاة في Mesa 21.1 (Linux)
- d3d12: برنامج تشغيل لينكس WSL2 لأنظمة مايكروسوفت 10+ (Mesa 22.0)
- معالجات الرسوميات Apple M1 و M2 في نظام Fedora Asahi Remix (Linux)
حزمة ملحقات أندرويد
حزمة ملحقات أندرويد (AEP) هي مجموعة من ملحقات OpenGL ES 3.1، مُجمّعة في ملحق واحد طرحته جوجل عام 2014. يُمكّن هذا التطبيقات من استخدام جميع ميزات مجموعة الملحقات، مع اختبار وجود ملحق واحد فقط. أُضيفت حزمة ملحقات أندرويد (AEP) رسميًا إلى نظام أندرويد لولي بوب لتوفير ميزات إضافية مثل التجزئة، بالإضافة إلى الميزات الموجودة رسميًا في إصدار GLES 3.1. يتكون تحديث OpenGL ES 3.2 بشكل كبير من إضافات حزمة ملحقات أندرويد (AEP)، الموجودة بالفعل في OpenGL على أجهزة سطح المكتب. [ 50 ]
OpenGL ES 3.2

يُقدّم OpenGL ES 3.2، الذي يتضمن حزمة ملحقات Android (AEP)، عددًا من التحسينات الطفيفة مقارنةً بإصدار العام الماضي OpenGL ES 3.1. ويستفيد كلا الإصدارين من ميزات مماثلة من حزمة ملحقات Android. وبفضل حزمة ملحقات Android، ستدعم الأجهزة المتوافقة مع OpenGL ES 3.2 تقنية التجزئة (Tessellation) لإضافة تفاصيل هندسية إضافية، ومُظلّلات هندسية جديدة، وضغط نسيج ASTC لتقليل استهلاك عرض النطاق الترددي للذاكرة، وأهداف عرض الفاصلة العائمة لعمليات حسابية عالية الدقة، وميزات تصحيح أخطاء جديدة للمطورين. هذه الميزات المتقدمة موجودة بالفعل في مواصفات OpenGL 4 الكاملة للمجموعة. [ 51 ] [ 52 ]
يدعم أنظمة التشغيل Windows وLinux وAndroid (منذ الإصدار 6.0 ممكن، ويتطلب الإصدار 7.0+ Vulkan 1.0 وOpenGL ES 3.2) على الأجهزة المزودة بالأجهزة وبرامج التشغيل المناسبة، بما في ذلك:
- Adreno 420 والإصدارات الأحدث (أندرويد، لينكس (freedreno))
- معمارية AMD GCN (ويندوز، لينكس (Mesa 18.2 مع radeonSI))
- معالج رسومات Intel HD من نوع Skylake وما فوق (Linux) [ 39 ]
- Mali-T760 والإصدارات الأحدث (أندرويد، لينكس)
- سلسلة Nvidia GeForce 400 (Fermi) والإصدارات الأحدث (Windows، Linux) [ 53 ]
- VIRGL: برنامج تشغيل افتراضي للأجهزة الافتراضية في عام 2018 مع Mesa 18.1 (انظر Mesamatrix.net)
- LLVMpipe: برنامج تشغيل في Mesa 20 (Linux)
- Zink: برنامج تشغيل محاكاة Vulkan في Mesa 21.2 (Linux)
الإيقاف التدريجي في منصات أبل
تم إيقاف دعم OpenGL ES (وOpenGL) في أنظمة تشغيل Apple لصالح واجهة برمجة تطبيقات الرسومات Metal الخاصة بها ، ولكنها ظلت تعمل حتى نظام iOS 12 على الأقل . [ 54 ]
المستقبل
لا توجد حاليًا أي خطة لإصدار نسخة أساسية جديدة من OpenGL ES، حيث يُعتقد أن اعتماد Vulkan سيؤدي إلى استبدالها في التطبيقات المدمجة والمحمولة. ويستمر تطوير إضافات OpenGL ES حتى عام 2017. [ 55 ]
التوافق مع OpenGL
تم إنشاء بعض المكتبات لمحاكاة استدعاءات OpenGL باستخدام GL ES:
- تُقدّم شركة Nvidia مكتبة Regal المرخّصة بموجب ترخيص BSD ذي البندين ، والتي بدأها كاس إيفريت. وقد تمّ تحديثها آخر مرة في عام 2016. [ 56 ] تُستخدم Regal، على سبيل المثال، في برنامج NaCl التابع لشركة Google . [ 57 ]
- برنامج GL4ES المرخص بموجب ترخيص MIT يحاكي OpenGL 2.1/1.5 باستخدام GL ES 2.0/1.1. وهو يعتمد على glshim. [ 58 ]
انظر أيضاً
- Direct3D – واجهة برمجة تطبيقات ويندوز لرسومات ثلاثية الأبعاد عالية الأداء، مع دعم أجهزة تسريع الرسومات ثلاثية الأبعاد
- DirectX – واجهة برمجة تطبيقات ويندوز لمعالجة المهام المتعلقة بالرسومات والفيديو
- ميتال – مكتبة رسومات ثلاثية الأبعاد منخفضة المستوى وعالية الأداء لمنصات أبل
- OpenSL ES – واجهة برمجة تطبيقات للصوت على الأنظمة المدمجة، طورتها مجموعة كرونوس
- ANGLE (برنامج) – مكتبة طورتها جوجل لتحويل استدعاءات OpenGL ES إلى استدعاءات DirectX أو Vulkan
- واجهة برمجة تطبيقات الرسومات ثلاثية الأبعاد للأجهزة المحمولة - واجهة برمجة تطبيقات للرسومات ومواصفات تنسيق الملفات لتطوير تطبيقات Java ME
مراجع
- ↑ "شعارات وعلامات تجارية وإرشادات كرونوس" . كرونوس . تم الاطلاع عليه بتاريخ 18 يونيو 2026 .
- ↑ "ما هي إصدارات GLSL التي يمكنني استخدامها في OpenGL ES 2.0؟" . Stack Overflow.
- ↑ بليث، ديفيد. "مواصفات ملف تعريف OpenGL ES Common/Common-Lite - الإصدار 1.0.02 (مع الشرح)" (ملف PDF) . registry.khronos.org . مؤرشف (ملف PDF) من الأصل بتاريخ 22 سبتمبر 2024.
- ↑ "OpenGL ES 1.1+ و ES 2.0" (ملف PDF) . developer.amd.com . مؤتمر مطوري الألعاب. مؤرشف من النسخة الأصلية (ملف PDF) بتاريخ 24 فبراير 2021.
- ↑ منشي، آفتاب؛ ليتش، جون (24 أبريل 2008). "مواصفات ملف تعريف OpenGL ES Common/Common-Lite - الإصدار 1.1.12 (المواصفات الكاملة)" (ملف PDF) . registry.khronos.org . مؤرشف (ملف PDF) من الأصل في 31 ديسمبر 2024.
- ↑ "stack overflow: glGenFramebuffersOES vs glGenFramebuffers؟" . تم الاطلاع عليه بتاريخ 19-04-2022 .
- ↑ "بيانات صحفية من كرونوس - OpenGL ES 2.0" . Khronos.org. 5 مارس 2007. مؤرشف من الأصل بتاريخ 28 ديسمبر 2010. تم الاطلاع عليه بتاريخ 23 ديسمبر 2010 .
- ↑ إدوارد أنجيل، ديف شراينر، رسومات الحاسوب التفاعلية: منهج من أعلى إلى أسفل باستخدام OpenGL القائم على التظليل ، الطبعة السادسة، ص. xxi-xxii، ISBN 978-0-13-254523-5
- ↑ "لغة تظليل OpenGL® ES" (ملف PDF) . Khronos.org . تم الاطلاع عليه بتاريخ 16 فبراير 2013 .
- ↑ "نظام رسومات OpenGL®: مواصفات (الإصدار 4.1 (الملف التعريفي الأساسي)" (PDF) . 25 يوليو 2010.
- ↑ منشي، آفتاب؛ ليتش، جون (2 نوفمبر 2010). "مواصفات ملف تعريف OpenGL ES المشترك - الإصدار 2.0.25 (المواصفات الكاملة)" (ملف PDF) . registry.khronos.org . مؤرشف (ملف PDF) من الأصل في 12 مارس 2025.
- ↑ "OpenGL© ES – Common Profile Specification 2.0.25 (Difference Specification)" (PDF) . 2 نوفمبر 2010.
- 1 2 "دليل برمجة OpenGL ES 3.0" (ملف PDF) . شركة بيرسون للتعليم . تم الاطلاع عليه بتاريخ 18-04-2022 .
- ^ "سجل Khronos OpenGL ES - مجموعة Khronos Group Inc" . Register.khronos.org .
- ↑ "شركة كرونوس تُصدر مواصفات OpenGL ES 3.0 للارتقاء برسومات الأجهزة المحمولة ثلاثية الأبعاد إلى مستوى جديد" . كرونوس. 2012-08-06 . تاريخ الاسترجاع: 2012-08-06 .
- ↑ "WebGL: رسومات ثنائية وثلاثية الأبعاد للويب" . موزيلا . تم الاطلاع عليه بتاريخ 30-06-2023 .
- ↑ "مواصفات WebGL 2.0" . registry.khronos.org .
- ↑ ليتش، جون؛ ليبتشاك، بنج (1 نوفمبر 2019). "OpenGL ES - الإصدار 3.0.6" (ملف PDF) . registry.khronos.org . مؤرشف (ملف PDF) من النسخة الأصلية في 31 يناير 2025.
- ↑ "مواصفات GLSL ES 3.0" (ملف PDF) . كرونوس . تم الاطلاع عليه بتاريخ 30-06-2023 .
- ^ "سجل Khronos OpenGL ES - مجموعة Khronos Group Inc" . Register.khronos.org .
- ↑ "Khronos تُصدر مواصفات OpenGL ES 3.1" . Khronos.org. 2014-03-17 . تاريخ الاسترجاع: 2014-03-17 .
- ↑ ليتش، جون (3 نوفمبر 2016). "OpenGL ES - الإصدار 3.1" (ملف PDF) . registry.khronos.org . مؤرشف (ملف PDF) من الأصل في 22 سبتمبر 2024.
- ^ "سجل Khronos OpenGL ES - مجموعة Khronos Group Inc" . Register.khronos.org .
- ↑ ليتش، جون (5 مايو 2022). "OpenGL ES - الإصدار 3.2" (ملف PDF) . registry.khronos.org . مؤرشف (ملف PDF) من النسخة الأصلية بتاريخ 22 سبتمبر 2024.
- ↑ "لغة تظليل OpenGL ES - الإصدار 3.20.8" (ملف PDF) . registry.khronos.org . 14 أغسطس 2023. مؤرشف (ملف PDF) من الأصل في 24 يناير 2025.
- ↑ "الجيل القادم من OpenGL يصبح Vulkan: تفاصيل إضافية منشورة" . مؤرشف من الأصل في 4 مارس 2015.
- ↑ "منصة أندرويد" . مطورو أندرويد .
- ↑ "ورقة بيانات منتج نظام التشغيل سيمبيان الإصدار 8.0" . 30-03-2008. مؤرشف من الأصل في 30-03-2008 . تم الاطلاع عليه في 30-03-2008 .
- ↑ دويدر، جانيل (9 ديسمبر 2022). "OpenGL ES - تطوير ألعاب سيمبيان" . 25 عامًا من البرمجة . مؤرشف من الأصل في 14 يناير 2023. تم الاطلاع عليه في 14 يناير 2023 .
- ↑ "استخدام OpenGL ES" . منصة تطوير برمجيات QNX (الإصدار 6.5.0) . QNX . تم الاطلاع عليه بتاريخ 8 يناير 2011 .
- ↑ "عرض توضيحي لـ OpenGL ES بصيغة PPT" . مجموعة كرونوس . 21 نوفمبر 2021.
- ↑ "عرض تقديمي حول OpenGL ES/PSGL بصيغة PPT" . سوني . كرونوس. 21 نوفمبر 2021.
- ↑ "مجموعة تطوير البرامج OpenGL ES متوفرة لهاتف نوكيا 6630" . منتديات كرونوس . 22-09-2004 . تاريخ الاطلاع: 14-01-2023 .
- ↑ "الجديد في هذا الإصدار التجريبي" . ملاحظات الإصدار - تطبيق جافا بلاك بيري . ريسيرش إن موشن . مؤرشف من الأصل بتاريخ 2009-12-02 . تم الاطلاع عليه بتاريخ 2009-12-08 .
- ↑ كوه، داميان (29 نوفمبر 2009). "ما يمكن توقعه من هواتف بلاك بيري الذكية" . سي نت آسيا . مؤرشف من الأصل في 13 ديسمبر 2009. تم الاطلاع عليه في 8 ديسمبر 2009 .
- 1 2 "نظرة عامة على PDK" . مركز مطوري HP Palm. مؤرشف من الأصل بتاريخ 2011-01-01 . تم الاطلاع عليه بتاريخ 2010-12-23 .
- ↑ "DMP تعلن عن اعتماد نينتندو لبطاقة PICA 200 المتوافقة مع معيار OpenGL ES 1.1" . 21-06-2010 . تاريخ الاطلاع: 02-06-2013 .
- ↑ "مواصفات نظام أندرويد 2.2" . 1 يوليو 2010. مؤرشف من الأصل بتاريخ 11 أكتوبر 2010.
- 1 2 3 4 "امتدادات وإمكانيات Mesa OpenGL" . people.freedesktop.org .
- 1 2 "امتدادات وإمكانيات Mesa OpenGL" . people.freedesktop.org .
- ↑ "برنامج مايمو - نوكيا > جهاز نوكيا N900 المحمول > المواصفات الفنية" . شركة نوكيا. مؤرشف من الأصل بتاريخ 29 أكتوبر 2009. تم الاطلاع عليه بتاريخ 12 يناير 2010 .
- ↑ "iOS 8 للمطورين" . مطورو Apple.
- ^ "منتجات خرونوس المتوافقة" . 21 نوفمبر 2021.
- ↑ ساج، أنشيل (11 أبريل 2013). "حالة OpenGL ES 3.0: من يملك ماذا؟" . الجانب المشرق للأخبار . مؤرشف من الأصل في 15 يونيو 2013. تم الاطلاع عليه في 22 ديسمبر 2015 .
- ↑ "منتجات متوافقة مع OpenGL ES3.1" . تم الاطلاع عليه بتاريخ 11-08-2014 .
- ↑ "وحدات معالجة الرسومات Adreno™" . كوالكوم . تم الاسترجاع في 11 أغسطس 2014 .
- ↑ "GL ES 3.1 على Adreno 3xx؟" . تم الاطلاع عليه بتاريخ 11-08-2014 .
- ↑ "استكشاف معمارية مالي ميدغارد من ARM" . AnandTech. مؤرشف من الأصل في 5 يوليو 2014. تم الاطلاع عليه بتاريخ 11 أغسطس 2014 .
- ↑ "Vivante Vega Cores for 3D" . Vivante. مؤرشف من الأصل بتاريخ 17-10-2014 . تم الاطلاع عليه بتاريخ 10-12-2014 .
- ↑ "Khronos تُطلق OpenGL ES 3.2 وامتدادات GL جديدة، ولكن بدون Vulkan هذا الأسبوع" . 10 أغسطس 2015. تم الاطلاع عليه في 11 أغسطس 2015 .
- ↑ "OpenGL ES 3.2 وVulkan - كل ما تحتاج لمعرفته" . Android Authority . 15 أغسطس 2015. تاريخ الاسترجاع: 22 ديسمبر 2015 .
- ↑ "حالة واجهة برمجة تطبيقات الرسومات ثلاثية الأبعاد: سيغراف 2015" (ملف PDF) . كرونوس .
ستشحن الصناعة أكثر من 1.7 مليار جهاز في عام 2015.
- ↑ "أصدرت NVIDIA برامج تشغيل جاهزة للألعاب 358.50 للعبة Star Wars Battlefront" . AnandTech. مؤرشف من الأصل في 8 أكتوبر 2015. تم الاطلاع عليه في 7 أكتوبر 2015 .
- ↑ شركة آبل. "ما الجديد في نظام iOS - مطورو آبل" . developer.apple.com . تاريخ الاسترجاع: 7 أغسطس 2018.
ستستمر التطبيقات المبنية باستخدام OpenGL ES في العمل على نظام iOS 12، ولكن تم إيقاف دعم OpenGL ES في نظام iOS 13.
- ↑ كرونوس. "فولكان، أوبن جي إل، وأوبن جي إل إي إس" (ملف PDF) . www.khronos.org . تاريخ الاسترجاع: 24 أبريل 2020 .
- ↑ "p3/regal: Regal for OpenGL" . GitHub. 18 أكتوبر 2021.
- ↑ ماكوتشان، جون (7 سبتمبر 2012). "نظرة معمقة: إدخال Regal OpenGL إلى Native Client" . غاماسوترا.
- ↑ "GL4ES - برنامج تشغيل OpenGL لأجهزة GLES" . GitHub .
للمزيد من القراءة
- جينسبيرغ، دان؛ بورنومو، بوديريجانتو؛ شرينر، ديف. مونشي، عفتاب (2014). دليل برمجة برنامج OpenGL ES 3.0 . أديسون ويسلي بروفيشنال. رقم ISBN 978-0-321-93388-1.
- بولي، كاري؛ ارنيو، تومي؛ ميتينين، فيل؛ رويميلا، كيمو وفارالا، جاني (2007). رسومات ثلاثية الأبعاد للجوال مع OpenGL ES وM3G . مورجان كوفمان. رقم ISBN 978-0-12-373727-4.
- أستل، ديف ودورنيل، ديفيد (2004). تطوير الألعاب باستخدام OpenGL ES . كورس تكنولوجي بي تي آر. رقم ISBN 1-59200-370-2.
- بولي، كاري؛ آرنيو، تومي؛ رويميلا، كيمو؛ وفارالا، جاني (2005). "تصميم واجهات برمجة الرسومات للأجهزة المحمولة". مجلة IEEE لرسومات الحاسوب وتطبيقاتها . 25 (6). IEEE CG&A 2005: 66-75 . Bibcode : 2005ICGA...25f..66P . doi : 10.1109/MCG.2005.129 . PMID: 16315479. S2CID : 8177273 .
روابط خارجية
- الموقع الرسمي

- تتبع الأخطاء العامة
- الشركات المتوافقة مع OpenGL ES
- المنتديات العامة
- قائمة الأجهزة المتوافقة مع OpenGL ES
- الصفحة الرئيسية لـ OpenGL
- محاكي OpenGL ES 1.1 و 2.0 من ARM Link غير قابل للاستخدام. لا تنقر.
- محاكي OpenGL ES 3.0 من ARM Link غير قابل للاستخدام. لا تنقر.
- واجهات برمجة تطبيقات الرسومات ثلاثية الأبعاد
- OpenGL
- الواقع الافتراضي
- الواقع المعزز
