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.