حتما تا به حال نام DirectX را زیاد شنیده اید. گاهی اوقات هنگام نصب بعضی بازی ها و نرم افزارها، مجبور شده اید که DirectX را هم نصب کنید. یا اخیرا در مورد پشتیبانی DirectX 11 در کارت های گرافیک زیاد شنیده اید. پس احتمالا برای شما هم این سوال پیش آمده که DirectX چیست و در واقع چه کاری انجام می دهد؟
عده ای از شما نیز با وظیفه ی دایرکت ایکس آشنا هستید و می خواهید بدانید که چه چیز هایی به Direct X11 اضافه شده است. در این مقاله سعی داریم که به این سوالات پاسخ دهیم. پس اگر پاسخ این سوالات برای شما جذاب است، ادامه مطلب را دنبال کنید.
یکی از رابط های برنامه کاربردی یا API هایی که همواره بسیار مورد توجه تولید کنندگان سخت افزار و برنامه نویسان بوده، DirectX است. اما این توجه به خاطر چیست؟ در گذشته برنامه نویسان سیستم عامل داس (DOS) مجبور بوده اند که برای نوشتن برنامه های خود، مستقیما با سخت افزار ها در ارتباط باشند.
نتیجه هم این بود که برنامه های آنان، فقط با چند سخت افزار خاص اجرا می شد و این مساله کار را بسیار سخت می کرد. اما از زمانی که مایکروسافت DX را ابداع کرد، کارها بسیار راحت تر شد و حالا این دایرکت ایکس است که مسئول برقراری ارتباط بین سخت افزارها و نرم افزارها است. پس این که دایرکت ایکس به این اندازه مورد توجه باشد، چندان دور از ذهن نیست.
حالا که با دایرکت ایکس آشنا شدید، وقت آن رسیده که به بررسی DX 11 بپردازیم؛ رابطی که این روز ها بسیار مورد توجه است. اما به راستی نکات مثبت دایرکت ایکس یازده چیست؟
دایرکت ایکس یازده در واقع یک مجموعه کامل تر از این رابط است که بهبودهایی در زمینه Tessellation و Multi-Threading پیدا کرده. همچنین دو الگوریتم جدید برای متراکم کردن و فشرده سازی تکسچرها، بیشتر کردن Cache مربوط به تکسچرها و ارائه Shader Model5، باعث شده اند تا پردازش تصویر و سرعت دایرکت ایکس یازده بهبود یابد. به این موارد، سیستم Direct Compute را اضافه کنید تا به قدرت DX11 پی ببرید. اگر به مواردی ناآشنا بر خوردید نگران نباشید؛ در ادامه آنها را هم به شما معرفی خواهیم کرد.
Multi-Threading در چه حال است؟
گاهی اوقات لازم می شود که هر برنامه و بازی دو یا چند عمل را به صورت هم زمان انجام دهد؛ بدون این که از دسترس خارج و به قول معروف Not Responding شود. برای مثال در بازی ها وقتی شما در حال تیر اندازی هستید، از ویژگی مولتی تریدینگ استفاده می کنید. چون هم حرکات شما پردازش می شود و هم حرکات و اعمال دشمنان شما.
پشتیبانی Multi-Threading سالها است که توسط انویدیا و ای تی آی صورت می گیرد و به پردازنده های چند هسته ای اجازه می دهد به طور مستقیم و به صورت موازی با پردازنده گرافیکی یا GPU ارتباط یابند. اما دایرکت ایکس یازده این امر را یک گام به جلو برده و جا را برای Thread های بیشتر باقی می گذارد.
حالا درایور گرافیک، برنامه و دایرکت ایکس Runtime می توانند در Thread های جدا قرار گیرند. بنابر این اگر کیفیت تکسچرها در همان حد دایرکت ایکس 10 باقی بماند، می توان عملکرد بهتری را در مولتی تریدینگ های سنگین شاهد بود.
سلام بر Tessellation:
لازم است اول به توضیح Tessellation (تسلیشن) بپردازیم: مدل های سه بعدی از راس های مختلفی تشکیل شده اند. این مدل ها درست دیده نمی شوند، مگر آن که فواصل بین راس هایشان پر شوند و به این کار Tessellation می گویند. این نکته را بدانید که مدل های پرجزئیات تر از راس های بیشتری تشکیل شده اند و در نتیجه به Tessellation بیشتری نیاز دارند.
کاراکتر ها در بازی های امروزی واقعا پیچیده و گسترده شده اند و طراحان تمام تلاش خود را برای خلق مدل هایی با جزئیات بالاتر به کار می گیرند. در گذشته شاهد این بودیم که این جزئیات فقط در میان پرده های بازی دیده می شد و در بازی خبری از آن ها نبود.
علت هم آن بود که اگر مدل ها را با جزئیات بالا وارد بازی می کردند، بار سنگینی اعمال می شد و افت فریم دهی قطعی بود. اما در چند سال اخیر شاهد بهبود زیادی در کیفیت بازی ها هستیم چون هم قدرت محاسبه افزایش یافته
و هم الگوریتم های جالب است بدانید که Tessellation سخت افزاری برای اولین بار در سال 2001 توسط شرکت ای تی آی ابداع شد اما چون در آن زمان API ها از آن پشتیبانی نمی کردند، با استقبال زیادی از سوی توسعه دهندگان مواجه نشد. امروزه با کمک دایرکت ایکس یازده شرایط عوض شده چون (مانند دایرکت ایکس 10 و 9) از Tessellation سخت افزاری به عنوان یک استاندارد پشتیبانی می کند. پس به Tessellation سخت افزاری بیشتر توجه کنید.
ادامه مطلب