Zu den Programmiersprachen kann ich nicht viel sagen, da ich ich bei beiden nur ein Grundwissen besitze.

Dagegen kann ich einiges zur Grafikprogrammierung sagen, da ich mit der gleichen Fragestellung dastand. In erster Linie sollte man wissen das OpenGL bis auf die Anzeige von Grafiken nichts anderes Beherrscht, daher muss man alle andere Funktionen (Tastaturabfrage Musik etc) ueber andere Biblotheken hinzufuegen, dazu aber gleich mehr. DirectX hat dagegen den Vorteil alles in einem zu haben und so kann man sich auf die Programierung selbst beschraenken, leider ist man damit Platformabhaengig und daher wohl fuer dich eher ungeeignet. Was von beiden besser ist sollte man am besten gar nicht fragen, da die Meinungen sehr geteilt sind.

Wenn man aber an Grafikprogrammierung ran geht, sollte man noch SDL als Moeglichkeit in betracht ziehen. Wie DirectX bietet es alle grundsaetzlichen Funktionen an (Tastaturabfrage, Gamepad, Eventbehandlung, Musikwiedergabe etc.) und ist in der Handhabung sehr leicht. Desweiteren ist es Plattformunabhaengig. Zwar sagen alle, das die Power der Grafikanzeige eher gering ist, aber hier tritt OpenGL in Kraft. In der SDL ist OpenGL als Moeglichkeit der Erweiterung direkt inbegriffen und kann Problemlos hinzugefuegt werden. Damit hat man eine starke Grafikbehandlung und zudem auch alle andern benoetigten Funktionen. Ich selbst bevorzuge diese Kombi und bisher war das auch sehr gut und an Dokumentation wirst du in Internet mehr als genug zu fnden haben.

Zur 2D-Grafik: Hier bietet SDL eigendlich alles was man benoetigt und ist als einstieg ganz gut. Ansonsten kann man auch die grossen Brueder verwenden, wobei man mit SDL schneller vorankommen wird.

.Net habe ich bisher ueberhaupt nicht bearbeitet, wobei man hier eigentlich Problemlos OpenGL einfuegen sollte. Mit WinApi geht es ja Problemlos und so viel anders sollte die Art von .Net ja auch nicht sein und du solltest wahrscheinlich auch nicht der erste sein der auf diese Idee kommt und ein kurzer Blick in Google bestaetigt meine Annahme.

Alles in allem solltest du dir erstmal klar werden was du wirklich willst. Plattformunabhaengig oder nicht, denn dadurch stellt sich die Frage erst ob OpenGL und DirektX und hier sollte jeder fuer sich selbst entscheiden.
Da ich selbst Plattformunabhaengig sein wollte entschied ich mich fuer OpenGL und SDL, wobei ich mich auch noch mit DirektX beschaeftigen will.

So ich haffe ich hab nicht zu viel Schmarn geschreiben.