چهارشنبه, ۱۹ اردیبهشت, ۱۴۰۳ / 8 May, 2024
مجله ویستا

با نگاهی به موتور گرافیكی Unreal۳


با نگاهی به موتور گرافیكی Unreal۳

بخش بزرگی از پیشرفت های موتورهای گرافیكی هنگام ساخت این بازی ها اتفاق افتاد سرعت بالا و جابه جا شدن سریع تصاویر روی صفحه مانیتور, لزوم ترسیم سریع تر چندضلعی ها, تنوع و گستردگی محیط بازی, و استفاده از رنگ های بیشتر, به موتورهای گرافیكی قوی تری نیاز داشت

● مروری بر موتورهای گرافیكی

پشت گرافیك‌های پیشرفته و انیمیشن‌های خیره‌كننده‌ بازی‌های كامپیوتری، كدهای برنامه‌نویسان، محیط‌های توسعه گرافیك، نرم‌افزارهای مدل‌سازی و انیمیشن‌سازی سه‌بعدی و موتورهای گرافیكی قرار‌دارند. بازی‌های كامیپوتری، تركیبی از كدنویسی در چند محیط مجزا هستند و از این رو از انواع پیچیده نرم‌افزار به حساب می‌آیند. نوع موتور گرافیكی انتخاب شده برای ساخت یك بازی كامپیوتری، كاملا‌ بر نتیجه كار تأثیرگذار است.

به‌همین خاطر هم بازی‌های معروف و پرفروشی كه دارای گرافیك پیشرفته‌تری هستند، از موتورهای پیشرفته‌تری استفاده می‌كنند. یكی از موتورهای گرافیكی كه نام آن را هر گیم باز حرفه‌ای شنیده است، Unreal است كه بازی‌های زیادی با سه ویرایش مشهور آن یعنی Unreal۲ ،Unreal۲x و Unreal۳ ساخته شده‌است. این موتورها توسط شركت معروف Epic Games توسعه داده‌شده‌اند. این شركت در ماه آگوست سال ۲۰۰۵ اعلام نمود كه مدت دو سال است روی موتور Unreal۴ كار می‌كند و هدف آن كنسول‌های نسل بعدی است. نسخه‌های ویژه‌ای از این موتور گرافیكی برای سیستم‌های ویندوز، OS X، لینوكس، پلی‌استیشن ۲، اكس‌باكس، نینتندو و سگا طراحی شده است. در این مقاله كاربرد و ویژگی‌های موتورهای گرافیكی و سپس نسخه مشهور Unreal۳ بررسی شده است و برای آشنایی، برخی ویژگی‌های Unreal۲ و Unreal۲X نیز آورده شده است.

● كاربرد و ویژگی‌های موتور گرافیكی

بازی‌های دیروز با محیط‌ها و كاراكترهای دو بعدی، تعداد رنگ‌های كمتر و بدون جلوه‌های ویژه‌ (مانند دود، آتش، جریان آب و انفجار) تغییرات بسیاری به خود دیده‌اند تا به صورت بازی‌های كنونی درآیند. محیط و كاراكترهای سه بعدی، محدوده رنگ بسیار گسترده‌تر، جزئیات گرافیكی بیشتر و پیچیدگی، از ویژگی‌های بازی‌های امروزی است. هر چه بازی پیچیده‌تر، جزئیات بیشتر و حركات بازی سریع‌تر باشد، كار طراحی و برنامه‌نویسی نیز سخت‌تر خواهد شد. پدیدآوردن این‌گونه جلوه‌ها بدون كمك نرم‌افزارهای توسعه‌دهنده بسیار سخت و وقت‌گیر است. برای نمونه، تصور كنید یك طراح مدل سه بعدی به جای طراحی یك اتومبیل با نرم‌افزارهای مدل‌سازی مانند D Studio Max۳، بخواهد با كدنویسی دستی آن را ایجاد نماید!‌

