Le API grafiche, come OpenGL e DirectX, fungono da ponte tra il software e l'hardware grafico utilizzato per giocare. Queste API forniscono metodi standardizzati per visualizzare la grafica 2D e 3D sullo schermo. Sono diventati fondamentali per lo sviluppo del gioco negli ultimi due decenni.

Motori come Unity offrono una scelta tra le API grafiche che usano, ma come dovresti scegliere l'opzione giusta per il tuo gioco? Unisciti a noi mentre confrontiamo OpenGL con DirectX per darti un'idea di quale di questi strumenti è il migliore per te.

DirectX vs. OpenGL: Panoramica delle caratteristiche principali

Fondamentalmente, sia DirectX che OpenGL condividono la stessa pipeline grafica e lo fanno da molti anni. Entrambe le API utilizzano punti chiamati vertici per costruire primitive grafiche complesse. Ogni vertice memorizza le proprie coordinate e altre informazioni importanti. Ma il modo in cui ciascuna libreria utilizza i vertici è diverso.

Possono svolgere funzioni simili, ma noterai la differenza tra OpenGL e DirectX se lavori con loro.

instagram viewer

DirectX vs. OpenGL: ambito API

Prima di andare molto oltre, è importante notare che, sebbene siano entrambe API grafiche, OpenGL e DirectX hanno ambiti diversi. OpenGL è un'API grafica di razza e questo significa che non si occupa di nient'altro che la grafica 2D e 3D. DirectX, d'altra parte, è una raccolta di API grafiche, audio, di rete e di altro hardware che funzionano tutte insieme.

In alcuni casi, OpenGL utilizzerà DirectX per eseguire funzioni che non può eseguire da solo. Il resto di questo articolo ignorerà questa differenza tra le due API, concentrandosi sugli elementi grafici di ogni strumento.

OpenGL vs. DirectX: piattaforme

OpenGL è un'API gratuita gestita da una società senza scopo di lucro chiamata Khronos Group, mentre DirectX è prodotto da Microsoft. DirectX funziona principalmente su Windows e Xbox, con altre piattaforme, come Linux, che ottengono lentamente supporto. OpenGL è multipiattaforma, il che lo rende utilizzabile per lo sviluppo di giochi su una vasta gamma di sistemi operativi e console di gioco.

DirectX vs. OpenGL: risorse hardware

DirectX lascia la gestione dell'hardware allo sviluppatore, dandoti la possibilità di allocare le risorse in modo efficiente, quando ne hai bisogno. OpenGL gestisce la gestione dell'hardware, ma questo può avere i suoi vantaggi, poiché non devi preoccuparti di gestire le risorse da solo.

DirectX vs. OpenGL: documentazione

L'accesso a una documentazione dettagliata può rendere lo sviluppo del gioco molto più semplice quando si lavora con le API. DirectX e OpenGL offrono documentazione regolarmente aggiornata e utili community di sviluppatori. Entrambe queste API ricevono grandi aggiornamenti annuali per garantire che offrano le migliori funzionalità disponibili.

Utilizzo di OpenGL vs. DirectX per lo sviluppo di giochi

Gli sviluppatori hanno realizzato molti giochi belli e ben ottimizzati sul mercato moderno utilizzando sia OpenGL che DirectX. Ci sono diverse cose che dovresti considerare quando scegli un'API grafica 2D/3D. Alcuni sviluppatori si affideranno semplicemente allo strumento con cui sono più a loro agio.

OpenGL o DirectX: piattaforme

Abbiamo già parlato delle piattaforme, ma questa è una considerazione cruciale per gli sviluppatori. Se vuoi creare giochi per Nintendo Switch, Playstation 4 o Linux, dovrai lavorare con OpenGL o un'altra API che li supporti. DirectX è realizzato per Windows e Xbox e ha una compatibilità limitata con altri sistemi.

OpenGL o DirectX: compatibilità del motore

La maggior parte degli sviluppatori di giochi utilizza motori come Unity e Unreal per creare i propri giochi, al giorno d'oggi. Entrambi questi motori supportano OpenGL e DirectX, così come altri motori di sviluppo di giochi multipiattaforma.

OpenGL o DirectX: facilità d'uso

