آموزش OpenGL قسمت اول

معرفی و آشانایی با نحوه نصب OpenGL

فن آوری OpenGL را می توان یک واسط نرم افزاری در ارتباط با سخت افزار گرافیکی نامید. ماهیت اصلی آن را کتابخانه های مدل سازی و گرافیک سه بعدی تشکیل می دهند که در ابتدا برای کار با سخت افزارهای گرافیکی SGI توسعه داده شدند و سرعت و قابلیت بالایی دارند. توجه داشته باشید که OpenGL یک API است نه یک زبان برنامه نویسی و قابلیت حمل بر روی پلت فرم های مختلف را دارا می باشد.

واسط OpenGL بر روی سیستم های Linux، Unix، Windows و MacOS قابل پیاده سازی می باشد. هیچ Graphic API دیگری وجود ندارد که به این اندازه Portable باشد. همچنین با اکثر سرویس دهنده های محیطهای گرافیکی از قبیل Win32، MacOS، X-window system سازگار می باشد. توابع OpenGL را می توان در زبان های برنامه نویسی متنوعی از قبیل Ada، c، c++، Fortran، Paython، Java و ... به کار گرفت.

ابتدایی ترین کتابخانه ای که برای OpenGL نوشته شد AUX نام داشت. که در سیستم های Unix مورد استفاده قرار می گرفت اما در محیط ویندوز اصلاً کارایی نداشت و با مشکلات متعددی روبرو می شد. از این جهت هیچ گاه برای نوشتن یک برنامه کاربردی مورد استفاده قرار نگرفت و تنها جنبه آموزشی داشت. اما بعدها توسط آقای Mark Kilgard در شرکت SGI کتابخانه ای به نام GLUT تولید شد که امروزه هم بسیاری از برنامه ها با استفاده از آن تولید می شوند. کتابخانه GLUT را می توان به صورت رایگان تهیه نمود. پس از مدتی تعدادی از توابع مورد نیاز که امکان تبادل با محیط سیستم عامل را فراهم کنند مانند فعال یا غیرفعال کردن یک پنجره، به آن اضافه شد.

پیاده سازی OpenGL

واسط OpenGL را به دو روش می توان به کار برد.

پیاده سازی نرم افزاری

در شکل زیر می توانید موقعیت و نحوه اجرای برنامه هایی که از OpenGL به عنوان سرویس دهنده نرم افزاری استفاده می کنند مشاهده فرمایید. همانطور که می بینید برنامه های کاربردی درخواست های خود را برای OpenGL ارسال می کنند و OpenGL درخواست مربوطه را پردازش کرده و توسط Software Rasterizer یک Image از روی مدل سه بعدی برای GDI ارسال می کند. قسمت GDI در واقع واسطی است که سیستم عامل در اختیار برنامه ها قرار می دهد تا از این طریق با سخت افزار گرافیکی ارتباط بر قرار کنند که در ویندوز به راه انداز سخت افزار گرافیکی GDI می گویند.

پیاده سازی سخت افزاری

در این روش ارتباط بین OpenGL و سخت افزار بدون واسطه و مستقیم می باشد.

به این روش پیاده سازی OpenGL، accelerated implementation می گویند و این نام گذاری به علت بهبود سرعت عملکرد آن می باشد.

همانطور که گفته شد OpenGL یک زبان برنامه نویسی نیست بلکه یک API می باشد که توابع گوناگونی را در اختیار برنامه نویس قرار می دهد. در سیتم عامل ویندوز به طور پیش فرض فایل های glu32.dll و opengl32.dll در پوشه system32 قرار دارند و این توابع را در اختیار برنامه هایی که از فن آوری OpenGL استفاده می کنند قرار می دهد.

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

نصب Glut

از آنجا که من از کامپایلر MinGW برای کامپایل برنامه ها استفاده می کنم در این جا هم روش نصب glut برای MinGW را توضیح می دهم. روش کار آنقدر ساده است که تقریباً می توان گفت نیازی به توضیح ندارد. کافیست مراحل زیر را به ترتیب انجام دهید:

  1. Glut را از مسیر زیر دانلود کنید.

http://www.xmission.com/~nate/glut.html

  1. آرشیو دریافتی را باز کرده و فایل های زیر را در مسیرهای گفته شده کپی کنید.
    • فایل glut.h را در دایرکتوری MinGW\include\GL کپی نمایید.
    • فایل glut32.lib را در دایرکتوری که فایل های برنامه شما قرار دارند و برنامه را در آن مسیر کامپایل می کنید قرار دهید.
    • فایل glut32.dll را نیز کنار فایل اجرایی که ایجا خواهید کرد، قرار دهید.
  2. توجه داشته باشید که در ابتدای همه برنامه های خود قبل از هر چیز باید فایل windows.h را include کنید. و بعد از آن فایل glut32.h را.
  3. برای کامپایل کردن برنامه های خود از دستور زیر استفاده کنید.

g++ programname glut32.lib -lopengl32 -lglu32

برای کسب اطلاعات بیشتر در مورد این دستور به مستندات MinGW مراجعه کنید. البته می توان با استفاده از برنامه هایی مانند qmake پروژه ای ایجاد کرده و کتابخانه های مذکور را در makfile فراخوان کنید. تا بتوانید براحتی با اجرای برنامه make فایل ها را کامپایل نمایید.