Verschil tussen OpenGL en DirectX12

Application Programming Interfaces (API's) zijn wat de opdracht die u uitvoert verwerkt en met de software communiceert om u het resultaat te geven dat u nodig hebt.

Bij een API-aanroep moet de server een verzoek indienen om een ​​bepaalde taak / actie uit te voeren. Een snelle vergelijking van Open GL en Direct 3D zal hier worden gedaan. We zullen de prestaties van de twee API's met GeeXLab nader bekijken, die nu beschikbaar zijn met een Open GL en een Direct 3D 12-renderers.

Open Graphics Library (OpenGL) is een meertalige, platformonafhankelijke API voor het renderen van 2D- en 3D-vectorafbeeldingen. De API wordt meestal gebruikt om te communiceren met een grafische verwerkingseenheid (GPU), om hardwareversnelde rendering te bereiken. Direct3D is een grafische applicatie-programmeerinterface (API) voor Microsoft Windows die deel uitmaakt van DirectX, Direct3D wordt gebruikt om driedimensionale grafische weergaven te maken in applicaties waar prestaties belangrijk zijn, zoals games. Direct3D gebruikt hardwareversnelling als deze beschikbaar is op de grafische kaart.

Een getextureerd gaas wordt weergegeven met verschillende polygonedichtheid. De test maakt gebruik van één opdrachtenlijst, één PSO, één HLSL-programma, één mesh en één texture. GeeXLab en de test zijn beide beschikbaar om te downloaden in de host_api / Direct3D12_vs_OpenGL / map van het codevoorbeeldpakket. Het aantal polygonen kan worden gewijzigd door de broncode van beide bestanden te bewerken. De test werd uitgevoerd voor de volgende specificaties:

CPU: Intel Core i5 6600K @ 3,5 GHz

moederbord: ASUS Z170 Pro Gaming

RAM: 8DR DDR4 Corsair Vengeance

OS: Windows 10 64-bit

drivers:

Radeon R9 290X: Katalysator 15.10 beta

GeForce GTX 970: R358.50

HD Graphics 530: v4279

Framerate per seconde

De framerate per seconde van beide API's met verschillende stuurprogramma's werden bestudeerd.

Direct3D 12 resultaten

Driehoeken 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

OpenGL 3.2 resultaten

Driehoeken 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

De resultaten van Direct 3D 12 bleken sneller te zijn dan OpenGL toen het aantal polygonen laag was. Toen het aantal polygonen ongeveer 80k bedroeg, bleek dat de Direct3D dezelfde prestaties levert als OpenGL. Toen dit aantal boven de 80k ging, bleek OpenGL veel sneller te zijn.

Quads weergegeven

De resultaten van een stresstest worden ook vermeld, een quad is 100, 400 en 4000 keer weergegeven. Elke quad wordt weergegeven met een eigen tekenaanroep. Voor deze test bestaat elke quad uit 4 hoekpunten en 2 driehoeken.

Direct 3D 12

Aantal quads GeForce GTX 960 (R361.43)

100 2900/20%

400 1070/26%

4000 180/20%

OpenGL 3.2

Aantal quads GeForce GTX 960 (R361.43)

100 1840/58%

400 730/30%

4000 97/20%

Opgemerkt kan worden dat met Direct 3D 12 meer objecten kunnen worden getekend dan met OpenGL.