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.