OpenGL، جمعبندی دوره و شکلهای آموزشی
OpenGL، جمعبندی دوره و شکلهای آموزشی
OpenGL
برای گرافیک پیشرفته در سطح رایانهٔ شخصی، در نهایت لازم است از OpenGL (Silicon Graphics) یا DirectX (Microsoft) استفاده شود. این بستههای نرمافزاری همراه با کارتهای گرافیکی سازگار عمل میکنند و امکان پیادهسازی سختافزاری توابع گرافیکی را فراهم میسازند. نرمافزار اجازه میدهد سختافزار در حد توان خود عمل کند و هر جا لازم باشد، پیادهسازی نرمافزاری جای خالی را پر کند.
ما با موفقیت قابلیت OpenGL را در این درس و مجموعه برنامههای نمونهٔ خود وارد کردهایم. برای مسائل برنامهنویسی OpenGL از راهنمای رسمی OpenGL استفاده کردهایم و SuperBible و آموزش Oursland نیز برای کار با OpenGL در محیط رایانهٔ شخصی بهویژه سودمند بودهاند. این منابع راهبردهایی برای وارد کردن گرافیک OpenGL در AppWizard ارائه میکنند.
نکتهٔ جالب این است که تقریباً بهصورت مستقیم میتوان گرافیک سهبعدی شیءگرای توضیحدادهشده در بالا را با OpenGL تطبیق داد و به رندر سریع دست یافت. جزئیات پیادهسازی را در اینجا بررسی نمیکنیم، اما با تغییر اندکی در تابع Trace از کلاس Polygon میتوان دستورات OpenGL را مستقیماً استفاده کرد. نتیجهٔ کلی این است که شکلهای سهبعدی با ابزارهای برنامهنویسی شیءگرای ما بهسادگی تولید، جابهجا، دوران داده و نمایش داده میشوند. برنامهنویسی OpenGL در سطح بالاتر عمدتاً موقعیت و زاویهٔ دید، نورپردازی، رنگ زمینه و مانند اینها را کنترل میکند.
شکل ۹ نخستین برنامهٔ OpenGL را همراه با استوانه و جعبهٔ شکل ۷ نشان میدهد. در شکل ۹ کیفیت سایهزنی OpenGL و توانایی حذف سطوح پنهان با استفاده از عمقگذاری کاملاً آشکار است. با این قابلیت، تولید گرافیک و پویانمایی باکیفیت نسبتاً آسان میشود.
شبیهساز رانندگیِ شکل ۱۰ نمونهای است که در کلاس مطرح شده و دانشجویان میتوانند آن را برای پروژههای خود اصلاح کنند. عدد روی کاپوت خودرو در شکل ۱۰ نمونهای از اصلاح دانشجویی است که در آن نگاشت بافت لازم برای قرار دادن عدد روی کاپوت، بهعنوان بخشی از پروژهٔ نهایی، اضافه شده است. پویانمایی ترن هواییِ شکل ۱۱ نیز یکی دیگر از پروژههای درسی دانشجویان است. در این پویانمایی، یک ترن هوایی ششواگنه در امتداد مسیر حرکت میکند و میتوان آن را از موقعیتهای قابل تنظیم، از جمله صندلی جلویی، مشاهده کرد. ربات شکل ۱۲ نمونهٔ دیگری است؛ این ربات میتواند بهصورت مرحلهای یا متحرک حرکت کند و جسم کوچکی را که نزدیک گیرهٔ آن دیده میشود بردارد.
نتیجهگیری
این مقاله رویکردی برای آموزش گرافیک کامپیوتری در محیط رایانهٔ شخصی و ویندوز را ارائه کرده است. این درس برای دانشجویان سالهای پایانی و دانشجویان تحصیلات تکمیلی موفق و جذاب بوده است. درس علاوه بر آشنا کردن دانشجویان با فرایند برنامهنویسی ویندوز بهطور کلی، آنان را با نحوهٔ کار برنامههای CAD و پویانمایی کامپیوتری نیز آشنا میکند. همچنین این درس دانشجویان را برای مطالعه و پژوهش بیشتر در گرافیک کامپیوتری آماده میسازد.
این مقاله همچنین میکوشد بینشی نسبت به فرایند برنامهنویسی Visual C++ و روشهای برنامهنویسی برای عملیات پایهٔ گرافیک دوبعدی ارائه دهد. راهبرد استفاده از گرافیک سهبعدی شیءگرا در آموزش نیز شرح داده شده است. جذابیت این فرایند در آن است که به دانشجویان اجازه میدهد تابعهایی را که برای بخشهای مختلف ایجاد، دستکاری و نمایش بازنماییهای سهبعدی خدمت میکنند بررسی و اصلاح کنند. این راهبرد بهطور مستقیم به قابلیتهای سطح بالاتر گرافیکی OpenGL گسترش مییابد و از این طریق میتوان پویانماییها و شبیهسازیهای قابلتوجهی توسعه داد.
از نظر زمانبندی، دانشجویان معمولاً پروژهٔ گرافیک دوبعدی را تقریباً در نیمهٔ دوره به پایان میرسانند. تدریس گرافیک سهبعدی تقریباً از نقطهٔ ۴۰ درصد دوره آغاز میشود. دو پروژهٔ گرافیک سهبعدی نیز الزامی است: یکی پروژهای مشخص که بدون OpenGL انجام میشود و دیگری پروژهای انتخابی توسط خود دانشجو که با استفاده از OpenGL انجام میگیرد.
منابع
- Horton, I.، Beginning Visual C++ 6، Wrox Press Ltd، Birmingham, UK، 1998.
- Gurewich, O. and Gurewich, N.، Teach Yourself Visual C++ in 21 Days، ویرایش چهارم، Sams Publishing، 1997.
- Foley, J.D. et al.، Computer Graphics Principles and Practice، ویرایش دوم، Addison Wesley، 1990.
- Wright, R.S. and Sweet, M.، OpenGL SuperBible، ویرایش دوم، Waite Group Press، 2000.
- Woo, M. et al.، OpenGL Programming Guide، ویرایش سوم، Addison Wesley، 1999.
- Oursland, N.A.، Using OpenGL in Visual C++، www.DevCentral.Iftech.com.
شکل 1 — مفاهیم شیءگرا
شکل 2 — مفاهیم شیءگرا با اشارهگرها و تابعهای مجازی
شکل 3 — نخستین گرافیک در یک پنجره
شکل 4 — ترسیم با ماوس و ایجاد موارد منو و نوار ابزار
شکل 5 — ترسیم در محیط چندپنجرهای
شکل 6 — طرح ترسیمشده با ماوس همراه با نمودارهای رسمشده توسط برنامه
شکل 7 — تصویرسازیهای سادهٔ سهبعدی
شکل 8 — منحنی Bezier و حذف خطوط پنهان
شکل 9 — آغاز کار با OpenGL
شکل 10 — مبانی شبیهسازی رانندگی
شکل 11 — پروژهٔ دانشجویی ترن هوایی
شکل 12 — پروژهٔ دانشجویی ربات