مقدمهای بر OpenGL در ++C
با عرض پوزش به دلیل مشکلات سرور سایت تمامی نظرات و پستها از تاریخ دهم دی حذف شدهاند !
ترم چهار که داشتیم گرافیک کامپیوتری رو میخواندیم ، استادمون گفت که مجبوریم برنامهنویسی OpenGL رو تحت Visual Basic آموزش بدیم. دلیلش هم اینه که منابع فارسی آزاد فارسی برای OpenGL در ++C وجود نداره. و این شده بود یک مشکل بزرگ برای دانشجوهایی که اکثرا C و یا ++C خوانده بودن. برای همین با پیشنهاد استاد تصمیم گرفتم که یک ماه از تابستانم رو برای این کار بزارم ( در واقع حدود ۲ هفته به طور موثر ) و به صورت مقدمهای هم که شده مقالهای بنویسم.
نتیجه شد این که ۳۰ صفحه در مورد راهاندازی OpenGL و شروع برنامهنویسی در ویندوز XP به همراه Visual Studio 2005 . درسته ! خودمم خیلی دوست نداشتم روی این پلتفرم بنویسم ولی پیش خودم فکر کردم که اول باید چند فصل بنویسم که بچهها کار با گنو/لینوکس رو یاد بگیرن. ولی خوشبختانه در این جزوه از کتابخانهی قابل انتقال GLUT استفاده شده که کدها را بدون هیچگونه تغییری میتوانید در گنو/لینوکس به کار ببرید.
تنها چیزی که برای برنامهنویسی OpenGL بوسیلهی ++C در گنو لینوکس دارید این است که بستهی freeglut را دانلود و نصب کنید. برای دبیان یا ابونتو کافی است که از سایت مخازن اون رو جستجو کنید تا به نام دقیق برسید ( برای مثال هماکنون برای آخرین نسخهی ابونتو باید این پکیج را نصب کنید freeglut3 و به همراه freeglut3-dev )
دلیل اینکه در گنو/لینوکس GLUT اصلی را نداریم ، آزاد نبودن کد اصلی آن است. ( این قضیه برای خود OpenGL هم صدق میکند که در گنو/لینوکس شبیهسازی آن یعنی Mesa 3D را داریم )
این جزوه به طور کامل تست شده و برای هر کدی که قرار داده شده ، خروجی آن نیز به صورت شکل آمده است.
شما را به خواندن مقدمهی آن جلب میکنم :
OpenGL چیست ؟
مخفف عبارت Open Graphic Library است و همان طور که از نامش پیداست یک کتابخانه جهت دستیابی ساده به سخت افزار گرافیکی شماست. برای کاربران عادی نام OpenGL با نام بازی های سه بعدی گره خورده است. قبل از نوشتن OpenGL برنامه نویسان گرافیکی مجبور بودند که مستقیما با سخت افزارهای گرافیکی کار کنند و برای سخت افزارها برنامه های اختصاصی بنویسند. اما با گسترش روز افزون تکنولوژی و سخت افزارهای مختلف این رویه ی برنامه نویسی کاربرد خود را از دست داد. چرا که برنامه نویسان برای انتقال یک برنامه ی ساده از یک سخت افزار به سخت افزار دیگر مجبور بودند ده ها ( بلکه هزاران ) خط کد را ویرایش و اصلاح کنند تا با سخت افزار موجود جواب بگیرند. حتی بعد از برطرف شدن مشکل با سیستم عامل های نسل جدید ، مشکل خود را به گونه ای دیگر نشان داد : « عدم توانایی حمل در سیستم های عامل مختلف ». بنابراین نیاز به وجود یک API واحد که بتواند قدرتمند ، قابل انتقال و سطح پایین باشد به شدت احساس می شد. OpenGL این نیازها را به طور کامل برطرف کرده و خواهد کرد.
سیر تاریخی OpenGL
در این کتاب سعی بیشتر بر استفاده ی کاربردی از OpenGL است تا مباحث نظری و تاریخچه ی آن. اما آشنایی با سیر تکاملی OpenGL بسیار مفید خواهد بود.
OpenGL در دهه ۱۹۹۰ توسط شرکت Silicon Grapihcs متولد شد. اما کار استاندارد سازی و تکمیل آن توسط گروه ARB (OpenGL Architecture Review Board) انجام شد. این گروه متشکل از شرکت های بزرگی همچون مایکروسافت ، ۳DLabs ، SGI ، ATI ، Intel ، IBM ، Sun ، NVIDIA ، Dell و غیره بودند که البته مایکروسافت جهت تولید محصول انحصاری خود ( یعنی DirectX ) از سال ۲۰۰۳ این گروه را ترک کرد. نسخه ی اول OpenGL توسط شرکت SGI در سال ۱۹۹۲ منتشر شد. نسخه ی دوم آن نیز توسط شرکت ۳DLabs توسعه داده شد. هم اکنون ( در زمان نگارش این کتاب ) OpenGL در نسخه ی ۳٫۱ به سر می برد که با توجه به توسعه ی سریع این سیستم پیش بینی می شود تا زمان انتشار کتاب به نسخه های بسیار جدیدتری برسد.
هدف اصلی توسعه ی OpenGL
OpenGL در اصل برای دو هدف اصلی توسعه داده شده و می شود :
۱-پنهان کردن پیچیدگی کار با سخت افزارهای مختلف گرافیکی با یک رابط سطح پایین
۲-ساده کردن کارهای گرافیکی خصوصا سه بعدی با ایجاد یک رابط استاندارد واحد
ادامه را در مقالهی اصلی بخوانید.
برای دانلود اینجا را کلیک کنید.
پ.ن۱: هرگونه کپیبرداری با ذکر منبع کاملا آزاد است.
پ.ن۲: در صورت تمایل شاید بتونم ادامه بدم. چون مباحث جذاب مثل texture مانده !
پ.ن۳: منبع اصلی این مقاله در انتها آورده شده است.