برنامه نویسی OPEN GL درواقع مجموعه کتابخانه ها و دستورات گرافیکی است که قابلیت طراحی انواع طرح های ایستا و پویا را به برنامه نویس میدهد. در استفاده از OPEN GL برخلاف روش های دیگر طراحی مثل استفاده از فتوشاپ یا ۳D Max تماما باید با از کدنویسی استفاده کرد و با استفاده از برنامه نویسی طرح نهایی خود را ایجاد کرد که این خود باعث دقیق تر بودن خروجی خواهد شد.
برنامه نویسی open GL یا Open Source Graphics Library (کتابخانه متن بازگرافیکی) مجموعه ای از کتابخانه ها با کامپوننت هایی میباشد که برای اجرای دستورات گرافیکی است.
** Open Source به معنای باز بودن یک نرم افزار است که قابل تغییر توسط سایرکاربران میباشد.
Open GL یک زبان برنامه نویسی نیست بلکه یک سری کتابخانه از پیش تعریف شده است که کار با آنها بسیار ساده و راحت است.
برای اینکه بتوانیم با سخت افزار سیستم ارتباط برقرار کنیم باید از یکسری رابط ها به نامAPI ها استفاده کنیم. این Api به عنوان یک مترجم عمل میکند و معروف ترین آنها opengl , Directx میباشد.
Open GL درسال ۱۹۹۰ توسط شرکت Silicon Graphics به بازار عرضه شد.
انواع کتابخانه های open GL
هرگاه بتوانیم کدهای نوشته شده توسط یک نرم افزار در مثلا سیستم عامل ویندوز را روی نرم افزار دیگری در سیستم عامل لینوکس اجرا کنیم از کتابخانه های مستقل از سکو استفاده میکنیم
این نوع کتابخانه ها در سیستم عامل های خاصی اجرا میشوند و نمیتوان برروی دیگر سیستم عامل ها آنهارا اجرا کرد مگر با تغییرات بزرگی در کدهای برنامه.
مراحل ایجاد یک برنامه Open GL
برای برنامه نویسی Open GL تنها کافی است سه کتابخانه glut32.dll , glut32.h , glut32.lib را دانلود کنید و در مسیر های زیر کپی کنید
سپس زمان آن است که برنامه Visual Studio را باز کرده و پروژه C++ ایجاد کنیم حال باید کتابخانه هارا به برنامه خود بشناسانیم بدین صورت
Project\test properties\configuration properties\liker\input\Additional Dependencies
(توجه داشته باشید که test در قسمت test properties نام فرضی پروژه ماست و قطعا با نام پروژه شما متفاوت خواهد بود)
در مسیر فوق نام کتابخانه های خود رامیینویسیم و OK
حال میتوان کدهای Open GL خود را نوشته و اجرا کرد برای مثال برنامه زیر یک خانه را ترسیم میکند
#include <windows.h> #include <gl/glut.h> void init (void) { glClearColor (1.0, 0.7, 0.9, 0.0); glMatrixMode (GL_PROJECTION); gluOrtho2D (0.0, 600.0, 0.0, 500.0); } void Draw_House(void) { glClear (GL_COLOR_BUFFER_BIT); glColor3f (0.0, 0.0, 1.0); glEnable(GL_LINE_SMOOTH); glBegin (GL_LINES); glVertex2i (300, 400); glVertex2i (200, 300); glVertex2i (300, 400); glVertex2i (400, 300); glVertex2i (200, 300); glVertex2i (400, 300); glVertex2i (200, 300); glVertex2i (200, 100); glVertex2i (400, 300); glVertex2i (400, 100); glVertex2i (200, 100); glVertex2i (400, 100); glEnd (); glFlush (); } void main (int argc, char** argv) { glutInit (&argc, argv); glutInitWindowPosition (50,100); glutInitWindowSize (600,500); glutCreateWindow ("Draw_House"); glutInitDisplayMode ( GLUT_SINGLE | GLUT_RGB ); init(); glutDisplayFunc (Draw_House); glutMainLoop(); }
5 Comments
زبان حتما باید ++c باشه؟
سلام
بله
خیلی متشکرم بالاخره کد تو سیستم من اجرا شد
با سلام و احترام
شما بازنویسی یک پروژه با OpenGL رو که بعضی از کدها درست کار نمیکنه رو می پذیرید؟
با سلام
قادر به انجام پروژه شما از ابتدا و با زبان C++ هستیم.اما اصلاح کدهای شما را انجام نمی دهیم.
در صورتی که تمایل داشته باشید کارتون توسط تیم برنامه نویسی ما انجام شود از طریق فرم سفارش پروژه پروژه خود را برای ما ارسال نمایید.
با احترام