Forskjell mellom OpenGL og DirectX12

Application Programming Interfaces (APIs) er det som behandler kommandoen du lager og grensesnitt mot programvaren for å gi deg det resultatet du trenger.

Et API-anrop innebærer å stille en forespørsel til serveren om å få en bestemt oppgave / handling utført. En rask sammenligning av Open GL og Direct 3D vil bli gjort her. Vi vil se nærmere på forestillingene til de to API-ene med GeeXLab som nå er tilgjengelig med en Open GL og en Direct 3D 12-gjengiver.

Open Graphics Library (OpenGL) er et tverrspråklig API på tvers av plattformer for gjengivelse av 2D- og 3D-vektorgrafikk. API-en brukes vanligvis for å samhandle med en grafikkbehandlingsenhet (GPU), for å oppnå maskinvareakselerert gjengivelse. Direct3D er et grafisk applikasjonsprogrammeringsgrensesnitt (API) for Microsoft Windows som er en del av DirectX, Direct3D brukes til å gjengi tredimensjonal grafikk i applikasjoner der ytelse er viktig, for eksempel spill. Direct3D bruker maskinvareakselerasjon hvis det er tilgjengelig på grafikkortet.

Et strukturert nett er gjengitt med forskjellig polygontetthet. Testen bruker en kommandoliste, ett PSO, ett HLSL-program, ett nett og en tekstur. GeeXLab og testen er begge tilgjengelige for nedlasting i host_api / Direct3D12_vs_OpenGL / -mappen i kodeeksempelpakken. Antall polygoner kan endres ved å redigere kildekoden til begge filene. Testen ble utført for følgende spesifikasjoner:

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

hovedkort: ASUS Z170 Pro Gaming

RAM: 8 GB DDR4 Corsair hevn

OS: Windows 10 64-bit

drivere:

Radeon R9 290X: Katalysator 15.10 beta

GeForce GTX 970: R358.50

HD Graphics 530: v4279

Framerate per sekund

Frameratet per sekund av begge API-ene med forskjellige drivere ble studert.

Direct3D 12 resultater

Triangler 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-resultater

Triangler 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

Resultatene av Direct 3D 12 ble funnet å være raskere enn OpenGL når antallet polygoner var lavt. Når antallet polygoner var rundt 80 000, ble det funnet at Direct3D tilbyr samme type ytelse som OpenGL. Da dette tallet gikk over 80 000, ble det funnet at OpenGL var mye raskere.

Fire gjengitt

Resultatene fra en uavgjort stresstest er også listet opp, en firerplass er blitt gjengitt 100, 400 og 4000 ganger. Hver firer er gjengitt med sin egen trekningsanrop. For denne testen består hver firer av 4 hjørner og 2 trekanter.

Direkte 3D 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%

Det kan observeres at flere objekter kan tegnes med Direct 3D 12 enn med OpenGL.