Каква е разликата между DirectX 11 и DirectX 12
DirectX 12 официално бе представен заедно с Windows 10 през 2015 година. С обявяването на DirectX 12 започна нова ера за геймърите и разработчиците на игри. Способен да намали натоварването на процесора и същевременно увеличава производителността на графичния процесор, DirectX 12 много бързо придоби популярност.
Какво представлява DirectX?
DirectX е набор от API, използвани за обработка на задачи, свързани с мултимедия. Това включва програмиране на игри, базирани на Microsoft платформи, като Windows и Xbox. Нека разгледаме какво представлява API.
Интерфейсът за програмиране на приложения (API) прави възможно две или повече програми да комуникират помежду си. Представете си, че това е телефон. Ако майка ви ви изпрати текстово съобщение съдържащо списък с хранителни продукти, телефонът ви ще получи тези данни и ще ви ги покаже. Това основно е API.
Каква е разликите между DirectX 11 и DirectX 12?
Казано, най-просто DirectX 12 е най-новата версия на DirectX. Една от най-забележимите разлики между двете е как взаимодействат с вашите компоненти за компютър. Повечето игри, разработени с DirectX 11, използват само между две и четири процесорни ядра. Едно от тези ядра обикновено е предназначено да насочва действията на графичния ускорител.
След това играта използва останалите ядра, за да се справи с различни интензивни настройки на процесора. От друга страна DirectX 12 разпределя работното натоварване на процесора между множество ядра и позволява на всяко ядро да взаимодейства с графичния процесор.
DirectX 12 предоставя и някои много интересни функции. Те включват асинхронни изчисления и обекти на конвейер (PSO). Асинхронните изчисления увеличават използването на графичния чип, като позволяват паралелна работа на множество работни натоварвания. Това по същество отключва пълния потенциал на графичния процесор.
Освен рендирането на графики, вашият графичен процесор отговаря за обработката на широк набор от други задачи, като например изпълнение на алгоритми за машинно обучение. С DirectX 11 графичният процесор може да изпълнява само една от тези задачи наведнъж и в определен ред. Когато това се случи, производителността се влошава, тъй като всичките ви GPU ресурси не се използват.
DirectX 12 също включва PSO. С DirectX 11, когато геометрията на дадена игра се изпраща на графичния процесор за изобразяване, различни хардуерни настройки са отговорни за интерпретирането и изобразяването на тези данни. Това се нарича графичен тръбопровод и е потокът от входни и изходни данни, които се появяват, когато вашият GPU изобразява кадри. Графичният тръбопровод на DirectX 11 обаче не е перфектен.
За да заобиколи това, DirectX 12 въведе PSO, които са обекти, които описват състоянието на целия графичен конвейер. PSO са като бутилка, която съдържа различните състояния и компоненти, необходими за създаване на изображение. Това позволява на GPU да обработва предварително всяко зависимо състояние, вместо да се налага непрекъснато да преизчислява състоянията въз основа на текущия графичен тръбопровод.
Това значително намалява натоварването на процесора, установено в DirectX 11, и подобрява производителността. И така, как всъщност изглежда тази разлика? Е, според Microsoft, DirectX 12 намалява натоварването на процесора с до 50 процента и подобрява производителността на графичния процесор с цели 20 процента. Въпреки, че това са някои съществени подобрения, това не означава, че ще видите същите резултати.
Защо преминаването от DirextX 11 към DirectX 12 не е лесно?
DirectX 11 беше обявен за първи път за Windows Vista на 27 октомври 2009 г. Докато DirectX 12, бе обявен през 2015 г., а това е шестгодишна разлика между DirectX 11 и DirectX 12. През това време са разработени хиляди игри, използващи DirectX 11. За съжаление, преминаването от DirectX 11 към DirectX 12 е всичко друго, но не и лесно.
DirectX 11 е това, което се нарича API от високо ниво. Казано по-просто, API-тата на високо ниво са по-лесни за работа, които се използват от разработчици. Като резултат се получават стабилни игри. От друга страна, DirectX 12 е API от ниско ниво и е различно поколение в сравнение с DirectX 11. Въпреки че позволява на разработчиците да прецизират оптимизацията на детайлно ниво, той също така изисква обширни познания за използване.
Като се има предвид това, игра, разработена в DirectX 12, може да завърши с по-лоша производителност в зависимост от познанията на разработчика за API. Има подобрения, които идват с DirectX 12, но всъщност се свежда до това колко добре един разработчик може да го внедри. Поради тази причина много разработчици избират да се придържат към API от високо ниво като DirectX 11.
Кое поколение DirectX да изберете?
Отговорът зависи от няколко неща, като каква игра се опитвате да стартирате. Например, Guild Wars 2 работи на DirectX 11. Дори ако вашата операционна система и хардуер използват DirectX 12, няма да имате опцията да изберете DirectX 11 в Guild Wars 2, защото играта не го поддържа. Това е изцяло решение на разработчика.
Има обаче някои игри, които поддържат както DirectX 11, така и DirectX 12. Например Fortnite. Чрез настройките на играта потребителите могат да превключват между двете версии. За да обобщим, не всяка игра поддържа както DirectX 11, така и DirectX 12. За тези, които поддържат, превключете между двете и сами определете коя се представя по-добре на вашия компютър.
Дали можете да избирате между DirectX 11 и DirectX 12 също ще зависи от вашия хардуер. Почти всеки модерен графичен процесор ще поддържа DirectX 12, но същото не може да се каже за по-старите графични процесори като Radeon HD 4870. Пуснат през 2008 г., този графичен процесор поддържа само до DirectX 10. Това означава, че няма да може да играете повечето модерни игри, които работят с DirectX 11 и DirectX 12.
Дали DirectX 12 е правилният избор за вас?
Като цяло, преминаването от DirectX 11 към DirectX 12 не е толкова трудно, колкото звучи. Зависи от различни фактори като хардуер, софтуер, операционна система и дали играта изобщо поддържа и двете поколения. Всичко това трябва да се вземе предвид, преди да се вземе решение, и това вероятно ще важи и за бъдещите поколения на DirectX.
Оставете коментар