یکی از رابط های برنامه کاربردی یا API هایی که همواره بسیار مورد توجه تولید کنندگان سخت افزار و برنامه نویسان بوده، DirectX است. اما این توجه به خاطر چیست؟ در گذشته برنامه نویسان سیستم عامل داس (DOS) مجبور بوده اند که برای نوشتن برنامه های خود، مستقیما با سخت افزار ها در ارتباط باشند. نتیجه هم این بود که برنامه های آنان، فقط با چند سخت افزار خاص اجرا می شد و این مساله کار را بسیار سخت می کرد. اما از زمانی که مایکروسافت DX را ابداع کرد، کارها بسیار راحت تر شد و حالا این دایرکت ایکس است که مسئول برقراری ارتباط بین سخت افزارها و نرم افزارها است. پس این که دایرکت ایکس به این اندازه مورد توجه باشد، چندان دور از ذهن نیست.
دایرکت ایکس یازده در واقع یک مجموعه کامل تر از این رابط است که بهبودهایی در زمینه Tessellation و Multi-Threading پیدا کرده. همچنین دو الگوریتم جدید برای متراکم کردن و فشرده سازی تکسچرها، بیشتر کردن Cache مربوط به تکسچرها و ارائه Shader Model5، باعث شده اند تا پردازش تصویر و سرعت دایرکت ایکس یازده بهبود یابد. به این موارد، سیستم Direct Compute را اضافه کنید تا به قدرت DX11 پی ببرید. اگر به مواردی ناآشنا بر خوردید نگران نباشید؛ در ادامه آنها را هم به شما معرفی خواهیم کرد.
گاهی اوقات لازم می شود که هر برنامه و بازی دو یا چند عمل را به صورت هم زمان انجام دهد؛ بدون این که از دسترس خارج و به قول معروف Not Responding شود. برای مثال در بازی ها وقتی شما در حال تیر اندازی هستید، از ویژگی مولتی تریدینگ استفاده می کنید. چون هم حرکات شما پردازش می شود و هم حرکات و اعمال دشمنان شما.
پشتیبانی Multi-Threading سالها است که توسط انویدیا و ای تی آی صورت می گیرد و به پردازنده های چند هسته ای اجازه می دهد به طور مستقیم و به صورت موازی با پردازنده گرافیکی یا GPU ارتباط یابند. اما دایرکت ایکس یازده این امر را یک گام به جلو برده و جا را برای Thread های بیشتر باقی می گذارد. حالا درایور گرافیک، برنامه و دایرکت ایکس Runtime می توانند در Thread های جدا قرار گیرند. بنابر این اگر کیفیت تکسچرها در همان حد دایرکت ایکس 10 باقی بماند، می توان عملکرد بهتری را در مولتی تریدینگ های سنگین شاهد بود.
سلام بر Tessellation:
لازم است اول به توضیح Tessellation (تسلیشن) بپردازیم: مدل های سه بعدی از راس های مختلفی تشکیل شده اند. این مدل ها درست دیده نمی شوند، مگر آن که فواصل بین راس هایشان پر شوند و به این کار Tessellation می گویند. این نکته را بدانید که مدل های پرجزئیات تر از راس های بیشتری تشکیل شده اند و در نتیجه به Tessellation بیشتری نیاز دارند.
کاراکتر ها در بازی های امروزی واقعا پیچیده و گسترده شده اند و طراحان تمام تلاش خود را برای خلق مدل هایی با جزئیات بالاتر به کار می گیرند. در گذشته شاهد این بودیم که این جزئیات فقط در میان پرده های بازی دیده می شد و در بازی خبری از آن ها نبود. علت هم آن بود که اگر مدل ها را با جزئیات بالا وارد بازی می کردند، بار سنگینی اعمال می شد و افت فریم دهی قطعی بود. اما در چند سال اخیر شاهد بهبود زیادی در کیفیت بازی ها هستیم چون هم قدرت محاسبه افزایش یافته و هم الگوریتم های Tessellation در دایرکت ایکس بهتر شده است.
جالب است بدانید که Tessellation سخت افزاری برای اولین بار در سال 2001 توسط شرکت ای تی آی ابداع شد اما چون در آن زمان API ها از آن پشتیبانی نمی کردند، با استقبال زیادی از سوی توسعه دهندگان مواجه نشد. امروزه با کمک دایرکت ایکس یازده شرایط عوض شده چون (مانند دایرکت ایکس 10 و 9) از Tessellation سخت افزاری به عنوان یک استاندارد پشتیبانی می کند. پس به Tessellation سخت افزاری بیشتر توجه کنید.
میان افزار Direct Compute
Direct Compute یکی از میان افزار های مهم در اجرای بازی های ویدویی است.این میان افزار که در دایرکت ایکس یازده نیز وجود دارد، امروزه تبدیل به یک عضو جدایی ناپذیر خانواده دایرکت ایکس شده است! دایرکت کامپیوت می تواند زمینه اجرای محاسبات چند منظوره GPGPU را محقق کند.
اگر شما هم در مورد CUDA از انویدیا و استریم از ای تی آی شنیده اید، بدانید که Direct Compute اهرم نیرومند مایکروسافت در این زمینه است، که در به کارگیری این دو تکنولوژی کمک می کند.
محاسبات General Purpose computing on Graphics Processing Unit که به اختصار GP-GPU نامیده می شود، به این صورت کار می کند که بار پردازشی را به قسمت های کوچکتری تقسیم کرده و آنها را به طور موازی به اجرا در می آورد. بنابراین به جای این که محاسبات تک تک و به ترتیب اجرا شوند، به صورت یک جا اجرا می شوند و این عمل باعث افزایش بهره وری خواهد شد.
دایرکت کامپیوت اجازه می دهد که عملیات پردازشی بیشتری روی GPU انجام گیرد و از این راه، بازدهی را افزایش می دهد. نحوه کار به این صورت است که دستور توقف بعضی عملیات پردازشی به پردازنده داده می شود و در عوض این عملیات بر روی GPU انجام می گیرند. به این ترتیب هم عملکرد CPU بهبود می یابد و هم پردازش افکت هایی که قبلا در CPU غیر ممکن بود و در GPU انجام می پذیرد. اطلاعات بیشتر در مورد GP-GPU را می توانید
اینجا بخوانید.
دایرکت کامپیوت قادر به اجرای موارد بسیاری است، که می توان این ها را نام برد: هوش مصنوعی، پردازش فیزیک اجسام، ردیابی اشعه (ray tracing)، نور پردازی به شیوه Ambient Occlusion، پست پروسسینگ، Video Transcoding . دایرکت کامپیوت در دایرکت ایکس 10 و 10.1 نیز وجود دارد. اما بعضی از قابلیت های آن در دایرکت ایکس یازده بهبود زیادی یافته است.
Ambient Occlusion: یک روش سایه زنی است که در گرافیک سه بعدی کامپیوتری استفاده می شود و به واقعی نشان دادن اجسام کمک می کند. این روش نور را در قسمت هایی از جسم که فرورفته هستند، رقیق می کند و در نتیجه باعث ایجاد سایه در آن قسمت ها می شود. برای فهم بیشتر به تصویر زیر توجه کنید.
در تصویر سمت چپ شیوه Ambient Occlusion به کار گرفته شده و کل جسم نورانی و فقط قسمت های فرورفته آن دارای سایه هستند. در تصویر وسطی از شیوه Diffuse یا نور پراکنده استفاده شده و جسم حالت فلزی به خود گرفته و از فرورفتگی ها نیز چشم پوشی شده است. اما تصویر سمت راست بسیار واقع گرایانه تر است. در این عکس از ترکیب شیوه های Diffuse و AO استفاده شده است. روش AO اثر مثبتی روی سایه های جسم داشته و Diffuse نیز نور پردازی را کامل کرده است!
Post Processing: این اصطلاح معرف فرایندی است که برای بهبود کیفیت فیلم و عکس ها استفاده می شود. روش های پردازش تصویر معمولا در هر وسیله ی مولتی مدیا، از کامپیوتر گرفته تا دستگاه های ضبط و پخش CD و DVD مورد استفاده قرار می گیرند. توجه داشته باشید که ملاک برتری الگوریتم های پست پرسسینگ سرعت، شفافیت و عدم وجود پله پله گی در تصویر نهایی است.
Ray Tracing: در این تکنیک سعی می شود که مسیر تابش نور از منبع نور به جسم و هم چنین از اشیاء دیگر به جسم ردیابی شود. این تکنیک باعث ایجاد بازتاب های بسیار واقع گرایانه و طبیعی می شود.
Video Transcoding: به تبدیل مستقیم داده های دیجیتال به دیجیتال، Transcoding می گویند. بارها برای شما پیش آمده که یک فایل AVI را به MP4 تبدیل کنید، تا آن را بر روی موبایل خود ببینید. این کار Video Transcoding نامیده می شود.
عملکرد:
به این ترتیب با خواندن موارد بالا متوجه شدید که بیشتر کار های شما با بازی ها و بعضی نرم افزارهای خاص تحت دایرکت ایکس انجام می گیرد و به اهمیت این میان افزار پی بردید. حالا وقت آزمایش است. باید ببینیم که این میان افزار در عرصه عمل چگونه رفتار می کند! دایرکت ایکس یازده را از دو منظر مورد آزمایش قرار داده اند: یکی کیفیت تصاویر و دوم سرعت عملکرد.
برای تست از سیستمی با این مشخصات استفاده شده:
CPU: AMD Phenom II X4 955
Main board: AMD 785G Chipset
RAM: 2GB DDR3 1333MHz
H.D.D: Western Digital "Raptor" 150 GB-10,000 RPM- SATA
OS & Drivers: Windows Vista Ultimate – Catalyst 10.3 – Direct X 9, 10, 11
Graphics Cards: Diamond Radeon HD5770 1024MB – Diamond Radeon HD5870 1024MB
توجه: در تمام تست ها نارنجی DX9، قرمز DX10 و آبی DX11 است.
تست با بازی Aliens Vs. Predator:
تصاویر زیر تفاوت کیفیت دایرکت ایکس 9 و 11 را به خوبی نشان می دهند.
همانطور که تصاویر بالا نشان می دهند، در زمینه ایجاد عمق میدان و همچنین کنتراست بالاترِ رنگ ها بهبود یافته است.
اکنون وقت آن رسیده که از تفاوت عملکرد ها اطلاع یابیم:
حال نوبت به تست عملکرد در سیستم مورد آزمایش است: تست این بازی در دو رزولوشن مختلف و تحت دایرکت ایکس یازده با فیلتر 4XAA انجام شده و تست های دایرکت ایکس 9 بدون فیلتر AA انجام شده اند. در نهایت نتایج به این صورت است:
همانطور که مشاهده می کنید نتایج در دایرکت ایکس یازده از بازدهی کمتری بر خوردار اند. اما این مساله توجیهی قانع کننده دارد و آن اجرا نکردن فیلتر AA در دایرکت ایکس 9 است. سایت Hot Hardware این مطلب را ذکر کرده که با اجرای دایرکت ایکس یازده بدون فیلتر AA، عملکرد حدود 6.3 فریم از DX9 بالاتر بود. علاوه بر این، کیفیت تصویر دایرکت ایکس یازده بهتر از دایرکت ایکس 9 بوده!
تست با بازی Battle field: Bad Company 2 :
این بازی بر پایه موتور Frostbite ساخته شده است. یعنی همان موتوری که در نسخه قبلی Bad Company استفاده شده بود. این موتور ساخت شرکت DICE بوده و در نسل جاری کنسول ها استفاده می شود. نسخه کامپیوتری این بازی تغییرات زیادی کرده و ظاهرا طراحان، وقت زیادی را صرف ایجاد این تغییرات کرده اند. از جمله آن ها می توان به پشتیبانی از
DirectX 11 و پشتیبانی کامل از تکنولوژی های ATI Eyefinity و Nvidia 3D Vision را نام برد.
مشخصات حداقل سیستم توصیه شده به این شرح است. توجه داشته باشید که در تست ها DX10 هم مورد
بررسی قرار داده شده و شرایط آنها مانند تست قبلی است.
از تست های انجام شده این نتیجه را می توان گرفت که توان DX11 در پردازش تصاویر به خصوص در حوزه های عمق میدان، اعمال افکت های تصویری، نور پردازی، سایه زنی و ... بیشتر شده است. به طوری که اگر تصاویر در نور محیطی کم با هم مقایسه شوند، می بینید که تصویر DX9 مه گرفته و Fog است، اما تصویر DX11 بسیار بهتر است.
سخن پایانی:
عرضه دایرکت ایکس یازده به همراه ویندوز 7 بسیار مورد توجه قرار گرفت و تولید کنندگان بزرگ سخت افزار در صدد حمایت از آن برآمدند. اولین شرکتی که استفاده از DX11 را به طور انبوه روی محصولاتش شروع کرد، AMD بود که با این کار خود توانست درصد زیادی از فروش بازار را به دست آورد. هم اکنون Nvidia هم بر روی محصولات سطح بالای خود از DX11 استفاده می کند.
دایرکت ایکس یازده توانسته است پیشرفت های زیادی در زمینه رندر صحنه ها و ایجاد افکت های مختلف داشته باشد. اما بعضی افراد عقیده دارند که کیفیت DX11 فقط کمی بالا تر رفته و چندان چشمگیر نیست. در پاسخ باید گفت که DX11 هنوز جوان است و باید کمی منتظر ماند تا بازی ها پیشرفت کنند. احتمالا Crysis2 می تواند نتیجه نهایی را در مورد این API تا حدود زیادی معلوم کند. اما با توجه به بازی های کنونی می توان عملکرد DX11 را خوب ارزیابی کرد. برای به دست آوردن DX11 نیازی نیست که حتما پول زیادی خرج کنید. زیرا کارت های گرافیک ارزان قیمتی مانند 5450 و 5570 نیز می توانند این API را در اختیار شما قرار دهند.
منابع:
HotHardware.com
Wikipedia.com