سرآغاز پیدایش موتور‌های گرافیكی از اواسط دهه ۱۹۹۰ میلادی بود. این آغاز با پیدایش بازی‌های سه‌بعدی درهم آمیخت و به پیشرفت آن سرعت بیشتری بخشید. شركت‌های تولیدكننده موتورهای گرافیكی، با دادن مجوز استفاده از محصول خود به دیگر شركت‌های تولیدكننده بازی، اجازه می‌دهند هسته این موتور در اختیار سایر برنامه‌نویسان و توسعه‌دهندگان بازی قرارگیرد و با تغییر در برخی قسمت‌های آن و متناسب كردن موتور گرافیكی با بازی، خود دوباره از آن استفاده كنند. بازی‌هایی مانند CounterStrike ،Team Fortress و Strike Force، برپایه موتور گرافیكی Quake، محصول شركت ID Software ساخته شده‌اند.

بیشتر موتورهای گرافیكی مشمول قانون كپی‌رایت هستند و برای استفاده از آن‌ها مجوز شركت سازنده لازم است. دادن مجوز برای یك بار استفاده از موتور گرافیكی Unreal ساخت شركت EpicGames بین ده تا هفتصد و پنجاه هزار دلار برای این شركت درآمد دارد. البته برخی دیگر نیز مانند موتور گرافیكی Mad، اپن‌سورس هستند و استفاده از آن آزاد است.

موتور گرافیكی نرم‌افزاری است كه كار Render كردن گرافیكی اجزا و محیط‌های بازی را انجام می‌دهد. نمایش سه بعدی تصویر در نمایشگر دو‌بعدی نیز از كاربردهای اصلی موتورهای گرافیكی است. این كار به معنی انجام‌دادن بخش بزرگی از كار برنامه‌نویسان برای هر چه طبیعی‌تر جلوه‌ دادن آن اجزا و محیط‌ها است. موتور گرافیكی به خودی خود این كار را انجام نمی‌دهد، بلكه طراحان و سازندگان موتور گرافیكی آن را به گونه‌ای كه باید كار كند، برنامه‌ریزی می‌كنند.

یك موتور گرافیكی باید بتواند چند ضلعی‌های ساختاری را كه هر لحظه باید روی نمایشگر نمایش یابد، ترسیم كند و بافت روی آن را بكشد. هر چه توانایی ترسیم چند ضلعی‌ها در یك زمان مشخص بیشتر باشد، كیفیت و سرعت نمایش تصویر بالاتر می‌رود و بار پردازشی سخت‌افزارهای كاربر، مانند كارت گرافیك، رم و CPU را كاهش می‌دهد. (در سیستم مدل‌سازی و انیمیشن‌سازی كنونی، یك مدل یا شی، از هزاران یا میلیون‌ها چند ضلعی بسیار كوچك تشكیل می‌شود كه در كنار هم مدلآن شی را می‌سازند). یك نمونه از این كار، توانایی بسیار بالای موتور گرافیك Unreal۳ در رندر نمودن ابر و مناظر طبیعی است.

درحالی‌كه این موتور گرافیكی در اصل برای بازی‌های اكشن و رندركردن انفجارها و برخوردها طراحی شده است. بدین‌ترتیب، موتورهای گرافیكی با دقت و سرعت بسیار بیشتری نسبت به برنامه‌نویسان كار پردازش كدها و نمایش هر چه طبیعی‌تر مناظر مربوط به آن‌ها را انجام می‌دهند.

از ویژگی‌های یك موتور گرافیكی خوب، توانایی كاربرد آن در پلتفرم‌های مختلف است. مثلا یك موتور گرافیكی می‌تواند هم در كنسول‌های بازی و هم در سیستم ویندوز مایكروسافت اجرا شود. برخی موتورهای گرافیكی نیز برای بسیاری از پلتفرم‌های دیگر مانند لینوكس و Mac هم قابل اجرا هستند. یكی از زیرشاخه‌های شناخته شده موتورهای گرافیكی، مربوط به بازی‌های تیراندازی اول شخص (FPS) است.

بخش بزرگی از پیشرفت‌های موتورهای گرافیكی هنگام ساخت این بازی‌ها اتفاق افتاد. سرعت بالا و جابه‌جا شدن سریع تصاویر روی صفحه مانیتور، لزوم ترسیم سریع‌تر چندضلعی‌ها، تنوع و گستردگی محیط بازی، و استفاده از رنگ‌های بیشتر، به موتورهای گرافیكی قوی‌تری نیاز داشت. مانند بازی Unreal Tournament ۲۰۰۴ كه بر پایه موتور گرافیكی Unreal۲ ساخته شده است.

