DirectX 12 جدیدترین API گرافیکیست که به ویندوز 11 قدرت میبخشد، اما بسیاری از بهترین بازیها هنوز یا روی DirectX 11 اجرا میشوند یا گزینهای برای تعویض و جابجایی بین دایکرت ایکس ها دارند. واقعا کدام را باید انتخاب کنید؟
اگرچه اکثر به روز رسانی های DirectX تکراری هستند، DirectX 12 نشان دهنده یک تغییر عظیم برای API است که مایکروسافت برای چندین دهه در حال توسعه است. این می تواند عملکرد بازی های شما را به شدت بهبود بخشد، و دارای چند ویژگی منحصر به فرد است که DirectX 11 به آنها دسترسی ندارد.
APIهای گرافیکی برابر نیستند
در ابتدا بدانیم که DirectX چیست؟ DirectX یک رابط برنامه نویسی کاربردی (API) است که توسط مایکروسافت برای ویندوز و ایکس باکس توسعه یافته است. API گرافیکی واسطهای است که ارسال دستورالعملها را از نرمافزار به سختافزار داخل شما تسهیل میکند.
در روزهای اولیهی ساخت کامپیوترها، دستورالعمل ها مستقیماً به سمت سخت افزار میرفتند. با این حال، از آنجایی که برنامه نویسی بازیها پیچیدهتر و اقدامات امنیتی سفت و سخت تر شدهاند، APIها ستون فقرات GPUی شما بودهاند که چه کارهایی را انجام دهند.
اما رابط برنامه نویسی برنامه گرافیکی (API) چیست؟ یک API گرافیکی دستورات را از نرم افزار (بازی شما) به دستورالعمل های استاندارد شده برای سخت افزار شما (کارت گرافیک و پردازنده شما) ترجمه میکند یا به نوعی سهل الوصول و سهل الاجرا می کند.
با این حال، همه APIهای گرافیکی یکجور و در یک حد ساخته نمی شوند. به طور مثال در برخی از تجزیه و تحلیلهادر مورد Vulkan API مشاهده شد که عملکرد بهتری نسبت به DirectX در اکثر بازی ها ارائه می دهد. لودینگ کلی API می تواند نشان دهنده تفاوت قابل توجهی در عملکرد در حین بازی باشد. بنابراین اگرچه ممکن است استفاده از هرکدام از نسخههای DirectX خوب به نظر برسد ولی می تواند یکی از مهمترین تنظیمات برای بهینهسازی باشد.
DirectX 12 در مقابل DirectX 11: تفاوت در چیست؟
بین DirectX 11 و DirectX 12، مهمترین تفاوت این است که DirectX 11 یک API سطح بالاست (به لزوما به معنای کلمه)، در حالی که DirectX 12 یک API سطح پایین است. بدانید لایه های مختلفی بین بازی(نرمافزار گیم) و سختافزار شما وجود دارد. API های سطح پایین به سخت افزار نزدیکتر هستند، در حالی که API های سطح بالا دورتر و عمومیتر هستند.
این یک تفاوت بسیار مهم بین DirectX 11 و DirectX 12 است. به طور خلاصه، DirectX 12 به توسعه دهندگان بازی اجازه می دهد تا بهینهسازیهای نزدیک به سخت افزار را هدف قرار دهند و انجام دهند و هزینههای اضافی ناشی از برنامه نویسی اضافه برای API و درایور گرافیک را کاهش دهند. البته که به نوبه خود، کار با توسعه دهندگان نیز دشوارتر خواهد بود.
در زمان عرضه، DirectX 12 در واقع عملکرد کیفی کمی کمتر از DirectX 11 را نشان داد که عمدتاً به دلیل پیچیدگی آن است. با این حال، توسعه دهندگان و برنامهنویسان گرافیکی، DirectX 12 را مستقیماً در چند سال گذشته هدف قرار دادهاند و بهینه سازی های بیشتری را در نظر گرفته و عرضه کردهاند. در ادامه به این خواهیم رسید که، DirectX 12 در اکثر بازی ها بهتر از DirectX 11 عمل میکند.
یکی دیگر از تغییرات قابل توجه در DirectX 12 محاسبات موازی است. DirectX 11 عملیات محاسباتی را به صورت سریالی مدیریت می کند، به این معنی که یک صف از عملیات وجود دارد که به ترتیب اجرا میشوند. محاسبات موازی این گزینه را برای توسعه دهندگان باز میگذارد تا همزمان چندین محاسبه را در صف اجرا به صورت موازی قرار دهند و کارایی عملیات را به شدت بهبود بخشند.
در واقع، DirectX 12 امکان عملیات ناهمزمان را باز میگذارد. این شبیه به محاسبات موازی است، اما به طور دقیق همان نیست. محاسبات ناهمزمان به سختافزار شما اجازه میدهد تا بدون انتظار برای تکمیل عملیات دیگر، به عملیات خود ادامه دهد و دستورات دیگر را نیز اجرا کند.
برای مثال، CPUی شما میتواند یک دستور ابتدایی را برای دریافت بافتها از RAM پردازش کند و به اجرای عملکرد دیگری (مثل هوش مصنوعی برای یک کاراکتر) بدون منتظر ماندن برای اتمام دستورالعمل RAM ادامه دهد. این اولویتبندیها میتوانند بخشهای کوچک تاخیر را در هزاران دستور ارسال شده و در صف اجرا، کاهش دهند، و باعث میشوند بازیهای شما در کل بسیار سریعتر اجرا شوند.
در نهایت، DirectX 12 همچنین از طیف وسیعی از قابلیتهای DirectX 12 Ultimate پشتیبانی میکند. به طور مثال شامل Ray Tracing و Variable Rate Shading و چندین ویژگی بصری و عملکردی هستند.
DirectX 12 در مقابل DirectX 11: عملکرد
تفاوت های فنی زیادی بین DirectX 11 و DirectX 12 وجود دارد، اما مقایسهی عملکردی میتواند مهمترین آن باشد. همانطور که در نمودار بالا می بینید، تقریبا همیشه عملکرد بهتری با DirectX 12 نسبت به DirectX 11 دارید، بنابراین شاید بهتر باشد از API جدیدتر استفاده کنید.
البته که باید بگوییم “تقریبا” API تنها عامل عملکرد بهتر نیست. برخی از بازیها مزایای زیادی در استفاده از DirectX 12 نمیبینند به دلیلی اینکه برخی از بازیها بیشتر از سایرین از بهینهسازیهای سطح پایین سود میبرند.
به عنوان مثال، Dying Light 2 اساساً هیچ تغییری در عملکرد ندارد. اما Civilization VI که دارای حجم برنامهنویسی بسیار زیادی از هوش مصنوعی است و از محاسبات ناهمزمان بهره میبرد، شاهد تغییر عظیمی میشود. بازیهایی مثل Shadow of the Tomb Raider و Tiny Tina’s Wonderlands تقریبا جایی در وسط قرار دارند.
باید در نظر داشت که بازیها تنها عامل مقایسه نیستند. نتایج بالا با AMD RX 7900 XTX که از نسل اخیر AMD است جمع آوری شد. کارتهای گرافیک و پردازندههای جدیدتر نسبت به نسلهای قدیمیتر، از مزایای بیشتری از DirectX 12 بهره میبرند
با این حال، شبکه سختافزاری بسیار گستردهای وجود دارد و ما در مورد چندین نسل صحبت می کنیم که شاهد پیشرفت بودهاند. و این در حالیست که کارتهای گرافیکی که کمی بیش از یک دهه از عمرشان میگذرد، پیشرفت کمتری دارند.
آیا باید از DirectX 12 استفاده کنم؟
بازیهای بسیاری وجود دارند که از DirectX 11 و DirectX 12 پشتیبانی میکنند، از جمله Civilization VI، Control، Shadow of the Tomb Raider و Dying Light 2. بیشتر بازیها به طور پیش فرض از DirectX 11 برای مثلا سازگاری بیشتر سخت افزاری استفاده می کنند تا بازی روی هر سختافزاری براحتی اجرا شوند، اما خوب است که به حالت DirectX 12 تغییر پیدا کنند چون عمکرد بهتری خواهند داشت.
تنها اگر کامپیوتر شما با سخت افزاری قدیمی کار میکند که قدمت آن به 10 سال قبل برمیگرد، (سختافزار قدیمیتر) ممکن است روی DirectX 11 نرمتر و روانتر کار کند، یا DirectX 12 ممکن است اصلاً فایدهای نداشته باشد. با این حال، اکثریت قریب به اتفاق باید DirectX 12 را به دلیل ویژگی های گستردهتر و بهینهسازی بازی بهتر انتخاب کنند.
اگه میشه ادبیات مقاله رو عامیانه تر کنید که خوندنش راحت تر بشه
اصلا چیز پیچیده ای نداره. کجاهاش خیلی پیچیده شده بگید که پانویس برم.