Iniziamo con le basi: cos’è DirectX?
La sua storia risale alla metà degli anni Novanta, e l’idea di questo strumento è venuta alla mente degli specialisti Microsoft. DirectX non è altro che un insieme di funzioni API. Questa abbreviazione sta per Application Programming Interface, che traduciamo come Application Programming Interface. Traduce i comandi del sistema operativo, dei programmi e dei giochi nel “linguaggio” della scheda audio e video.
Per semplificare le cose, DirectX supporta semplicemente la generazione di grafica, audio e altre attività tipicamente associate al corretto funzionamento di giochi per computer o determinate applicazioni multimediali e strumenti professionali. L’introduzione delle librerie DirectX ha anche reso più facile e veloce per gli sviluppatori stessi la scrittura di giochi per varie specifiche. Pertanto, non dovrebbe sorprendere nessuno che questa soluzione abbia il pieno supporto sulla piattaforma Windows e sulle console Xbox.
salto generazionale
Per stare al passo con i progressi dell’hardware, anche il software deve tenere il passo. Questa regola si applica anche agli strumenti DirectX. Questo problema è meglio spiegato con un esempio, quindi diamo un’occhiata più da vicino alla transizione tra DirectX 10 e DirectX 11. Il primo è stato creato durante i giorni di Windows Vista e doveva essere una grande rivoluzione rispetto al suo predecessore. Il secondo è stato creato pensando a Windows 7, essendo il suo principale componente preinstallato.
Differenze significative a favore di 11 riguardavano i metodi di generazione delle immagini: rendering delle ombre, introduzione della tassellatura, supporto per testi con una risoluzione maggiore. L’API numero 11 ha anche introdotto il supporto per Shader Model 5.0. Ciò che è importante, tuttavia, è che a Eleven sia stato consentito di utilizzare correttamente il potenziale dei processori multi-core nei giochi e nelle applicazioni professionali.
Nella fase iniziale di DX11, il salto grafico nei giochi non è stato immediatamente colossale. Ciò è accaduto per il semplice fatto di implementare una soluzione moderna su motori grafici obsoleti. Dovreste anche prestare attenzione alla differenza di gioco su entrambe le versioni, che è dovuta anche all’età dell’equipaggiamento, ma sono ancora molti i fattori che determinano l’altezza e la stabilità dei frame al secondo.
Per utilizzare una versione specifica di DirectX in un determinato gioco, devono essere soddisfatti determinati criteri:
- Innanzitutto, DirectX deve essere installato sul sistema,
- Il sistema operativo Windows in uso deve essere compatibile con questa versione di DirectX,
- La scheda video installata sul PC deve supportare alcune librerie DirectX,
- Il gioco deve definire i tre elementi di cui sopra come disponibili per poterli utilizzare.
Perché potremmo voler cambiare la versione di DirectX
Come abbiamo già stabilito, un supporto adeguato per una particolare versione di DirectX è assolutamente essenziale per il corretto funzionamento di un gioco o di un’altra applicazione che utilizza le sue librerie. Inoltre, le patch e le versioni più recenti di DirectX sfruttano al meglio il potenziale dei moderni chip e processori grafici. Anche il sistema operativo è critico. In breve, la situazione è la seguente:
- Windows XP – Sviluppo API interrotto su DirectX 9c,
- Windows Vista – Introduce DirectX 10 e versioni successive con correzioni 10.1. Dopo l’installazione del Service Pack 2, è stato aggiunto DX11,
- Windows 7, 8, 8.1 – Supporta tutte le versioni precedenti di DirectX. 11 – il loro componente integrato,
- Windows 10, 11 – DirectX 12 è stato rilasciato ed è parte integrante del sistema.
DirectX è compatibile con le versioni precedenti. La nuova variante mantiene le caratteristiche introdotte dai predecessori. Ecco perché Windows 10 va d’accordo facilmente con i giochi delle vecchie DirectX 9. Tuttavia, non sempre tutto fila liscio e a volte puoi incontrare ostacoli sotto forma di errori o file mancanti in relazione a DirectX 9, ad esempio un messaggio su D3d9.dll.
Un problema separato sono i giochi scritti per due versioni di DirectX o quando il supporto per la successiva è stato aggiunto dopo un po’ di tempo. Un esempio è il popolare Fortnite, che offre i numeri API del giocatore 11 e 12. L’opzione più recente è il supporto adeguato per DLSS e ray tracing, che i possessori di schede Nvidia Turing e Ampere apprezzeranno. Tuttavia, dopo aver eseguito DX11, il gioco potrebbe generare fps massimi inferiori, ma la media del frame rate e la stabilità del frame sono molto migliori. Possiamo vedere una tendenza simile, ad esempio, in Battlefield V.
E ora veniamo al punto, ovvero alle limitazioni hardware sotto forma di GPU. Se la scheda video non supporta questa versione di DirectX, non eseguiremo il gioco con il supporto di DirectX. Un esempio tangibile è il titolo Dirt 5, basato esclusivamente su DirectX 12. Non eseguiremo il gioco su schede della serie Nvidia Kepler. Teoricamente, queste GTX 760 supportano ufficialmente DX12, ma a un esame più attento, vedremo che questo vale solo per alcune librerie. Inoltre, c’è ancora il problema dell’evoluzione delle API e dei driver delle schede video, dove i prodotti della serie Kepler e quelli più vecchi hanno già terminato la loro vita.
Come cambiare la versione di DirectX?
In realtà ci sono diversi modi. Il modo più semplice per farlo è visualizzare le opzioni di gioco disponibili nella scheda Grafica. In Battlefield V, possiamo facilmente passare da DX11 a 12, anche se questa manovra richiede di ricaricare l’applicazione ogni volta. Vale la pena sottolineare qui che, ad esempio, sulle schede della serie Nvidia Pascal (GTX 1060, 1070, ecc.), BFV funziona leggermente meglio con Eleven. D’altra parte, i giocatori con Radeon RX 570, 580, ecc. simili avranno maggiori probabilità di gravitare verso la DX12.
Un altro modo per sostituire DirectX è cercare nella cartella del gioco stessa. Old Crysis potrebbe essere eseguito da un eseguibile autonomo con diverse versioni di DirectX, anche se un metodo più avanzato sarebbe quello di modificare manualmente il file di configurazione del gioco. Aperto nel blocco note, ti consente di modificare molte impostazioni, inclusa la versione di DirectX. Windows 7 aveva anche la possibilità di eseguire un’applicazione in modalità compatibilità XP, sebbene questa manovra non avesse sempre avuto successo.
Succede anche che la stessa community di modding venga in soccorso. Questo crea eseguibili che introducono una versione più recente di DirectX in un gioco scritto per versioni molto più vecchie. Un ottimo esempio potrebbe essere Unreal Tournament del 1999. Grazie alla community di fan, il gioco è stato arricchito con il supporto di DirectX 10. Un piccolo file copiato nella directory di gioco funziona anche con Deus EX o Clive Barker’s Undying. Questa piccola procedura incide leggermente sul metodo di filtraggio delle texture, ma soprattutto permette di eseguire il titolo senza tagli bruschi su hardware moderno. Sebbene oggi UT funzioni perfettamente anche dal livello 3Dfx, l’ho recentemente testato sulla GTX 1060.
Infine, abbiamo programmi esterni che obbligano l’applicazione a funzionare con una versione specifica di DirectX. I risultati di questa procedura possono essere vari e spesso insoddisfacenti. Qui vedo un uso limitato solo per app di base o giochi precedenti. Personalmente, non ho mai visto nessuno eseguire Forza Horizon, scritto da zero per DX12, su una scheda grafica solo DX11 in questo modo.
In sintesi
Ah, ricordo molto bene la frustrazione che Crysis 3 girava solo su schede che supportano DirectX 11. La frustrazione è ancora maggiore perché c’era anche una versione Xbox 360 che è stata rilasciata basata sulle librerie DirectX 9 di Windows 7 che non lo facevano librerie DirectX 12 supportate. Microsoft ha promesso di aggiungere questa opzione in seguito per la finestra usurata, ma il progetto è stato abbandonato.
Come puoi vedere dagli esempi sopra, i problemi di compatibilità sulla piattaforma PC con i giochi sono un argomento del fiume. Tuttavia, l’importante è che se incontriamo problemi, non è il nome DirectX, ma l’età del nome, scritto pensando a un sistema operativo completamente diverso. I giochi dell’era di Windows 98 o anche di XP sono difficili da eseguire su un sistema operativo più recente, perché potrebbero mancare molti componenti più importanti di Direct stesso. In definitiva, sembra che la cosa più importante quando si gioca con hardware e software sia la pazienza per sperimentare.
Lascia un commento