اولین و اصلی‌ترین كاربرد موتورهای گرافیكی ایجاد جلوه‌های كامپیوتری هر چه نزدیك‌تر به واقعیت است. ولی موتورهای گرافیكی بزرگ و قوی، توانایی‌های بسیار دیگری دارند. مانند پشتیبانی از فرمت‌های پیشرفته ویدیویی و صوتی، هوش مصنوعی و ... .

● میان‌افزارها

هم‌اكنون برخی شركت‌های بازی‌سازی، نرم‌افزارهایی تحت‌عنوان میان‌افزار (middleware) تولید می‌كنند. این میان‌افزارها شامل تابع‌هایی برای توسعه گرافیك، صدا، هوش مصنوعی و ویژگی‌های فیزیكی مدل‌های طراحی‌شده هستند.

NDL۰۳۹;s Gamebryo وRender War دو نمونه بسیار پركاربرد از این میان‌افزارها هستند. برخی از میان‌افزارها با سورس‌كد در اختیار برنامه‌نویسان قرار می‌گیرند. برخی سازندگان نیز تنها مجوز استفاده از API های میان‌افزار خود را به برنامه‌نویسان می‌دهند. البته نوع دوم مجوزدهی، كم‌هزینه‌تر از نوع اول است.

برخی از میان‌افزارها برای یك كاربرد خاص مانند رندركردن درختان و گیاهان ساخته شده‌اند و این كار را با كیفیت بیشتری نسبت به موتورهای گرافیكی چندمنظوره انجام می‌دهند. SpeedTree نمونه‌ای از آن‌هاست.

● موتورهای گرافیكی Unreal

Unreal۳ پیشرفته‌ترین نوع این خانواده است. به همین‌خاطر ویژگی‌های آن را بررسی می‌كنیم. ولی برای این‌كه با دسته‌ای از تفاوت‌های این موتور با دو نوع پیشین آشنا شویم، برخی از ویژگی‌های Unreal۲ و Unreal۲X نیز بیان شده‌است. از بازی‌هایی كه بر پایه خانواده Unreal ساخته شده‌اند، می‌توان از Dead Man۰۳۹;s Hand ،Lineage II ،Unreal Championship ،Unreal Tournament و Unreal Tournament نام برد.

● Unreal۲

موتور گرافیكی Unreal۲ یك framework یا چارچوب توسعه‌‌دهنده كامل بازی‌های كامپیوتری برای كامپیوترهای رومیزی، كنسول‌های اكس‌باس و پلی‌استیشن ۲ است. ابزارهای تست محصول (production-proven) و كدهای پایه‌ای feature-rich، به تیم برنامه‌نویس و توسعه‌دهندگان بازی‌ها امكان می‌دهد از همان ابتدای كار بتوانند همه بخش‌های بازی مانند ساخت مدل‌ها، طراحی مراحل بازی، طراحی واسط كاربر، برنامه‌نویسی و ... را انجام دهند. هر شخص از تیم سازنده بازی از بخشی از امكانات این موتور گرافیكی بهره‌می‌گیرد و بخشی از كار به صورت موازی و در نتیجه با سرعت بیشتر پیش می‌رود.

سیستم پیشرفته رندر كننده Unreal۲ از ویژگی‌هایی مانند سطوح آینه‌ای و نیمه شفاف، آسمان و پس‌زمینه‌ها با سیستم‌های جدول نسبت‌دهی غیروابسته، برای چرخش و تغییر شكل مستقل اشیا پشتیبانی می‌كند.

پشتیبانی كامل از كارت‌های گرافیكی كلاس Direct X۸ و پشتیبانی از رندر برای DirectX۶ در كارت‌های گرافیكی پیشین، از دیگر ویژگی‌های آن است كه باعث می‌شود دارندگان كارت‌های گرافیكی قدیمی‌تر هم بتوانند از بازی‌های مبتنی بر Unreal۲ در كامپیوتر خود لذت ببرند.

