اوپنجیال
اوپنجیال (به انگلیسی: OpenGL) یک رابط برنامهنویسی نرمافزار چندسکویی برای رندرینگ دوبعدی و سهبعدی است. این رابط برنامهنویسی معمولاً برای تعامل با پردازشگر گرافیکی و بهدستآوردن رندرینگ شتابیافته توسط سختافزار استفاده میشود.[2]
نویسنده(های) اصلی | Silicon Graphics |
---|---|
توسعهدهنده(ها) | Khronos Group |
انتشار ابتدایی | ژانویه ۱۹۹۲ |
انتشار پایدار | ۴٫۴
۲۲ ژوئیه ۲۰۱۳ |
سیستمعامل | چندسکویی |
بنسازه رایانش | چندسکویی |
گونه | رابط برنامهنویسی نرمافزار |
پروانه | مختلف[1] |
وبگاه |
اپنجیال مخفف Open Graphic Library (کتابخانهٔ گرافیکی باز) است ولی اپنجیال خود به هیچوجه یک کتابخانهٔ نرمافزاری نیست و نرمافزار متنباز نیز به حساب نمیآید (چون حاوی هیچ کدی نیست)؛ اوپنجیال، تنها استانداردی باز برای توصیف یک رابط گرافیکی است که توسط شرکتهای متعددی توسعه دادهشده و میتواند توسط درایورهای گرافیک، سیستمعاملها و نرمافزارهای مختلف پیادهسازی شود.[3]
اوپنجیال توسط شرکت سیلیکون گرافیکز از سال ۱۹۹۱ توسعه یافت و در سال ۱۹۹۲ منتشر شد و بهصورت گسترده در طراحی به کمک رایانه، واقعیت مجازی، مصورسازی، بصریسازی اطلاعات، شبیهسازهای پرواز و بازیهای ویدئویی بهکار گرفتهشد. اوپنجیال توسط سازمان کنسرسیوم ناسودبر تکنولوژی Khronos Group مدیریت میشود.[2]
Khronos Group آخرین ورژن اوپن جی ال را در سال ۲۰۱۷ به مناسبت ۲۵ سالگی اوپن جی ال منتشر کرد[4] و در حال حاضر ولکان به عنوان نسل جدید اوپن جی ال در حال توسعه میباشد.
طراحی
اوپنجیال یک رابط برنامهنویسی نرمافزار انتزاعی را برای گرافیک دوبعدی و سهبعدی توصیف میکند. اگرچه که ممکناست این رابط بهصورت کاملاً نرمافزاری پیادهسازی شود، اوپنجیال طراحیشده که بهصورت تقریباً کامل یا کاملاً در سختافزاری پیادهسازی شود.[2]
این رابط برنامهنویسی بهعنوان تعدادی تابع که ممکن است توسط برنامهٔ مشتری صدا زده شوند بهعلاوهٔ تعدادی ثابت عددی (برای نمونه GL_TEXTURE_2D که متناظر با عدد دهدهی ۳۵۵۳ است) تعریف میشود. اگرچه تعریف توابع ظاهراً شبیه سی هستند ولی آنها مستقل از زبان هستند.[2]
بهعلاوهٔ مستقل از زبانبودن، اوپنجیال مستقل از سکو است. اوپنجیال هیچ چیزی دربارهٔ گرفتن و مدیریت یک محیط OpenGL نمیگوید و آن را بهعنوان جزئیات سامانه پنجرهای رها میکند. به همین دلیل، اوپنجیال بهطور خالص به رندرینگ توجه میکند و هیچ رابطی را دربارهٔ ورودی، صدا و پنجره فراهم نمیکند.[2]
توسعه
اوپنجیال یک رابط برنامهنویسی در حال تحول است. نسخههای جدید اوپنجیال بهطور منظم توسط Khronos Group منتشر میشوند که هر یک این رابط برنامهنویسی را برای حمایت از قابلیت جدید مختلفی گسترش میدهد.[2]
بهعلاوهٔ قابلیتهای جدیدی که توسط هستهٔ رابط برنامهنویسی مورد نیاز هستند، فروشندگان واحد پردازش گرافیکی ممکن است قابلیتهای جدید را به شکل extensions (افزونه) ارائه دهند. افزونهها ممکن است ویژگیها یا ثابتهای جدیدی معرفی کنند یا ممکن است محدودیتهایی توابع فعلی اوپنجیال را کاهش یا حذف کنند. فروشندگان میتوانند از افزونهها برای در معرض گذاشتن رابطهای برنامهنویسی سفارشی بدون نیاز به حمایت از طرف سایر فروشندگان استفاده کنند که بهمقدار زیادی انعطافپذیری اوپنجیال را افزایش میدهد. همهٔ افزونهها توسط فهرست اوپنحیال جمعآوری و تعریف میشوند.[2]
هر افزونه با توجه به شرکتی که آن را توسعه داده با نامی کوتاه پیوند خورده است. برای نمونه شناسهٔ انویدیا NV است که قسمتی از نام افزونه GL_NV_half_float
، ثابت GL_HALF_FLOAT_NV
و تابع glVertex2hNV()
است. اگر چند فروشنده بر سر قابلیتی مشابه با رابط برنامهنویسی بهتوافق برسند این افزونهٔ مشترک ممکن است با شناسهٔ EXT منتشر گردد. در این موارد ممکن است برد بازبینی معماری Khronos Group تأیید صریح خود را نیز بدهند و شناسهٔ ARB استفاده میشود.[2]
ویژگیهای جدید معرفیشده توسط هر نسخه معمولاً با ترکیب قابلیتهای افزونههای گسترده پیادهسازیشدهٔ به خصوص افزونههای از نوع ARB و EXT هستند.[2]
کتابخانههای وابسته
نسخههای اولیه اوپنجیال با کتابخانهٔ همراهی که GLU، کتابخانهٔ ابزار اوپنجیال خوانده میشد عرضه میشد. جیالیو قابلیتهای ساده و مفیدی از قبیل Mipmapسازی و موزاییککاری که بعید بهنظر میرسید در سختافزارهای آن زمان حمایت شوند را فراهم میکرد. مشخصات GLU آخرین بار در ۱۹۹۸ بهروز شد و نسخههای اخیر به قابلیتهایی که استفاده از آن توسط اپنجیال ۳٫۱ با انتشار اپنجیال در سال ۲۰۰۹ منسوخ اعلامشده وابسته است.[2]
با در نظرگرفتن اینکه ایجاد زمینه (به انگلیسی: Context) فرایند پیچیدهای است و همچنین بین سیستمعاملهای مختلف متفاوت است، ایجاد خودکار زمینهٔ اوپنجیال ویژگی مشترکی بین کتابخانههای توسعهٔ بازی و رابط کاربری است از جمله اسدیال، Allegro, SFML, FLTK و کیوت.[2]
چند کتابخانه فقط بهمنطور پنجره با توانایی اپنجیال ایجاد شدهاست. اولین نمونهٔ چنین کتابخانههایی جیالیوتی (به انگلیسی: GLUT) (که بعداً توسط فریجیالیوتی (به انگلیسی: freeglut) جایگزین شد) بود. جیالافدبلیو (به انگلیسی: GLFW) نیز جایگزین جدیدتری است.[5]
نگارخانه
- بازتاب ایجادشده توسط سایهزنهای ورتکس
- بافت پویانماییشده با استفاده از اشیاء فریمبافر و برنامههای افزونهٔ سایهزنهای ورتکس/فرگمنت
- هنر رویهای با استفاده از فهرستهای نمایشگر
منابع
- "Products: Software: OpenGL: Licensing and Logos". SGI. Archived from the original on 1 November 2012. Retrieved November 7, 2012.
- Wikipedia contributors, "OpenGL," Wikipedia, The Free Encyclopedia, http://en.wikipedia.org/w/index.php?title=OpenGL&oldid=607039069 (accessed May 23, 2014).
- «پاسخ پرسشهای متداول». بایگانیشده از اصلی در ۲۰ مه ۲۰۱۴. دریافتشده در ۲۴ مه ۲۰۱۴.
- "Khronos Releases OpenGL 4.6 with SPIR-V Support". The Khronos Group. 2017-07-31. Retrieved 2020-02-21.
- "A list of GLUT alternatives, maintained by". Opengl.org. Retrieved 2013-05-02.