Diferencia entre OpenGL y DirectX12

Las interfaces de programación de aplicaciones (API) son las que procesan el comando que realiza y las interfaces con el software para obtener el resultado que necesita.

Una llamada a la API implica hacer una solicitud al servidor para que realice una tarea / acción en particular. Aquí se realizará una comparación rápida de Open GL y Direct 3D. Echaremos un vistazo más de cerca al rendimiento de las dos API con GeeXLab, que ahora está disponible con renderizadores Open GL y Direct 3D 12..

Open Graphics Library (OpenGL) es una API multiplataforma y en varios idiomas para renderizar gráficos vectoriales 2D y 3D. La API se usa generalmente para interactuar con una unidad de procesamiento de gráficos (GPU), para lograr una representación acelerada por hardware. Direct3D es una interfaz de programación de aplicaciones gráficas (API) para Microsoft Windows que forma parte de DirectX, Direct3D se utiliza para representar gráficos tridimensionales en aplicaciones donde el rendimiento es importante, como los juegos. Direct3D usa aceleración de hardware si está disponible en la tarjeta gráfica.

Una malla texturizada se representa con varias densidades de polígono. La prueba utiliza una lista de comandos, un PSO, un programa HLSL, una malla y una textura. GeeXLab y la prueba están disponibles para su descarga en la carpeta host_api / Direct3D12_vs_OpenGL / del paquete de muestra de código. El número de polígonos se puede cambiar editando el código fuente de ambos archivos. La prueba se realizó para las siguientes especificaciones:

UPC: Intel Core i5 6600K @ 3.5GHz

Tarjeta madre: ASUS Z170 Pro Gaming

RAM: 8GB DDR4 Corsair Venganza

OS: Windows 10 de 64 bits

Conductores:

Radeon R9 290X: Catalizador 15.10 beta

GeForce GTX 970: R358.50

Gráficos HD 530: v4279

Velocidad de fotogramas por segundo

Se estudió la velocidad de fotogramas por segundo de ambas API con diferentes controladores.

Direct3D 12 resultados

Triángulos 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

Resultados de OpenGL 3.2

Triángulos 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

Se encontró que los resultados de Direct 3D 12 eran más rápidos que OpenGL cuando el número de polígonos era bajo. Cuando el número de polígonos era de alrededor de 80k, se descubrió que Direct3D ofrece el mismo tipo de rendimiento que OpenGL. Cuando este número superó los 80k, se descubrió que OpenGL era mucho más rápido.

Quads prestados

También se enumeran los resultados de una prueba de esfuerzo de estiramiento, un quad se ha procesado 100, 400 y 4000 veces. Cada quad se representa con su propia llamada de extracción. Para esta prueba, cada quad está formado por 4 vértices y 2 triángulos..

Direct 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%

Se puede observar que se pueden dibujar más objetos con Direct 3D 12 que con OpenGL.