Differenza tra OpenGL e DirectX12

Le API (Application Programming Interface) sono ciò che elabora il comando che esegui e si interfaccia con il software per ottenere il risultato di cui hai bisogno.

Una chiamata API comporta l'invio di una richiesta al server per eseguire una determinata attività / azione. Qui verrà eseguito un rapido confronto tra Open GL e Direct 3D. Vedremo più da vicino le prestazioni delle due API con GeeXLab, che è ora disponibile con renderer Open GL e Direct 3D 12.

Open Graphics Library (OpenGL) è un'API cross-language e multipiattaforma per il rendering di grafica vettoriale 2D e 3D. L'API viene generalmente utilizzata per interagire con un'unità di elaborazione grafica (GPU), per ottenere un rendering con accelerazione hardware. Direct3D è un'interfaccia di programmazione di applicazioni grafiche (API) per Microsoft Windows che fa parte di DirectX, Direct3D viene utilizzato per il rendering di grafica tridimensionale in applicazioni in cui le prestazioni sono importanti, come i giochi. Direct3D utilizza l'accelerazione hardware se è disponibile sulla scheda grafica.

Una mesh strutturata viene renderizzata con varie densità poligonali. Il test utilizza un elenco di comandi, un PSO, un programma HLSL, una mesh e una trama. GeeXLab e il test sono entrambi disponibili per il download nella cartella host_api / Direct3D12_vs_OpenGL / del pacchetto di esempio di codice. Il numero di poligoni può essere modificato modificando il codice sorgente di entrambi i file. Il test è stato condotto per le seguenti specifiche:

PROCESSORE: Intel Core i5 6600K a 3,5 GHz

Scheda madre: ASUS Z170 Pro Gaming

RAM: Vendetta Corsair DDR4 da 8 GB

OS: Windows 10 a 64 bit

Autisti:

Radeon R9 290X: Catalizzatore 15.10 beta

GeForce GTX 970: R358.50

Grafica HD 530: v4279

Framerate al secondo

Sono stati studiati il ​​framerate al secondo di entrambe le API con driver diversi.

Risultati Direct3D 12

Triangoli AMD Radeon R9 290X NVIDIA GeForce GTX 970 Intel HD Graphics 530

800 9100/40% 5500/25% 1360

5000 8200/45% 5300/35% 1220

20000 5800/60% 5100/45% 1100

80000 2400/80% 2600/70% 850

320000 720/90% 700/85% 500

500000 480/98% 480/90% 400

2000000 130/100% 130/97% 160

Risultati OpenGL 3.2

Triangoli AMD Radeon R9 290X NVIDIA GeForce GTX 970 Intel HD Graphics 530

800 4600/25% 3700/35% 1220

5000 4300/25% 3600/35% 1160

20000 4200/25% 3600/36% 1060

80000 4100/30% 3600/58% 840

320000 4100/46% 2800/87% 500

500000 3200/70% 2200/90% 420

2000000 1000/100% 930/95% 180

I risultati di Direct 3D 12 sono risultati più veloci di OpenGL quando il numero di poligoni era basso. Quando il numero di poligoni era di circa 80.000, si è scoperto che Direct3D offre lo stesso tipo di prestazioni di OpenGL. Quando questo numero è andato oltre 80k, OpenGL è risultato essere molto più veloce.

Quads render

Sono elencati anche i risultati di uno stress test di pareggio, un quadrante è stato reso 100, 400 e 4000 volte. Ogni quad viene reso con il suo call call. Per questo test, ogni quad è composto da 4 vertici e 2 triangoli.

Direct 3D 12

Num quad GeForce GTX 960 (R361.43)

100 2900/20%

400 1070/26%

4000 180/20%

OpenGL 3.2

Num quad GeForce GTX 960 (R361.43)

100 1840/58%

400 730/30%

4000 97/20%

Si può osservare che è possibile disegnare più oggetti con Direct 3D 12 che con OpenGL.