DirectX ist eine API für multimediale Anwendungen (hauptsächlich Spiele) für Windows (PC, Xbox etc.). Die Hauptaufgabe liegt dabei bei der Darstellung von 2D und 3D Grafiken (DirectX Graphics), zusätzlich werden aber auch Audio und Netzwerkschnittstellen angeboten. DirectX bietet quasi direkten Zugriff auf die Funktionen der Hardware (z.B. Grafikkarte).
OpenGL ist der Plattform-unabhängige und Quelloffene Pendant von DirectX Graphics, also wieder eine API welche Zugriff auf Funktionen der Grafikkarte gewährt. OpenGL wurde mittlerweile von Vulcan abgelöst.
Beide APIs werden meist nicht direkt, sondern über einen Wrapper in Form eines Frameworks oder einer Engine genutzt. Eines dieser Frameworks ist LibGDX, welches hinter der Bühne OpenGL verwendet.
Um auf die Fragen in der Kommentaren zu anderen Antworten einzugehen:
- Was ist Unity: Unity ist eine Engine zur Entwicklung von Spielen. Andere Engines wären z.B. die CryEngine oder UnrealEngine.
- Was ist Eclipse: Eclipse ist eine IDE, also eine Entwicklungsumgebung, welche dich mit verschiedenen Funktionen (Autovervollständigung, Compile-On-Save, Quickfixes etc.) unterstützt.
- Was ist der Unterschied zwischen einem Eclipse Spiel und dieses OpenGL: Es gibt kein "Eclipse Spiel". Eclipse ist eine einfache IDE. Du kannst das selbe Spiel auch in einem normalen Editor schreiben, was halt deutlich schwerer ist. Was du meinst ist vermutlich Java2D. Java2D wurde nicht für grafisch aufwendige Anwendungen (wie Spiele) entwickelt und die Performance wird dir bei komplexeren Games schnell Probleme machen. Wenn du hingegen auf OpenGL (oder besser auf einen Wrapper wie LibGDX) setzt, können auch komplexere Grafiken noch problemlos dargestellt werden. Zudem sind auch die Schnittstellen bei solchen Frameworks/Engines meist einfacher, da sie speziell für Spieleentwicklung erstellt wurden.