DirectX 12 جدیدترین API گرافیکی است که ویندوز 11 را برای اجرای کامل بازهای ویدیوی بر روی PC تقویت میکند، اما بسیاری از بهترین بازی های رایانه شخصی هنوز هم یر روی DirectX 11 اجرا میشوند و برخی از آنها نیز گزینهای برای تعویض دارند. حالا برای این دسته از بازیها کدام مورد باید انتخاب کنیم؟ اگرچه اکثر بهروزرسانیهای DirectX تکراری هستند، اما DirectX 12 نشاندهنده یک تغییر بنیادی برای API است که مایکروسافت برای چندین دهه در حال توسعه آن است. این API میتواند عملکرد بازیهای شما را به شدت بهبود بخشد، و دارای چند ویژگی منحصر به فرد است که DirectX 11 به آنها دسترسی ندارد.
APIهای گرافیکی برابر نیستند
اگر بخواهیم به صورت کلی و ساده آن را برای شما تعریف کنیم، باید بگوییم که DirectX در واقع یک رابط برنامه نویسی برنامه گرافیکی یا به اختصار (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 نیز امکان عملیات ناهمزمان را در اختیار میگذارد. هرچند که این روش شبیه به محاسبات موازی است، اما آنها دقیقا با یکدیگر یکسان نیستند. محاسبات ناهمزمان به سخت افزار شما اجازه میدهد تا بدون انتظار برای تکمیل عملیات دیگر، به عملیات خود ادامه دهد. برای مثال، پردازنده مرکزی شما میتواند مقدمهای را برای دریافت بافتها از حافظه اجرا کند و به اجرای عملکرد دیگری (مثل هوش مصنوعی برای یک کاراکتر) بدون منتظر ماندن برای اتمام دستورالعمل حافظه ادامه دهد. این اولویتبندی میتواند بخشهای جزئی تاخیر را در هزاران مکان کاهش دهد، و همین خصوصیت باعث میشود بازیهای شما در کل بسیار سریعتر اجرا شوند.
در نهایت، DirectX 12 همچنین از طیف وسیعی از ویژگیهای DirectX 12 Ultimate پشتیبانی میکند. این ویژگیها شامل ردیابی پرتو یا همان RTX و سایه با نرخ متغیر، در میان سایر ویژگیهای بصری و عملکردی هستند که نتیجه نهایی کار را بسیار متفاوتتر میکنند.
DirectX 12 در مقابل DirectX 11: عملکرد
تفاوتهای فنی زیادی بین DirectX 11 و DirectX 12 وجود دارد، اما در نهایت این عملکرد است که حرف اول و آخر را میزند. همانطور که در نمودار پایین میبینید، تقریبا همیشه عملکرد بهتری با DirectX 12 نسبت به DirectX 11 دارید، بنابراین منطقا بهتر است از 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 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 را به دلیل ویژگیهای گستردهتر و بهینهسازی بازی بهتر انتخاب کنند.
مطالب مرتبط:
فقط vulkan
البته که نسخه 12 بهتره اما خیلی بازها هستند که چون متورشان را از اول با 11 نوشته اند با 12 مشکل دارند و لگ میزنند .
بین وولکان و DX12 چطور؟ کدومشون بهتر عمل میکنه؟ اساسا این رو هم توضیح بدید که اگه API یک واسط بین بازی و سخت افزاره پس درایور کارت گرافیک دقیقا چیکارست؟
ممنونم از شما
عملکرد تقریبا برابره ولی ولکان اوپن سورس هست و این خیلی بهش برتری میده
ما چیزی به نام شتاب دهنده گرافیکی داریم که بهش gpu میگن که وظیفه پردازش های گرافیکی رو از دوش پردازنده مرکزی یا همون cpu برمیداره چون سریعتر و کم مصرفتر انجامش میده
در قلب سیستم نرم افزاری چیزی به نام کرنل داریم که کنترل سخت افزار رو انجام میده مثل شتابدهنده ها هم گرافیکی هم عصبی هم ورودی هم خروجی هم رم وووو
درایور رو میتونی بخشی از کرنل فرض کنی که فرایند کنترل ان واحد رو پیاده سازی میکنه
نظام پنچره چیزی هست که کامپیوتر رو از ترمینال به محیط گرافیکی میبره (که تو ویلند یک لایبرری شد و کامپوزیتور انجامش میده)
برای کار با نظام پنجره یا کامپوزیتور نیاز به یک رابط داریم میتونی یک زبان برنامه نویسی گرافیکی فرضش کنی که میشه به اوپن جی ال و ولکان و متال و دایرکت ایکس اشاره کرد
پس اگر اول و اخر رو ببینی رابط و کامپوزیتور و درایور به ترتیب میشن واسطه بین بازی و شتابدهنده گرافیکی
ببخشید که دانشم کمه
گوگل دوست شماست: DX12 vs Vulkan
ولکان سریعتره شاید برای اینکه گرافیکش ضعیف تره .