مكتبة الرسوميات المفتوحة: الفرق بين النسختين

ط
[نسخة منشورة][نسخة منشورة]
ط (بوت: إضافة {{تصنيف كومنز|OpenGL}})
|آخر إصدار = 4.4
}}
'''مكتبة الرسوميات المفتوحة''' أو '''أوبن جي إل''' ('''Open''' '''G'''raphics '''L'''ibrary)
عبارة عن [[واجهة برمجة التطبيقات]] [[متعدد المنصات|مستقلة المنصة]] (تعمل في عدة بيئات وعدة أنظمة تشغيل) متوافقة مع عدة لغات مصممة لإنتاج رسوميات الحاسب [[رسوميات الحاسب ثنائية الأبعاد|ثنائية الأبعاد]] و[[رسوميات الحاسب ثلاثية الأبعاد|ثلاثية الأبعاد]]. تحوي الواجهة أكثر من 250 استدعاء دالي مختلف يمكن استخدامها لرسم مناظر ثلاثية الأبعاد معقدة باستخدام مكوّنات هندسيّة بسيطة كنقط والخطوط [[مضلع|والمضلّعات]]. في عالم رسومات الحاسب تعرف هذه المكوّنات باسم ''البدائيَات''. تم تطوير الأوبن جي إل في البدء من قبل شركة [[سيليكون غرافيكس]] ثم حققت شيوعا وانتشارا كبيرين في [[ألعاب الفيديو والحواسيب|ألعاب الفيديو]] حيث تتنافس مع [[دايركت ثري دي]] على منصات [[مايكروسوفت ويندوز]]. يستخدم أوبن جي إل بشكل واسع في تطبيفات [[التصميم بمساعدة الحاسوب|الكاد]] و[[واقع افتراضي|الواقع الافتراضي]]، والتمثيل المرئي العلمي والتمثيل المرئي للمعلومات، و[[محاكاة الطيران]] وفي تطبقيات متنوّعة أخرى لها صلة بميدان [[رسومات الحاسوب]].
 
== تصميم المكتبة ==
[[ملف:Pipeline OpenGL (ar).png|يسار|تصغير|520بك|هيكلة ماسورة الرسومات الخاصّة بالمكتبة]]
تم تصميم المكتبة على أساس محورين آساسييّن هما:
 
* توفير واجهة موحّدة وسهلة للوصول إلى قدرات المكوّنات الصلبة في الرسومات وخاصّة الثلاثيّة الأبعاد منها.
* إخفاء الاختلافات المتواجدة بين شتّى أنواع المنصّات الصلبة عبر إجبار كلّ الإنجازات المتوافقة على دعم جميع الميّزات المعرّفة في المواصفات.
ثمّ نحدّد زاوية الرؤية وكيفيّة الإسقاط داخل الماسورة:
<source lang="c">
glMatrixMode(GL_PROJECTION); /* أمر إعلام بوجوب تغيير مصفوفة الإسقاط */
glLoadIdentity(); /* إدخال مصفوصة، هذا الأمر يرسل ببساطة مصفوفة وحدة */
glOrtho(.0, 1.0,.0, 1.0, -1.0, 1.0); /* تحديد معيّن الإسقاط */
</source>
الآن بعد مسح الشاشة وتحديد أوامر الإسقاط يمكننا البدء في الرسم على المعيّن الجديد. سنقوم برسم بدائيّة تتمثّل في مربّع. للقيام بهذا نحتاج لإرسال أوامر تحدّد إحداثيات النقط الأربعة المشكّلة للمربّع:
<source lang="c">
glColor3f(1.0f, 1.0f, 1.0f); /* تحديد لون الرسم، في هذه الحالة أبيض */
 
glBegin(GL_POLYGON); /* تحديد نوع البدائيّة التّي نريد رسمها، هنا حدّدنا النوع كمضلّع */
glVertex3f(0.25f, 0.25f,.0f); /* إحداثيّات النقطة الأولى للمربّع */
glVertex3f(0.75f, 0.25f,.0f); /* إحداثيّات النقطة الثانية للمربّع */
glVertex3f(0.75f, 0.75f,.0f); /* إحداثيّات النقطة الثالثة للمربّع */
glVertex3f(0.25f, 0.75f,.0f); /* إحداثيّات النقطة الرابعة للمربّع */
glEnd(); /* إمر إخطار بنهاية سرد الإحداثيّات للمضلّع المطلوب */
 
glFlush(); /* إمر بتنفيذ كلّ الأوامر والرسم على الشاشة */
</source>
 
{{تصنيف كومنز|OpenGL}}
 
[[تصنيف:برمجيات متعددة المنصات1992]]
[[تصنيف:برمجيات متعددة المنصات]]
[[تصنيف:تطوير ألعاب الفيديو]]
[[تصنيف:واقع افتراضي]]
[[تصنيف:رسوميات الحاسوب]]
[[تصنيف:برمجيات متعددة المنصات]]
[[تصنيف:واجهات برمجة التطبيقات]]
[[تصنيف:رسوميات الحاسوب ثلاثية الأبعاد]]
[[تصنيف:واجهات برمجة التطبيقات]]
[[تصنيف:واقع افتراضي]]
2٬140٬655

تعديل