Diferența dintre OpenGL și DirectX12

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.