Les API graphiques, comme OpenGL et DirectX, agissent comme un pont entre le logiciel et le matériel graphique utilisé pour jouer à des jeux. Ces API fournissent des méthodes standardisées pour afficher des graphiques 2D et 3D à l'écran. Ils sont devenus fondamentaux pour le développement de jeux au cours des deux dernières décennies.
Des moteurs comme Unity offrent le choix entre les API graphiques qu'ils utilisent, mais comment êtes-vous censé choisir la bonne option pour votre jeu? Rejoignez-nous alors que nous comparons OpenGL avec DirectX pour vous donner une idée de celui de ces outils qui vous convient le mieux.
DirectX contre. OpenGL: présentation des fonctionnalités principales
À la base, DirectX et OpenGL partagent le même pipeline graphique, et ce depuis de nombreuses années. Les deux API utilisent des points appelés sommets pour créer des primitives graphiques complexes. Chaque sommet stocke ses propres coordonnées et d'autres informations importantes. Mais la façon dont chaque bibliothèque utilise les sommets est différente.
Ils peuvent exécuter des fonctions similaires, mais vous remarquerez la différence entre OpenGL et DirectX si vous travaillez avec eux.
DirectX contre. OpenGL: champ d'application de l'API
Avant d'aller beaucoup plus loin, il est important de noter que, bien qu'ils soient tous les deux des API graphiques, OpenGL et DirectX ont des portées différentes. OpenGL est une API graphique de race pure, ce qui signifie qu'elle ne traite rien d'autre que les graphiques 2D et 3D. DirectX, d'autre part, est une collection d'API graphiques, audio, réseau et autres API matérielles qui fonctionnent toutes ensemble.
Dans certains cas, OpenGL utilisera DirectX pour exécuter des fonctions qu'il ne peut pas faire tout seul. Le reste de cet article ignorera cette différence entre les deux API, en se concentrant sur les éléments graphiques de chaque outil.
OpenGL contre DirectX: plates-formes
OpenGL est une API gratuite gérée par une société à but non lucratif appelée Khronos Group, tandis que DirectX est fabriqué par Microsoft. DirectX fonctionne principalement sur Windows et Xbox, avec d'autres plates-formes, comme Linux, qui obtiennent lentement du support. OpenGL est multiplateforme, ce qui le rend utilisable pour le développement de jeux sur une gamme de systèmes d'exploitation et de consoles de jeux.
DirectX contre. OpenGL: ressources matérielles
DirectX laisse la gestion du matériel au développeur, ce qui vous donne la possibilité d'allouer efficacement les ressources, selon vos besoins. OpenGL gère la gestion du matériel, mais cela peut avoir ses propres avantages, car vous n'avez pas à vous soucier de la gestion des ressources vous-même.
DirectX contre. OpenGL: Documentation
L'accès à une documentation détaillée peut faciliter le développement de jeux lorsque vous travaillez avec des API. DirectX et OpenGL offrent une documentation régulièrement mise à jour et des communautés de développeurs utiles. Ces deux API reçoivent d'importantes mises à jour annuelles pour s'assurer qu'elles offrent les meilleures fonctionnalités disponibles.
Utiliser OpenGL vs. DirectX pour le développement de jeux
Les développeurs ont créé de nombreux jeux magnifiques et bien optimisés sur le marché moderne en utilisant à la fois OpenGL et DirectX. Il y a plusieurs éléments à prendre en compte lors du choix d'une API graphique 2D/3D. Certains développeurs se fieront simplement à l'outil avec lequel ils sont le plus à l'aise.
OpenGL ou DirectX: plates-formes
Nous avons déjà abordé les plates-formes, mais c'est une considération cruciale pour les développeurs. Si vous souhaitez créer des jeux pour Nintendo Switch, Playstation 4 ou Linux, vous devrez travailler avec OpenGL ou une autre API prenant en charge ces derniers. DirectX est conçu pour Windows et Xbox et a une compatibilité limitée avec d'autres systèmes.
OpenGL ou DirectX: Compatibilité des moteurs
La plupart des développeurs de jeux utilisent des moteurs comme Unity et Unreal pour créer leurs jeux, de nos jours. Ces deux moteurs prennent en charge OpenGL et DirectX, tout comme d'autres moteurs de développement de jeux multiplateformes.
OpenGL ou DirectX: facilité d'utilisation
Certains diront qu'OpenGL est plus facile à utiliser que DirectX. Outre les ressources matérielles, OpenGL ne gère que les graphiques, ce qui le rend plus simple par nature. Le fait qu'il fonctionne sur plusieurs plates-formes facilite également la sortie de jeux avec cette exigence.
La facilité d'utilisation de l'API graphique n'est plus aussi importante qu'avant pour les développeurs de jeux. Avec des moteurs comme Unity s'interfaçant avec les API graphiques dans les coulisses, il suffit d'un clic sur un bouton pour échanger l'API que vous utilisez. À moins que vous ne créiez un jeu à partir de zéro, il est peu probable que vous remarquiez une différence dans la facilité d'utilisation de chaque API.
OpenGL ou DirectX: fonctionnalités graphiques
À moins que vous ne soyez un cas marginal, il est peu probable que vous voyiez une énorme différence dans les fonctionnalités dont vous disposez entre ces Apis. Ils prennent tous deux en charge les capacités de votre carte graphique, et cela ne changera que si les GPU voient des changements spectaculaires dans le avenir.
OpenGL ou DirectX: Performances de jeu
Il y a beaucoup de débats entre les développeurs concernant les performances de ces API. Il est difficile d'imaginer qu'OpenGL ou DirectX présente des différences de performances significatives, bien que l'affirmation selon laquelle OpenGL est plus fluide et plus efficace soit courante en ligne.
La seule façon de savoir laquelle de ces API est la plus performante consiste à effectuer des tests. Grâce à la compatibilité de Unity avec les deux API, nous pouvons créer un projet et tester un exemple de jeu avec les deux API pour créer un benchmark de performance.
Ces tests ont été effectués avec des graphiques 2D et 3D pour s'assurer que leurs pipelines différents ne sont pas un facteur considérable. Chaque test dure 120 secondes de jeu normal et des images par seconde sont mesurées pour déterminer les performances. Tous les tests ont été effectués sur le même PC.
Test de performances 3D: Unity Carting Microgame
Le micro-jeu Unity Carting est un modèle gratuit qui contient tout ce dont vous avez besoin pour créer un jeu de course simple. Il est livré avec des tutoriels, mais nous sommes plus intéressés par le jeu lui-même. Nous avons construit le Carting Microgame avec OpenGL et DirectX pour comparer leurs performances et les résultats sont les suivants :
Le plus bas | Le plus élevé | Moyen | |
---|---|---|---|
DirectX | 331 | 848 | 365.05 |
OpenGL | 247 | 819 | 283.7 |
DirectX a surpassé OpenGL dans notre benchmark 3D, atteignant des fréquences d'images impressionnantes partout. Les résultats d'OpenGL sont encore plus que jouables.
Test de performances 2D: micro-jeu Unity Platformer
Tout comme le micro-jeu Carting, le micro-jeu Unity Platformer est gratuit et contient d'excellents outils d'apprentissage. Comme prévu, le jeu 2D de nos tests est plus performant que le jeu 3D, mais vous pouvez évaluer les résultats par vous-même.
Le plus bas | Le plus élevé | Moyen | |
---|---|---|---|
DirectX | 599 | 850 | 767.367 |
OpenGL | 302 | 604 | 515.417 |
Comme vous pouvez le voir dans les résultats ci-dessus, DirectX a atteint une fréquence d'images moyenne beaucoup plus élevée lors de nos tests. Bien que la différence puisse sembler dramatique, les deux résultats sont tout à fait jouables.
OpenGL ou DirectX 11: Conclusion sur les performances
Alors que beaucoup de gens disent qu'OpenGL est plus performant que DirectX, cette dernière API a obtenu de meilleurs résultats dans nos deux benchmarks. C'est loin d'être concluant, de nombreux facteurs jouant un rôle dans la dictée des performances d'un jeu, d'autant plus qu'ils deviennent plus complexes.
DirectX ou OpenGL: lequel utiliser pour le développement de jeux ?
Le choix de la bonne API graphique dépend de plusieurs facteurs. DirectX est l'API graphique la plus utilisée. De nombreux développeurs de jeux créent leurs jeux pour Windows et Xbox avant de les porter sur OpenGL pour d'autres plates-formes. Si vous publiez un jeu exclusivement en dehors de Windows et Xbox, vous pourriez bénéficier de l'utilisation d'OpenGL dès le début.
Les performances sont également un facteur à prendre en compte, bien que nos tests montrent que cela est assez négligeable lors de l'utilisation d'outils de moteur comme Unity. Essentiellement, les différences entre ces deux API graphiques n'ont d'importance que pour ceux qui recherchent des fonctionnalités de niche spécifiques.