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


موتورهای پردازشی فيزايکس


تاکنون دو موتور فيزايکس بیش از بقیه در بازی‌های مختلف به کار گرفته شده‌اند. Havok PhysX معروف‌ترین موتور فيزايکس است که تاکنون در بیش از 150 عنوان بازی به کار گرفته شده است. این موتور فيزايکس پردازش‌‌ها و محاسبات خود را با استفاده از پردازنده مرکزی سیستم انجام می‌دهد.


موتور PhysX نیز موتور فیزايکس دیگری است که این روزها در بازی‌های متعددی به کار گرفته می‌شود. این موتور فيزايکس قادر است از پردازنده مرکزی یا پردازنده گرافیکی برای پردازش‌های فيزايکس استفاده کند. البته این موتور پردازشی در ابتدا در اختیار شرکت Ageia قرار داشت و یک کارت شتاب‌دهنده فيزايکس با نام PPU نیز داشت که پردازش‌های فيزايکس را به جاي پردازنده مرکزی، روی این کارت انجام می‌داد.  در سال 2008 و پس از تصاحب Ageia توسط انویدیا، کارت شتاب‌دهنده physX کم‌کم به فراموشی سپرده شد چراکه انویدیا با اعمال تغییراتی در ساختار موتور پردازشی physX، شتاب‌دهی سخت‌افزاری آن را به کارت‌های جیفورس با ساختار CUDA محدود کرد.


محدودیتهای physX


در حال حاضر، physX تنها موتور پردازشی فيزايکس است که برای محاسبات خود می‌تواند از پردازنده گرافیکی استفاده کند. اگر به بازی‌های کامپیوتری علاقه‌مند باشید، حتما بايد تا به حال عناوین بازی را دیده باشید که در شروع، لوگوی physX را نمایش می‌دهند. این بازی‌ها برای انجام محاسبات فيزايکس خود، از موتور physX استفاده می‌کنند. به لحاظ فنی، موتور physX به گونه‌ای طراحی شده که محاسبات خود را هم روی پردازنده گرافیکی و هم روی پردازنده مرکزی سیستم می‌تواند انجام دهد. در حال حاضر انویدیا یک محدودیت بزرگ روی نرم‌افزار این موتور پردازشی اعمال کرده است. شتاب‌دهی سخت‌افزاری physX تنها روی پردازنده‌های گرافیکی جیفورس امکان‌پذیر است. ضمن اینکه اگر یک کارت گرافیکی رادئون داشته باشید، نه‌تنها پردازش‌های physX روی تراشه گرافیکی انجام نخواهد شد بلکه این پردازش‌ها روی پردازنده مرکزی سیستم نیز با سرعت بسیار پایینی انجام می‌شود که افت سرعت فریم قابل ملاحظه‌ای را به دنبال خواهد داشت.


physX CPU یا physX GPU؟


چنانچه یک بسته محاسباتی را بتوان به صورت موازی اجرا کرد، پردازش آن روی پردازنده گرافیکی به مراتب سریع‌تر خواهد بود چراکه هسته‌های پردازشی بیشتری نسبت به پردازنده مرکزی دارد. طبق ادعای انویديا، پردازش‌های فيزايکس به طور معمول بین دو تا چهار برابر سریع‌تر روی یک پردازنده گرافیکی انجام می‌گیرند. اما این نکته را نیز نباید فراموش کرد که محاسبات فيزايکس را نمی‌توان به طور کامل، به تنهایی روی یک پردازنده گرافیکی اجرا کرد. به همین دلیل است که بازی‌ها به طور معمول ترکیب CPU و GPU را برای این نوع محاسبات، در نظر می‌گیرند. به این صورت که پردازش‌هایی مثل جلوه‌ها روی ذرات را که قابلیت موازی‌سازی بالایی دارند، روی GPU و پردازش‌هایی که قابل موازی‌سازی نیستند، روی CPU انجام می‌گیرند. به همین دلیل در برخی از بازی‌های مجهز به پردازش physX، اثر کارت‌های گرافیکی جیفورس برای انجام محاسبات موازی فيزايکس، چندان محسوس نیست.


اما در عمل و در اکثر بازی‌های مجهز به موتور physX، اختلاف موجود بسیار فاحش است. موتور گرافیکی اکثر بازی‌های مجهز به physX، تنها از یکی از هسته‌های پردازشی CPU استفاده می‌کند ولو اینکه پردازنده چند هسته‌ای روی سیستم نصب باشد. ضمن اینکه به نظر می‌رسد انویدیا برای پردازش‌های فيزايکس روی CPU بهینه‌سازی‌های لازم را انجام نمی‌دهد تا اثر GPU و در نهایت کارت‌های جیفورس پررنگ‌تر شود. انویدیا اعلام کرده که نسخه سوم بسته توسعه نرم‌افزار physX، قابلیت موازی‌سازی پردازش‌های فيزايکس روی CPU را دارد و طراحان بازی‌ها می‌توانند این قابلیت را به کار گیرند. در این صورت و با انتقال بار پردازشی بیشتر روی CPU و استفاده از تمام هسته‌های پردازشی آن، انجام محاسبات فيزايکس را مي‌توان سریع‌تر کرد. پردازش‌های physX در حضور کارت‌های گرافیکی رادئون همانطور که پیشتر اشاره شد، انویدیا انجام محاسبات فيزايکس در سطح پردازنده گرافیکی را به حضور کارت‌های جیفورس محدود کرده است. نتیجه اینکه در صورت وجود یک کارت گرافیکی رادئون، physX غیرفعال می‌شود. برای دور زدن این محدودیت، یک روش کارساز در سایت nqohq.com معرفی شده که با کمک آن می‌توان این مشکل را برطرف کرد. در این روش، با قرار دادن یک کارت گرافیکی جیفورس در کنار کارت رادئون و اعمال اصلاحیه موجود، می‌توان محاسبات physX را روی کارت جیفورس به عنوان کارت گرافیکی دوم سیستم انتقال داد. در این روش کارت رادئون کماکان به عنوان کارت گرافیکی اصلی سیستم خواهد بود. با این روش، جهش کارایی قابل توجهی در بازی‌هایی که از physX استفاده می‌کنند، ایجاد می‌شود. اگر سیستم شما به یک کارت گرافیکی رادئون مجهز است، هفته آینده می‌توانید این روش را به طور کامل دنبال کنید.

نويد رفعتي
Navid@ICTNews.ir

منبع : عصر ارتباط


موضوعات مرتبط: اطلاعات کامپیوتری ، خبری و اطلاع رسانی

تاريخ : پنجشنبه ۱۸ آذر ۱۳۸۹ | 18:2 | نویسنده : وحید |
.: Weblog Themes By Bia2skin :.