OpenGL vs. DirectX : lequel utiliser pour le développement de jeux ?
Les API graphiques, comme OpenGL et DirectX, servent de pont entre le logiciel et le matériel graphique utilisés pour jouer à des jeux. Ces API fournissent des méthodes standardisées pour afficher des graphiques 2D et 3D à l’écran. Elles sont devenues fondamentales pour le développement des jeux au cours des deux dernières décennies.
Les moteurs comme Unity offrent un 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 à DirectX pour vous donner une idée de lequel de ces outils est le meilleur pour vous.
DirectX vs. OpenGL : aperçu des principales fonctionnalités
À leur 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 construire des primitives graphiques complexes. Chaque vertex stocke ses propres coordonnées et d’autres informations importantes. Mais la façon dont chaque bibliothèque utilise les sommets est différente.
Elles peuvent exécuter des fonctions similaires, mais vous remarquerez la différence entre OpenGL et DirectX si vous travaillez avec elles.
DirectX vs. OpenGL : portée de l’API
Avant d’aller beaucoup plus loin, il est important de noter que, bien qu’ils soient tous deux des API graphiques, OpenGL et DirectX ont des portées différentes. OpenGL est une API graphique pure souche, et cela 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 vs. 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 sur Windows et Xbox principalement, avec d’autres plateformes, comme Linux, obtenant lentement un 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 vs. OpenGL : ressources matérielles
DirectX laisse la gestion du matériel au développeur, vous donnant la possibilité d’allouer les ressources efficacement, selon vos besoins. OpenGL gère la gestion du matériel, mais cela peut apporter ses propres avantages, car vous n’avez pas à vous soucier de gérer les ressources vous-même.
DirectX vs. OpenGL : Documentation
L’accès à une documentation détaillée peut rendre le développement de jeux beaucoup plus facile lorsqu’on travaille 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.
Utilisation d’OpenGL par rapport à DirectX pour le développement de jeux.
Les développeurs ont réalisé de nombreux jeux magnifiques et bien optimisés sur le marché moderne en utilisant à la fois OpenGL et DirectX. Il y a plusieurs choses que vous devez prendre en compte lorsque vous choisissez une API graphique 2D/3D. Certains développeurs se contenteront de s’appuyer sur l’outil avec lequel ils sont le plus à l’aise.
OpenGL ou DirectX : plates-formes
Nous avons déjà abordé la question des plateformes, mais il s’agit d’une considération cruciale pour les développeurs. Si vous voulez créer des jeux pour la Nintendo Switch, la Playstation 4 ou Linux, vous devrez travailler avec OpenGL ou une autre API qui les prend en charge. DirectX est fait pour Windows et Xbox et a une compatibilité limitée avec les autres systèmes.
OpenGL ou DirectX : compatibilité avec le moteur
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’il est plus facile de travailler avec OpenGL qu’avec 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 plus de plateformes rend également plus facile la sortie de jeux avec cette exigence.
La facilité d’utilisation des API graphiques n’est pas aussi importante qu’avant pour les développeurs de jeux. Avec des moteurs comme Unity qui s’interfacent avec les API graphiques en coulisse, 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 : Fe atures 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 API. Elles prennent toutes deux en charge les capacités de votre carte graphique, et cela ne changera que si les GPU connaissent des changements spectaculaires à l’avenir.
OpenGL ou DirectX : performances des jeux
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ésentent 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 est de procéder à des tests. Grâce à la compatibilité d’Unity avec les deux API, nous pouvons créer un projet et tester un jeu type 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 est exécuté pendant 120 secondes de jeu normal et les 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 performance 3D : Microjeu de carting Unity
Le Unity Carting Microgame est un modèle gratuit qui contient tout ce dont vous avez besoin pour construire un jeu de course simple. Il est accompagné de 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 :
331 | 848 | 365.05 |
247 | 819 | 283.7 |
.
DirectX a surpassé OpenGL dans notre benchmark 3D, en obtenant des taux d’images impressionnants tout au long de l’opération. Les résultats d’OpenGL sont tout de même plus que jouables.
Test de performance 2D : Micro-jeu de plateforme Unity
Tout comme le microjeu Carting, le microjeu Unity Platformer est gratuit et rempli d’excellents outils d’apprentissage. Comme prévu, le jeu 2D de nos tests a de meilleures performances que le jeu 3D, mais vous pouvez évaluer les résultats par vous-même.
599 | 850 | 767.367 |
302 | 604 | 515.417 |
Comme vous pouvez le voir dans les résultats ci-dessus, DirectX a atteint un taux d’images moyen beaucoup plus élevé dans nos tests. Bien que la différence puisse paraître spectaculaire, 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. Cela est loin d’être concluant, de nombreux facteurs jouant un rôle pour dicter les performances d’un jeu, surtout lorsqu’ils deviennent plus complexes.
DirectX ou OpenGL : laquelle faut-il 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 largement utilisée. De nombreux développeurs de jeux créent leurs jeux pour Windows et Xbox avant de les porter en OpenGL pour les autres plateformes. 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 lorsque vous utilisez des outils de moteur comme Unity. En substance, les différences entre ces deux API graphiques ne comptent que pour ceux qui recherchent des fonctionnalités de niche spécifiques.