Cela dépend de ce que vous faites. Si vous utilisez Direct3D, la seule raison de basculer est d'accéder à des fonctionnalités matérielles que vous ne pouvez pas obtenir autrement.
Pour un jeu 2D, il est théoriquement possible que certaines fonctionnalités vous intéressent. Par exemple, OpenCL ou DirectCompute. Civilization V tire parti de DirectCompute pour décompresser les textures. Cela réduit considérablement le temps de chargement, car il n'a qu'à charger des données compressées. Et les jeux 2D ont souvent beaucoup d'images. Si le temps de chargement est un problème, cela peut aider.
OpneCL devrait être disponible sur tout le matériel GeForce 8xxx et supérieur. Sur ATI, il est disponible sur HD 4xxx et un meilleur matériel.
Je dirais que la plus grande fonctionnalité que vous pourriez utiliser dans DX11 est la possibilité de lire et d'écrire plus arbitrairement des images dans des shaders. Cela pourrait être utile pour certains effets spécialisés. Je ne peux penser à aucun moment ... qui devrait vous dire à quel point cela est important.
En général, je dirais que si vous utilisez D3D, vous ne gagnerez probablement pas beaucoup. Et si vous ne comprenez pas déjà les nouvelles fonctionnalités et que vous souhaitez les utiliser dans votre jeu, vous ne gagnerez certainement pas grand-chose. La plupart d'entre eux vont être plus complexes.
OpenGL est différent pour une raison majeure. OpenGL 2.1 (l'équivalent plus ou moins de D3D9) craint comme API. OpenGL 3.3 (plus quelques extensions plus récentes qui fonctionnent sur du matériel 3.3) améliore beaucoup l'API. Emplacement explicite des attributs, séparation des programmes de shader, tout dans le pack de langue d'ombrage 420 , etc.
Certains d'entre eux fonctionnent assez bien sous forme d'extension contre 2.1. Certains d'entre eux ... ne le font pas. Je ne sais toujours pas s'il est correct d'utiliser des emplacements d'attributs explicites avec des attribute
déclarations (avant la in
syntaxe actuelle ). Shading language pack 420 dit spécifiquement qu'il ne fonctionne pas avec les versions GLSL avant 1.30 (aka: OpenGL 3.0).
Cela ne veut pas dire que GL 2.1 est inutilisable. C'est certainement fonctionnel et fonctionnel, mais pas agréable. Bien que certains pilotes que vous trouverez qui l'implémentent ne soient pas réparables. Le matériel DX9 d'ATI n'est plus pris en charge, donc ces pilotes sont vraiment bogués. Et Intel ne s'est jamais soucié d'OpenGL, donc utiliser des shaders sur leur matériel est un hasard.
Mais personnellement, si votre base d'utilisateurs prévue le permet, je pousserais vers GL 3.3 si vous utilisez OpenGL. Si ce n'est pas le cas, vous n'aurez qu'à gérer les problèmes de 2.1.