Alcuni direbbero che è più facile lavorare con OpenGL rispetto a DirectX. Oltre alle risorse hardware, OpenGL gestisce solo la grafica, rendendola più semplice per natura. Il fatto che funzioni su più piattaforme semplifica anche il rilascio di giochi con questo requisito.

La facilità d'uso dell'API grafica non è così importante come una volta per gli sviluppatori di giochi. Con motori come Unity interfacciandosi con le API grafiche dietro le quinte, basta un clic di un pulsante per scambiare l'API che stai utilizzando. A meno che tu non stia creando un gioco da zero, è improbabile che noterai una differenza nella facilità d'uso di ciascuna API.

OpenGL o DirectX: funzionalità grafiche

A meno che tu non sia un caso marginale, è improbabile che vedrai un'enorme differenza nelle funzionalità che hai a disposizione tra queste API. Entrambi supportano le capacità della tua scheda grafica e questo cambierà solo se le GPU vedranno cambiamenti radicali nel futuro.

OpenGL o DirectX: prestazioni di gioco

C'è molto dibattito tra gli sviluppatori per quanto riguarda le prestazioni di queste API. È difficile immaginare che OpenGL o DirectX presenta differenze di prestazioni significative, sebbene sia comune l'affermazione che OpenGL è più fluido ed efficiente in linea.

L'unico modo per scoprire quale di queste API offre le prestazioni migliori è attraverso i test. Grazie alla compatibilità di Unity con entrambe le API, possiamo creare un progetto e testare un gioco di esempio con entrambe le API creare un benchmark delle prestazioni.

Questi test sono stati eseguiti con grafica 2D e 3D per garantire che le loro diverse pipeline non siano un fattore considerevole. Ogni test viene eseguito per 120 secondi di gioco regolare e vengono misurati i fotogrammi al secondo per determinare le prestazioni. Tutti i test sono stati condotti sullo stesso PC.

Test delle prestazioni 3D: Unity Carting Microgame

The Unity Carting Microgame è un modello gratuito che contiene tutto il necessario per creare un semplice gioco di corse. Viene fornito con tutorial, ma siamo più interessati al gioco stesso. Abbiamo creato Carting Microgame sia con OpenGL che con DirectX per confrontare le loro prestazioni e i risultati sono stati i seguenti:

Il più basso Più alto Media
DirectX 331 848 365.05
OpenGL 247 819 283.7

DirectX ha superato OpenGL nel nostro benchmark 3D, ottenendo frame rate impressionanti in tutto. I risultati di OpenGL sono ancora più che riproducibili.

Test delle prestazioni 2D: Unity Platformer Microgame

Proprio come Carting Microgame, Unity Platformer Microgame è gratuito e ricco di ottimi strumenti di apprendimento. Come previsto, il gioco 2D nei nostri test si comporta meglio di quello 3D, ma puoi valutare tu stesso i risultati.

Il più basso Più alto Media
DirectX 599 850 767.367
OpenGL 302 604 515.417

Come puoi vedere dai risultati sopra, DirectX ha ottenuto un frame rate medio molto più alto nei nostri test. Sebbene la differenza possa sembrare drammatica, entrambi i risultati sono molto riproducibili.

OpenGL o DirectX 11: Conclusione sulle prestazioni

Mentre molte persone affermano che OpenGL ha prestazioni migliori di DirectX, quest'ultima API ha ottenuto risultati migliori in entrambi i nostri benchmark. Questo è tutt'altro che conclusivo, con molti fattori che giocano un ruolo nel dettare le prestazioni di un gioco, soprattutto quando diventano più complessi.

DirectX o OpenGL: quale utilizzare per lo sviluppo di giochi?

La scelta della giusta API grafica dipende da diversi fattori. DirectX è l'API grafica più utilizzata. Molti sviluppatori di giochi creano i loro giochi per Windows e Xbox prima di trasferirli su OpenGL per altre piattaforme. Se stai pubblicando un gioco esclusivamente al di fuori di Windows e Xbox, potresti trarre vantaggio dall'utilizzo di OpenGL fin dall'inizio.

Anche le prestazioni sono un fattore da considerare, sebbene i nostri test dimostrino che questo è abbastanza trascurabile quando si utilizzano strumenti del motore come Unity. In sostanza, le differenze tra queste due API grafiche contano solo per coloro che cercano funzionalità di nicchia specifiche.