DirectX е колекция от API или интерфейси за програмиране на приложения, използвани от софтуер за изобразяване на мултимедийно съдържание и комуникация с графичен хардуер. Основният компонентен API на DirectX, Direct3D, управлява комуникациите между софтуера и графичния хардуер. Тъй като хардуерът е различен, използването на стандартизирана библиотека от функции и повиквания за комуникация с графичната ви карта ускорява развитието на играта. Това се нарича хардуерна абстракция и това е главната задача на API.

Помислете за автомобилите: Ако можете да шофирате с една кола, можете да ги карате почти всички. Педалите на газта и спирачките са на едно и също място, а воланът се върти в същата посока, а вратите се отварят навън. Възможно е да има някои незначителни разлики в некритичните характеристики като радиото, но като цяло знаете какво да очаквате. DirectX и Direct3D са такива, които позволяват на разработчиците да взаимодействат с широк набор от хардуер, използвайки същите инструменти. И тъй като повечето разработчици на игри използват стандартната библиотека на Direct3D, всички промени в приложния програмен интерфейс (API) могат да повлияят на геймърите и програмистите.

Какво ново в DirectX 12?

Всяко основно обновяване на DirectX и Direct3D носи нови характеристики и разработки. Direct3D 12 обаче доведе до някои особено значими промени. Всъщност може да се появи нова област от API за графики на ниско ниво, които ще променят начина, по който се развиват игрите.

По-ниско ниво хардуер абстракция

DirectX 12 вече позволява на разработчиците да се доближат до "метала" на графичния хардуер на своите потребители, като предоставят достъп до функции, които преди това не са били налични за разработчиците. Излагането на хардуер на по-ниско ниво означава, че квалифицираните разработчици могат да пишат по-ефективен код, който се изпълнява по-бързо. По-конкретно, разработчиците могат да подобрят оптимизацията с по-бърза работа с множество резба и по-ефективно използване на процесора. Това би могло да позволи оптимизации на ниско ниво, подобни на тези, които виждаме в конзолата за игри, където игрите са настроени за изключително специфичен хардуер от средния клас, като се очаква постигането на резултати, което би било невъзможно без такива хиперспецифични оптимизации.

Преди това DirectX 11 предлагаше доста високо ниво на хардуерно абстракция, което значително опростява процеса на кодиране. Всъщност, това е цялата идея зад това, което прави хардуерните API толкова мощни. Но това също означава, че възможностите за коригиране на кода срещу специфични хардуерни характеристики са по-рядкост. Блогът на разработчиците на Microsoft предоставя някои чудесни идеи как точно DirectX 12 постига това.

Подобрена многоканална ефективност

През последните няколко години геймърите са дошли да приемат, че многоядрените процесори не са толкова полезни за игрите. Игрите вместо това разчитат на бързи резултати с едно резба. Това се случва отчасти, защото DirectX 11 не позволява толкова много паралелизация. Многобройните нишки на процесора могат да подават съставни команди едновременно. Все пак те все пак ще бъдат обработвани в опашка, един по един. DirectX 12 повдига това ограничение, което позволява на многоядрените процесори да изпращат едновременни инструкции към GPU, като отварят вратата за по-голяма производителност на многоядрени процесори.

Намаляване на намаляването на режима на повикване

Под DirectX 11 значителна част от мощността на CPU се изразходва за тълкуване на инструкциите на API, вместо да изпълнява код на играта. DirectX 12 намалява режийните разходи за приложния програмен интерфейс (API), освобождавайки изчислителните ресурси за изпълнение на кода на играта. Това означава, че игри с ограничено CPU могат да видят по-голяма производителност, тъй като тяхната мощност на процесора се освобождава, за да се справи с кода на играта. Повечето игри днес не са ограничени от процесора, но е възможно новите игри да накарат този плик да продължи.

Explicit Multiadapter

DirectX 12 има властта да комбинира няколко GPU (AKA "дисплейни адаптери") в една логическа единица. Тази функция, наречена Explicit Multiadapter, позволява няколко графични процесора да бъдат инструктирани от софтуер като един GPU. Например, с DirectX 12 интегрираният графичен процесор на вашата машина вече може да маркира екипа с дискретния си графичен процесор, като си дава своя собствен процесор. По-голямата поддръжка на приложния програмен интерфейс (API) може да означава по-голяма надеждност и ефикасност при настройките на множество GPU SLI / CrossFire. В тестовете на Microsoft, използващи интегрирана графика в тандем с дискретни графики, се предоставя малък, но забележим ръб в референтните стойности.

Колко струва DirectX 12 въпрос за геймърите?

Подобно на много подобрения, геймърите няма да виждат разлика между нощните и дневните разлики между DirectX 11 и DirectX 12. Новите функции не носят нови опции за рендиране, които уау потребители. Нито ще видите скок от 100 FPS между двата стандарта. Но тези печалби от ефективност в крайна сметка ще доведат до по-добро представяне на по-малко мощен хардуер, подобрявайки мощта на вашия компютър без да надграждате хардуера му.