آموزش برنامه نویسی Opengl در ++Virtual C
در این مقاله قصد داریم به آموزش برنامه نویسی Opengl در ++Virtual C بپردازیم. OpenGL مخفف کلمات Open source Graphic Library است و یک زبان برنامه برنامه نویسی نیست بلکه یک کتابخانه متن باز است که می توان از آن در زبان های برنامه نویسی استفاده کرد. در واقع توابع کتابخانه ای متنوعی در OpenGL وجود دارد که می توان از آن در هر زبان برنامه نویسی استفاده کرد. در این آموزش هدف ما استفاده از این کتابخانه در ++Virtual C است. پس با ادامه آموزش با ما همراه باشید.
مقدمه
در ابتدا با نام OpenGL شروع می کنیم که همانطور که گفته شد مخفف Open source Graphic Library است. حتماً با نرم افزار های متن باز یا Open Source آشنا هستید. این نرم افزار ها به صورت رایگان در اختیار عموم قرار می گیرند و تهیه کننده گان آنها سورس اصلی برنامه را بیشتر به منظور عیب یابی و کاهش خطا ها و احتمالی برنامه در اختیار برنامه نویسان قرار می دهند تا برنامه نویسان و علاقمندان بتوانند به راحتی کد آن برنامه را ویرایش کنند.
OpenGL جزء نرم افزار متن باز به شمار می رود و graphic library یا همان کتابخانه گرافیکی به مجموعه کتابخانه ها یا کامپوننت های گفته می شود که برای استفاده از دستورات مخصوص گرافیکی تهیه شده است و با اضافه کردن بوسیله include از آن ها در برنامه اصلی استفاده می کنیم.
کتابخانه ها یا همان فایل های با پسوند lib که مخفف library می باشند به منظور آسان تر شدن کار برنامه نویسان در موقع برنامه نویسی ایجاد و تهیه می شوند، به این صورت که مثلاً برنامه نویسی داخل برنامه های خود از تابع خاصی چندین بار به صورت متوالی استفاده می کند، خوب نوشتن این تابع خاص به این تعداد در کد اصلی برنامه حجم فایل نهایی را بالا برده و البته وقت برنامه نویس را هم خواهد گرفت، اینجاست که کتابخانه ها یا lib ها وارد عمل می شوند و تابع خاص را داخل خود قرار می دهند تا موقع نیاز به تابع از آن استفاده شود.
پس می توان نتیجه گرفت OpenGL یک زبان برنامه نویسی نیست بلکه یک سری کتابخانه از پیش تعریف شده می باشد که کار این کتابخانه ارتباط راحت تر با بخش سخت افزاری گرافیک سیستم می باشد. برای اینکه بتوانیم با سخت افزار های موجود در سیستم خود مثل کارت شبکه ، کارت گرافیک، … به صورت درست و صحیح ارتباط برقرار کنیم، احتیاج به رابط هایی داریم که بتوانند این کار را به درستی انجام دهند. این کار توسط API ها انجام می شود. API ها رابط های نرم افزاری هستند که زبان سیستم ( زبان ماشین ) و چگونگی ارتباط با سخت افزار را می دانند.
تاریخچه OpenGl
برای آموزش برنامه نویسی Opengl بهتر است تاریخچه ای در مورد اوپن جی ال بدانیم. سازنده OpenGL یا بهتر بگوییم توسعه دهنده و بهینه کننده آن شرکت Graphics Silicon است. خود OpenGL توسعه یافته کتابخانه دو بعدی IRISGL که آن هم محصول شرکت SGL بود، می باشد . شرکت های دیگری نیز به توسعه این محصول متن باز کمک کرده اند از جمله شرکت Labs3 D که تکنیک و قابلیت سایه زنی را به OpenGL اضافه نمود.
در سال های اخیر کتابخانه های OpenAL و OpenIL نیز به موازات OpenGL در حال پیشروی و گسترش هستند که اولی برای کنترل و مدیریت سخت افزار های صوتی و ایجاد صدا های سه بعدی و دومی برای مدیریت و کنترل دستگاه های ورودی ها ایجاد شده اند.
انواع گرافیک کامپیوتری
قبل از برنامه نویسی Opengl در ++Virtual C بایستی اطلاعاتی در مورد انواع گرافیک کامپیوتری داشته باشید. به طور کلی دو نوع گرافیک کامپیوتری وجود دارد: نوع اول گرافیک رستری Raster است که به گرافیک Bitmap نیز مشهور است. البته گاهی اوقات به گرافیک رستری گرافیک پیکسلی نیز می گویند و نوع دوم آن گرافیک وکتور Vector یا برداری می باشد. که در ادامه به تشریح هر کدام برای برنامه نویسی openGl می پردازیم.
1- گرافیک پیکسلی یا رستری
این نوع گرافیک از خانه های پیکسلی که دارای درجه مشخصی از یک رنگ می باشند تشکیل شده است و وقتی این پیکسل ها در کنار یکدیگر با درجه رنگهایی مختلف از هم، قرار میگیرند، تصاویر را تشکیل می دهند. در گرافیک پیکسلی به دلیل اینکه شما با رنگ پیکسل ها سرو کار دارید، قادر به ویرایش، حذف یا ایجاد تصویر یا عکس نیستید. تنها می توانید عکس یا تصاویر دیجیتال را توسط دسترسی به پیکسلهاس رنگی آن، ویرایش نمایید.
آنچه در گرافیک رستری اهمیت دارد، تعداد پیکسل های رنگی در اینچ میباشد، زیرا این تعداد، کیفیت رنگی و وضوع تصویری عکس دیجیتال را مشخص می کند. به تعداد پیکسل های رنگی در اینچ، رزولوشن می گویند و مقدار رزولوشن، همان مقدار پیکسل ها را در واحد اینچ مشخص می کند که اصطلاحاً به آن واحد dpi می گویند (Dot Per Inch).
همین dpi است که باعث می شود وقتی شما یک تصویر رستری را بزرگ نمایی می کنید، کیفیت تصویر پایین تر می آید. زیرا هرچه هم که آنرا بزرگ تر کنید نمی توانید رزولوشن یا تعداد پیکسل های آن را در واحد اینچ افزایش دهید. کیفیت این تصاویر با سایز ارتباط مستقیم دارد.
2- گرافیک وکتور یا برداری
این نوع گرافیک، گرافیکی رایانه ای است که با فرمولهای ریاضی سر و کار دارد. از خط ها، منحنی ها و اشکالی که دارای بعد و مختصات ریاضی می باشند و مکان آنها با X و Y تعریف می گردد. دارای طول و عرض ریاضی می باشند و رزولوشن آنها با تغییر سایز، تغییر نمی یابد. بنابراین کیفیت تصاویر در هر سایزی یکسان می ماند و این کار از طریق محاسبات ریاضی انجام می شود. این گرافیک یکی از بهترین و پرکاربردترین انواع گرافیک کامپیوتری است، برای کار تصویر سازی استفاده می شود و طراحی آرم ها و گاهی تصویر سازی کتاب های کودک و … توسط برنامه های وکتوری انجام می شود.
قوانین برنامه نویسی OpenGL
- دستورات OpenGL با پیشوند gl شروع می شوند و با یک حرف بزرگ ادامه می یابند مانند دستورهای ()glBegin و ( )glutDisplayFunc که با gl شروع شده و با یک حرف بزرگ ادامه پیدا می کنند.
- ثابت ها با پیشوند _GL شروع می شود و تمام حروف بعد از آن حروف بزرگ است مانند GL_COLOR_BUFFER_BIT
- بعضی از دستورات نیز با یک عدد و چندین حرف در انتها براd یادآورd تعداد و نوع آرگومان هاd ورود خاتمه می یابند .براs مثال در دستور ()glVertex3fv عدد 3 به معنای وجود 3 آرگومان ورودی و f به معنای اعشاری بودن ورودی ها و v به معنای برداری بودن وردی ها است.
انواع داده ها در برنامه نویسی OpenGL
پسوند | نوع داده | معادل نوع داده در زبان C | تعریف نوع در OpenGl |
---|---|---|---|
b | 8 بیت integer | singed char | Glbyte |
s | 16 بیت integer | short | Glshort |
i | 32 بیت integer | int or long | Glint, Glsizei |
f | 32 بیت ممیز شناور | float | Glfloat, Glclampf |
d | 64 بیت ممیز شناور | double | Gldouble, Glclampd |
ub | 8 بیت integer بدون علامت | unsigned char | Glubyte, Glboolean |
us | 16 بیت integer بدون علامت | unsigned short | Glushort |
ui | 32 بیت integer بدون علامت | unsigned int or long | Gluint,glenum,Glbitfleld |
قالب کلی برنامه نویسی OpenGl
#include <GL/glut.h> . . . تعریف متغییرها و ثوابت Void init() { مقداردهی اولیه } تعریف سایر توابع در صورت نیاز// int main(int argc,char **argv) { فراخوانی توابع رسم و ارسال پارامتر ورودی به توابع// Init(); glutMainLoop(); return 0; }
آموزش تصویری نصب OpenGL در ویژوال استادیو
پروژه های جذاب و آماده OpenGL
- این فایل بهصورت تست شده و رایگان است و لینک دانلود در اختیار شما قرار داده میشود.
- در صورتی که موفق به دانلود فایل نشدید میتوانید از طریق تماس با ما اطلاعرسانی کنید.
پسورد فایل : گزارش خرابی لینک
درباره امین جلیل زاده رزین
پایه گذار و موسس وب سایت آموزشی پی استور، مدرس دانشگاه فنی و حرفه ای، برنامه نویس و تحلیل گر سیستم، پژوهشگر در حوزه الگوریتم های ابتکاری، فرا ابتکاری، یادگیری ماشین، شبکه و پایگاه داده. ایشان در زبان های برنامه نویسی متعدد، نظیر ++C، سی شارپ، PHP ،Java، متلب MATLAB و Python تسلط و سابقه تدریس فعال دارند.
من این گزینه هارو ندارم توی برنامه باید چیکار کنم؟
ممنون که نصب OpenGL در ویژوال استادیو رو به صورت تصویری توضیح دادین. مشکلی که تو نصب داشتم حل شد.
مطالب عالی بود دمتون گرم
نظرات و دیدگاه های خود را برای هرچه بهتر قرار دادن مطالب با ما در میان بگذارید.