S
Kann man nicht sagen.
Da Du Erfahrung mit C++ und nicht "einfachem" C hast, käme DirectX in Frage.
Schneller oder besser ist weder DirectX noch OpenGL.
DirectX ist übersichtlicher (im Sinne von: besser strukturiert). Du kannst nicht einfach ein glVertex(x, y) irgendwo in Deinen Quelltext hauen.
Da Du als C++-ler wohl sicher mit Klassen etc. umgehen kannst, und Dich somit das OO Design anmacht, dürfte ggf. DirectX mehr für Dich in Frage kommen.
Zudem bietet DirectX dann auch direkt Sound- / Eingabe- / Netzwerk-Funktionalität (im Gegensatz zu OpenGL), die ähnlich von DirectX Graphics aufgebaut sind und deshalb keine erneute Fundamental-Einarbeitung mehr brauchen.
Wenn Du lieber strukturiert als OO proggst, kommt OpenGL wahrscheinlich eher in Frage. Dich mag es dann vielleicht nerven, daß es keinerlei Überladung für glVertex z.B. gibt, sondern stattdessen 1001 Prozedur mit unterschiedlichen Parametern à la glVertex3f, glVertex3i, glVertexXX... allerdings ist das dafür einheitlich gemacht, und leicht zu merken.
Ausserdem hat OpenGL halt keinerlei direkte Bindung zu Windows (z.B.), und Du mußt zur Initialisierung erstmal wild mit PIXELFORMAT und DEVMODE und anderem Scheiß um Dich werfen, Dir einen DC besorgen und ein RC daraus machen, etc. - das nervt ziemlich.
Andererseits macht man das 1 mal, und schmeißt das in Init-Funktionen, basta.
Und falls Du auf Klassen stehst, kannst Du natürlich auch OpenGL in Klassen wrappen. Von daher gibt es also keine direkten Vor- oder Nachteile eigentlich mehr.
Am Besten Du schaust Dir gut dokumentierte Quelltexte zu Mini-Spielchen in OpenGL und DirectX an, und gehst dann danach, was Dich mehr antörnt...
Für Anfänger ist SDL wohl eine Überlegung wert. Hab' allerdings nie damit gearbeitet.
Aber man hört fast nur gutes.
Für 3D kann man nachher problemlos (?) OpenGL dazunehmen.
Threads und was man ggf. braucht wurde alles vom OS abstrahiert.
etc. pp
Fazit: Direkte Empfehlungen kann man Dir nicht geben. Geh innen Laden und schau' Dir die Kiste erstmal an, die Du kaufen willst...