Interfețele de programare a aplicațiilor (API) sunt ceea ce procesează comanda pe care o faceți și interfață cu software-ul pentru a vă obține rezultatul de care aveți nevoie.
Un apel API implică efectuarea unei solicitări către server pentru a realiza o anumită sarcină / acțiune. O comparație rapidă între Open GL și Direct 3D se va face aici. Vom analiza mai atent performanțele celor două API-uri cu GeeXLab, care este acum disponibil cu un Open GL și un rendere 3D Direct 3D.
Open Graphics Library (OpenGL) este o API multi-platformă, multi-platformă, pentru redarea graficelor vectoriale 2D și 3D. API este de obicei utilizat pentru a interacționa cu o unitate de procesare grafică (GPU), pentru a realiza o redare accelerată hardware. Direct3D este o interfață de programare a aplicațiilor grafice (API) pentru Microsoft Windows, care face parte din DirectX, Direct3D este utilizat pentru a reda graficele tridimensionale în aplicațiile în care performanțele sunt importante, cum ar fi jocurile. Direct3D utilizează accelerația hardware dacă este disponibil pe placa grafică.
O plasă texturată este redată cu diverse densități de poligon. Testul folosește o listă de comenzi, un PSO, un program HLSL, o plasă și o textură. GeeXLab și testul sunt disponibile pentru descărcare în folderul host_api / Direct3D12_vs_OpenGL / folder al pachetului de mostre de cod. Numărul poligonilor poate fi modificat prin editarea codului sursă a ambelor fișiere. Testul a fost realizat pentru următoarele specificații:
PROCESOR: Intel Core i5 6600K @ 3.5GHz
Placa de bază: ASUS Z170 Pro Gaming
BERBEC: 8GB DDR4 Corsair Revengeance
Sistem de operare: Windows 10 pe 64 de biți
Drivere:
Radeon R9 290X: Catalizator 15.10 beta
GeForce GTX 970: R358.50
HD Graphics 530: v4279
Framerate pe secundă
S-au studiat fotograma pe secunde ale ambelor API cu drivere diferite.
Direct3D 12 rezultate
Triunghiuri 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
Rezultate OpenGL 3.2
Triunghiuri 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
Rezultatele Direct 3D 12 s-au dovedit a fi mai rapide decât OpenGL atunci când numărul de poligoane a fost redus. Când numărul de poligoane era în jur de 80k, s-a constatat că Direct3D oferă același fel de performanță ca OpenGL. Când acest număr a depășit 80k, s-a constatat că OpenGL este mult mai rapid.
Quads redate
De asemenea, sunt enumerate rezultatele unui test de tensiune de tragere, un quad a fost redat de 100, 400 și 4000 de ori. Fiecare quad este redat cu propriul apel de remiză. Pentru acest test, fiecare quad este format din 4 vârfuri și 2 triunghiuri.
3D direct 12
Num quads GeForce GTX 960 (R361.43)
100 2900/20%
400 1070/26%
4000 180/20%
OpenGL 3.2
Num quads GeForce GTX 960 (R361.43)
100 1840/58%
400 730/30%
4000 97/20%
Se poate observa că mai multe obiecte pot fi desenate cu Direct 3D 12 decât cu OpenGL.