APIs (Application Programming Interfaces) é o que processa o comando que você faz e faz a interface com o software para obter o resultado que você precisa.
Uma chamada de API envolve fazer uma solicitação ao servidor para executar uma tarefa / ação específica. Uma rápida comparação do Open GL e Direct 3D será feita aqui. Examinaremos mais de perto o desempenho das duas APIs com o GeeXLab, que agora está disponível com os renderizadores Open GL e Direct 3D 12.
A Open Graphics Library (OpenGL) é uma API de várias plataformas e vários idiomas para renderizar gráficos vetoriais em 2D e 3D. A API é normalmente usada para interagir com uma unidade de processamento gráfico (GPU), para obter a renderização acelerada por hardware. O Direct3D é uma interface de programação de aplicativos gráficos (API) para Microsoft Windows que faz parte do DirectX. O Direct3D é usado para renderizar gráficos tridimensionais em aplicativos em que o desempenho é importante, como jogos. O Direct3D usa aceleração de hardware se estiver disponível na placa de vídeo.
Uma malha texturizada é renderizada com várias densidades de polígono. O teste utiliza uma lista de comandos, um PSO, um programa HLSL, uma malha e uma textura. O GeeXLab e o teste estão disponíveis para download na pasta host_api / Direct3D12_vs_OpenGL / do pacote de amostra de código. O número de polígonos pode ser alterado editando o código fonte dos dois arquivos. O teste foi realizado para as seguintes especificações:
CPU: Intel Core i5 6600K a 3.5GHz
Placa-mãe: ASUS Z170 Pro Gaming
RAM: 8GB DDR4 Corsair Vengeance
SO: Windows 10 de 64 bits
Drivers:
Radeon R9 290X: Catalyst 15.10 beta
GeForce GTX 970: R358.50
Gráficos HD 530: v4279
Taxa de quadros por segundo
A taxa de quadros por segundo de ambas as APIs com drivers diferentes foi estudada.
Resultados Direct3D 12
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 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
Os resultados do Direct 3D 12 foram mais rápidos que o OpenGL quando o número de polígonos era baixo. Quando o número de polígonos estava em torno de 80k, verificou-se que o Direct3D oferece o mesmo tipo de desempenho que o OpenGL. Quando esse número ultrapassou 80k, o OpenGL foi muito mais rápido.
Quads renderizados
Os resultados de um teste de esforço de tração também são listados, um quad foi processado 100, 400 e 4000 vezes. Cada quad é renderizado com sua própria chamada de empate. Para este teste, cada quad é composto de 4 vértices e 2 triângulos.
Direct 3D 12
GeForce GTX 960 (R361.43)
100 2900/20%
400 1070/26%
4000 180/20%
OpenGL 3.2
GeForce GTX 960 (R361.43)
100 1840/58%
400 730/30%
4000 97/20%
Pode-se observar que mais objetos podem ser desenhados com o Direct 3D 12 do que com o OpenGL.