همچنین زیرسیستم رندرینگ شاملDirect۳D ،OpenGL رندركننده RAD Game Tools۰۳۹; Pixomatic software در كامپیوترهای دارای ویندوز به همراه Unreal۲ به فروش می‌رسد و در مجموع هزینه‌ای برای كاربران ندارد. این مجموعه این اطمینان را می‌دهد كه هر كامپیوتری با پردازنده مناسب خواهد توانست موتور گرافیكی Unreal۲ را بدون نیاز به پشتیبانی كارت‌های ۳D از آن اجرا كند.

در سیستم انیمیشن Unreal۲، هریك از كانال‌های چندگانه انیمیشن،‌ با شاخص‌های تركیب و نقطه شروع متفاوت، امكان اجرای همزمان چند انیمیشن را در یك زمان فراهم می‌كنند. امكان توقف keyframeهای اسكلتی، حركت بسیار روان اشیا را مستقل از نرخ نمایش فریم‌ها در هر ثانیه، ممكن می‌كند.

ویژگی‌های سیستم ضبط فیلم در Unreal۲ امكانات بسیاری دارد كه می‌توان به نمونه‌های زیر اشاره كرد: موتور Unreal۲ از ضبط فیلم از صحنه‌های بازی و قابلیت پخش دوباره فایل‌های دموی ضبط‌شده پشتیبانی می‌كند. این فایل‌ها می‌توانند برای نمایش و آموزش تكنیك‌های بازی، سودمند باشند. كاربرد گسترده و بسیار سودمند دیگر آن در تست محصول به صورت توزیع شده است و هر بخش از بازی می‌تواند جداگانه تست شود. پردازش فایل‌های دموی تولید شده به فیلم‌های DivX نیز از دیگر امكانات این موتور گرافیكی است.

● Unreal۲X

در آن سوی جلوه‌های خیره‌كننده بازی Unreal Championship۲ :The Liandri Conflict، موتور بسیار ارتقا یافتهUnreal ۲X قرار دارد. این موتور گرافیكی، سه تا چهار برابر تعداد چند‌ضلعی‌های رسم شده در یك ثانیه در بازیUnreal Champion اصلی را در نسخه دوم آن ترسیم كرده است. در حالی‌كه كیفیت تصاویر بازی،‌ بالاتر از بسیاری از بازی‌هایی است كه هم‌اكنون باید روی كامپیوترهایی با پردازنده‌های قوی‌تر اجرا شوند.

Unreal۲X دو مُد فیلد با دو عمق متفاوت را پشتیبانی می‌كند: مد اول برمبنای عمق كامل/مقدار شفافیت، و باورپذیری عمق بیشتر همیشه روشن و فعال است. مد دیگر برای بزرگ‌نمایی و پدیدآوردن صحنه‌هایی مانند نگاه كردن از دوربین یك تفنگ شكاری است.

موتور گرافیكی Unreal۲X، از فرمت‌هایی برای سطوح ویژه استفاده می‌كند كه سایه‌هایی با وضوح بیشتر را در كنسول‌های Xbox می‌سازد. این سایه‌ها یك چهارم حجمی را اشغال می‌كنند كه سایه‌هایی با این وضوح بدون استفاده از این سیستم بهبوددهنده اشغال می‌كنند. اصلاحگر دینامیك گاما برای نشان دادن سختی و جنس بعضی از سطوح روی صفحه نمایشگر، با استفاده از اصلاح سطوح نوردهی به كار می‌رود. به علا‌وه، Unreal ۲X از ابزارها و امكانات ویژه دستگاه‌های Xbox نیز پشتیبانی كاملی به عمل می‌آورد كه در زیر به چند نمونه از آن اشاره می‌شود:

۱- صدا و شبكه در سیستم‌های Xbox

۲- مجموعه PIX كه رفع خطای نرم‌افزاری و برطرف كردن مشكلات پیش روی افزایش كارایی گرافیكی سیستم را پشتیبانی می‌كند.

۳- XACT، كه شامل كتابخانه فایل‌های صوتی و ابزارهای ویرایش است.

علی حسینی


شما در حال مطالعه صفحه 1 از یک مقاله 2 صفحه ای هستید. لطفا صفحات دیگر این مقاله را نیز مطالعه فرمایید.