آبجی
8th March 2010, 03:45 PM
مقدمه:
استقلال از وابستگي به هر گونه پلتفرم خاص :
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.xmission.com/%7Enate/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 ويندوز بنويسيم.
دانلود:
http://www.rogepost.com/dn/z4cu/OpenGL.rar (http://www.rogepost.com/dn/z4cu/OpenGL.rar)
استقلال از وابستگي به هر گونه پلتفرم خاص :
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.xmission.com/%7Enate/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 ويندوز بنويسيم.
دانلود:
http://www.rogepost.com/dn/z4cu/OpenGL.rar (http://www.rogepost.com/dn/z4cu/OpenGL.rar)