DirectX este o colecție de API-uri sau interfețe de programare a aplicațiilor, utilizate de software pentru a reda conținut multimedia și a comunica cu hardware grafic. Componenta principală DirectX API, Direct3D, gestionează comunicațiile între software și hardware grafic. Deoarece toate componentele hardware sunt diferite, utilizarea unei biblioteci standardizate de funcții și apeluri pentru a comunica cu placa grafică accelerează dezvoltarea jocului. Aceasta se numește abstractizare hardware și este sarcina principală a API-ului.
Gândiți-vă la mașini: dacă puteți conduce o mașină, le puteți conduce pe toate. Pedalele de gaz și de frână sunt în același loc, iar volanul se rotește în aceeași direcție și ușile se deschid spre exterior. S-ar putea să existe unele diferențe minore în caracteristicile non-critice, cum ar fi radioul, dar în general știți la ce să vă așteptați. DirectX și Direct3D sunt așa, permițând dezvoltatorilor să interfețe cu o gamă largă de hardware folosind aceleași instrumente. Și din moment ce majoritatea dezvoltatorilor de jocuri utilizează biblioteca standard a Direct3D, orice modificare a API-ului poate avea impact asupra jucătorilor și a programatorilor.
Ce este nou în DirectX 12?
Fiecare actualizare majoră a DirectX și Direct3D aduce noi caracteristici și dezvoltări. Totuși, Direct3D 12 a adus unele modificări semnificative. De fapt, ar putea introduce o nouă zonă a API-urilor grafice de nivel scăzut care vor schimba modul în care sunt dezvoltate jocurile.
Abstracție hardware la nivel inferior
DirectX 12 permite acum dezvoltatorilor să se apropie de „metalul” hardware-ului grafic al utilizatorilor lor, oferind acces la caracteristici indisponibile anterior pentru dezvoltatori. Expunerea hardware-ului de nivel inferior înseamnă că dezvoltatorii calificați pot scrie un cod mai eficient care se execută mai repede. Mai exact, dezvoltatorii pot îmbunătăți optimizarea cu performanțe mai rapide multi-thread și o utilizare mai eficientă a procesorului. Acest lucru ar putea permite optimizări la nivel scăzut, similare cu cele pe care le vedem în jocurile de consolă, unde jocurile sunt reglate pentru hardware-ul extrem de specific mediu, obținând performanțe care ar fi imposibile fără astfel de optimizări hiper-specifice.
Anterior, DirectX 11 oferea doar un nivel destul de ridicat de abstractizare a hardware-ului, ceea ce simplifică foarte mult procesul de codare. De fapt, aceasta este întreaga idee din spatele a ceea ce face API-urile hardware atât de puternice. Dar a însemnat, de asemenea, că oportunitățile de reglare fină a codului în funcție de caracteristicile hardware specifice erau mai puțin frecvente. Blogul dezvoltatorului Microsoft prevede câteva informații minunate despre cum, exact, DirectX 12 realizează acest lucru.
Performanță multicore îmbunătățită
În ultimii ani, jucătorii au ajuns să accepte că procesoarele multicore nu sunt la fel de utile pentru jocuri. În schimb, jocurile se bazează pe performanțe rapide cu un singur fir. Acest lucru se întâmplă parțial, deoarece DirectX 11 nu permite o paralelizare atât de mare. Mai multe fire de procesare CPU pot trimite comenzi de desen simultan. Cu toate acestea, toate vor fi procesate într-o coadă, una câte una. DirectX 12 ridică această limitare, permițând procesorelor multicore să trimită instrucțiuni simultane către GPU, deschizând ușa pentru performanțe mai mari pe procesoarele multicore.
Trageți reducerea cheltuielilor generale
În DirectX 11, o parte semnificativă din puterea procesorului este cheltuită interpretând instrucțiunile API, mai degrabă decât executând codul jocului. DirectX 12 reduce cheltuielile API, eliberând resurse de calcul pentru rularea codului jocului. Aceasta înseamnă că jocurile cu CPU limitate ar putea vedea performanțe mai mari, deoarece puterea CPU este eliberată pentru a gestiona codul jocului. Majoritatea jocurilor nu sunt limitate la procesor astăzi, dar este posibil ca jocurile mai noi să împingă acest plic mai departe.
Multiadaptor explicit
DirectX 12 are puterea de a combina mai multe GPU-uri („adaptoare de afișare” AKA) într-o singură unitate logică. Această caracteristică, denumită Explicit Multiadapter, permite ca mai multe GPU-uri să fie instruite de software, cum ar fi un singur GPU. De exemplu, cu DirectX 12, GPU-ul integrat pe mașina dvs. poate acum să eticheteze echipa cu GPU-ul dvs. discret, oferindu-și propria putere de procesare. Un suport mai mare pentru API poate însemna, de asemenea, o fiabilitate și o eficiență mai mari în configurațiile SLI / CrossFire multi-GPU. În testarea Microsoft utilizând grafică integrată în tandem cu grafică discretă furnizate a marginea mică, dar vizibilă în repere.
Cât contează DirectX 12 pentru jucători?
La fel ca o mulțime de îmbunătățiri incrementale, jucătorii nu vor vedea diferențe de noapte și de zi între DirectX 11 și DirectX 12. Noile caracteristici nu aduc noi opțiuni de redare care uimesc utilizatorii. Nici nu veți vedea un salt de 100 FPS între cele două standarde. Dar aceste creșteri în eficiență vor duce în cele din urmă la performanțe mai mari pe hardware mai puțin puternic, îmbunătățind puterea computerului fără a-și actualiza hardware-ul.