تبلیغات

OpenGL چیست و GLUT چیست؟

openGL چیست و GLUT چیست؟

OpenGL مخفف عبارت Open Graphic Library است و همان طور که از نامش پیداست یک کتابخانه جهت دستیابی ساده به سخت افزار گرافیکی شماست.برای کاربران عادی نامOpenGL با نام بازی های سه بعدی گره خورده است. قبل از نوشتن OpenGL برنامه نویسان گرافیکی مجبور بودند که مستقیما برای سخت افزارهای گرافیکی کار کنند و برای سخت افزارها برنامه های اختصاصی بنویسند. اما با گسترش روز افزون تکنولوژی و سخت افزارهای مختلف این رویه ی برنامه نویسی کاربرد خود را از دست داد.
چرا که برنامه نویسان برای انتقال یک برنامه ی ساده از یک سخت افزار به سخت افزار دیگر مجبور بودند ده ها ( بلکه هزاران ) خط کد را ویرایش و اصلاح کنند تا با سخت افزار موجود جواب بگیرند.

حتی بعد از برطرف شدن مشکل با سیستم عامل های نسل جدید ، مشکل خود را به گونه ای دیگر نشان داد : « عدم توانایی حمل در سیستم های عامل مختلف ». بنابراین نیاز به وجود یک API واحد که بتواند قدرتمند ، قابل انتقال و سطح پایین باشد به شدت احساس می شود.
OpenGL این نیازها را به طور کامل برطرف کرده و خواهد کرد.

خب یه تعریفی کوچیکی از OpenGL کردیم و نیازی نمی بینم برم کل تاریخچشو زیر و رو کنم و چیزای کلی رو خدمتتون می گم.

تاریخچه ای بر OpenGL

OpenGL در دهه 1990 توسط شرکت Silicon Grapihcs متولد شد. اما کار استاندارد سازی و تکمیل آن توسط گروه ARB (OpenGL Architecture Review Board) انجام شد. این گروه متشکل از شرکت های بزرگی همچون مایکروسافت ،3DLabs ،SGI،ATI،Intel،IBM،Sun،NVIDIA،Dell و غیره بودند که البته مایکروسافت جهت تولید محصول انحصاری خود ( یعنی DirectX ) از سال 2003 این گروه را ترک کرد. نسخه ی اول OpenGL توسط شرکت SGI در سال 1992 منتشر شد. نسخه ی دوم آن نیز توسط شرکت 3DLabs توسعه داده شد. هم اکنون OpenGL در نسخه ی 4.5 به سر می برد.

هدف اصلی توسعه OpenGL

OpenGL در اصل برای دو هدف اصلی توسعه داده شده و می شود:

  1. پنهان کردن پیچیدگی کار با سخت افزارهای مختلف گرافیکی با یک رابط سطح پایین
  2. ساده کردن کارهای گرافیکی خصوصا سه بعدی با ایجاد یک رابط استاندارد واحد

کتابخانه های مرتبط با OpenGL

همان طور که ذکر شد ، OpenGL مستقل از سکو است. بنابراین کارهایی که اختصاص به سکوی میزبان دارد را به طور مستقیم پشتیبانی نمی کند. از جمله ی این کارها می توان به ایجاد و کنترل پنجره ها ، کنترل ورودی و خروجی ، ایجاد اشیای آماده ( مانند کره ، مخروط و … ) ، کنترل صداها و سیگنال های دیجیتال و ارتباط با شبکه را نام برد. دلیل پشتیبانی نکردن این موارد ، وابسته بودن آن ها به سیستم عامل و سکوی میزبان است که تفاوت قابل ملاحظه ای با هم دارند. بنابراین OpenGL این کارها را به کتابخانه های مرتبط واگذار کرده است. این کتابخانه ها قابلیت انجام تمامی موارد ذکر شده را دارند.

این کتابخانه ها بر دو نوع اند:

  1. کتابخانه های مستقل از سکو
  2. کتابخانه های وابسته به سکو

کتابخانه های مستقل از سکو همانند OpenGL قابلیت انتقال به هر سکویی که OpenGL به آن پورت شده باشد را دارند و دیگر نیازی به تغییر کدهایتان در آن ها ندارید. اما کتابخانه های وابسته به سکو در سیستم عامل های خاصی اجرا می شوند و در دیگر سیستم عامل ها کارایی ندارند. ( نیاز به تغییر عمده ی کد وجود دارد ) از جمله ی کتابخانه های مستقل از سکو می توان دو کتابخانه GLUT و SDL را نام برد که در این مقاله ها و آموزش ها بر روی GLUT تمرکز خواهیم کرد.

از جمله ی کتابخانه های وابسته به سکو می توان به WGL برای ویندوز ، CGL برای Mac OS X و GLX برای لینوکس اشاره کرد. البته لازم به ذکر است این کتابخانه ها تنها استفاده از سیستم Windowing را فراهم می کنند و دیگر قابلیت ها مثل کنترل ورودی و خروجی یا صدا را پشتیبانی نمی کنند و برای اضافه کردن این قابلیت ها بایستی از زبان برنامه نویسی مورد استفاده و یا ویژگی های سیستم عامل خود اتفاده کنید. پس ملاحظه می فرمایید که استفاده از کتابخانه های مستقل از سکو ضمن اینکه وابستگی به میزبان ندارند ، همگی موارد نیاز برای نوشتن یک بازی رایانه ای را برایتان فراهم می آورند.

کتابخانه ی GLUT

در واقع جعبه ابزار OpenGL است. این کتابخانه تکمیل کننده ی کتابخانه ی GLU (OpenGL Utility Library) است که توابعی را ارائه می دهد که یک سطح بالاتر از سطح توابع اصلی OpenGL هستند. کتابخانه ی GLU معمولا به همراه OpenGL

توزیع می شود چرا که کارهای اصلی که با OpenGL می توان انجام داد از قبیل : تبدیلت مختصات ، ایجاد texture ها ، ایجاد چهارضلعی ها ، تولید خطاهای OpenGL و غیره را شامل می شود. و در واقع برنامه نویسی OpenGL بدون GLU
کار بسیار سخت و طاقت فرسایی خواهد بود. حال کاری که کتابخانه ی GLUT کسرده است (OpenGL Utility Toolkit) یک سطح بالتر از GLU را ارائه داده است. یعنی کار با اجزای سیستم عامل میزبان. کارهایی از قبیل کنترل پنجره ها ، کنترل ورودی و … را می توان با این کتابخانه انجام داد. سه کتابخانه ی OpenGL، GLU و GLUT یک پکیج کامل و هماهنگ را جهت ایجاد برنامه های گرافیکی بسیار قدرتمند فراهم می سازند.

تبلیغات
0
کانال تلگرام فول کده
تبلیغات

درباره نویسنده

هادی اکبرزاده

[ مدیر فول کده ]

علاقه‌مند به اشتراک گذاری اطلاعات در هر زمینه‌ای / برنامه‌نویس و دانشجوی ارشد رشته شبیه‌ساز هوشمند / همچنین در حال نوشتن یه رمان فانتزی (اگه خدا بخواد و تموم شه 😂)

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

نظرات ثبت شده بدون دیدگاه