petit complement qui me parait utile : DirectX c´est BCP plus que l´équivalent d´OpenGL ; si on veut " comparer", il faut le faire avec la couche anciennement Direct3D, à savoir DirectX Graphics.
Tant qu´à y etre, DirectX est une API *structurée* ( COM), qui couvre de nombreux domaines ( sons, affichage, reseau, périphériques, etc. mais aussi des trucs utilitaires, mathématiques pour la plupart), et qui permet bcp plus de controle sur ce qui se passe dans le hardware ( là où OpenGL délegue tout aux drivers)
quant au Cg/HLSL ( ça se vaut, les concepts sont tres proche également ; sachant c´est que NVidia qui a en gros écrit le cahier des charges de la couche HLSL de DX), ça se vaut " haut niveau", donc ouste l´assembleur tordu, c´est relativement aisé de s´y mettre.
Apres, pour obtenir des resultats, c´est autre choses... disons qu´il faut etre interessé par cette branche, et avoir un minimum de base concernant les principes d´éclairage et de rasterisation.