تبليغاتX
OpenGL & Computer graphics - مقالات آموزش OpenGL قسمت چهارم
دوستان سلام. قبل از این که آموزش امروز را شروع کنم لازم دیدم از تعدادی از دوستان که در این مدت با نظرات خود من را به ادامه این راه تشویق میکردند تشکر کنم.

آقایان سلطان شپش ها (البته آیدی این دوست مان این میباشد و من قصد جسارت به ایشان را ندارم.) و آقای Kochol و منتظر سبز و voldemort و سیروس که با نظراتشان واقعا به من دلگرمی دادند.

و اما مقاله آموزشی امروز

استقلال از وابستگی به هر گونه پلتفرم خاص :

 

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

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

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

 

استفاده از GLUT :

در آغاز تنها کتابخانه AUX یعنی کتابخانه کمکی OpenGL که مخفف OpenGL Auxiliary Library میباشد. این کتابخانه به منظور تسهیل یادگیری و نوشتن برنامه های OpenGL طراحی شده بود. بدون اینکه برنامه نویس با جزئیات محیطی که در آن برنامه مینویسد گیج بشود حالا چه سیستم عامل یونیکس چه لینوکس یا مکینتاش و یا ویندوز. شما هنگام استفاده از AUX کد نهایی را نمی نوشتید. آن به عنوان یک اسکلت مقدماتی برای تست ایده های شما بود. نبودن خصوصیات مقدماتی GUI در این کتابخانه استفاده از آن را برای ساخت برنامه های حرفه ای محدود میکند.

چندین سال پیش بیشتر برنامه های نمونه OpenGL روی وب با استفاده از کتابخانه AUX نوشته شده بودند. پیاده سازی تحت ویندوز این کتابخانه پر از ایراد بود و باعث میشد برنامه بارها Crash کند. نبودن هیچ خصوصیت GUI یکی از دلایلی بود که آن را در عصری که همه برنامه ها بر اساس GUI طراحی میشدند بی مصرف ساخت.

در نهایت کتابخانه AUX با کتابخانه GLUT تعویض شد. GLUT کتابخانه ای است مستقل از پلتفرم برای طراحی برنامه های نمونه و نمایشی. GLUT مخفف OpenGL Utility Toolkit میباشد.(لطفا با کتابخانه GLU اشتباه نگیرید). مارک کیلگارد زمانی که در شرکت SGI کار میکرد GLUT را به منظور از دور خارج کردن AUX با یک کتابخانه بهتر و لایقتر نوشت. کتابخانه GLUT رایگان میباشد. شما میتوانید آخرین ورژن آن را از این آدرس دانلود کنید.

 

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

 

http://www.sun.com/software/graphics/opengl/glut/download.xml

 

در موقع دانلود مواظب باشید که نگارش مخصوص ویندوز را دانلود نمایید. ما در بیشتر آموزشهایی که من از کتاب OpenGL SuperBible 3rd Edition ترجمه کرده ام از GLUT استفاده میکنیم.

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

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

 

منبع : کتاب OpenGL SuperBible 3rd Editon

 

+ نوشته شده توسط ( ساسان و محمد ) در یکشنبه هفتم خرداد 1385 و ساعت |
Image and video hosting by TinyPic