Grafik-APIs wie OpenGL und DirectX fungieren als Brücke zwischen der Software und der Grafikhardware, die zum Spielen von Spielen verwendet wird. Diese APIs bieten standardisierte Methoden zur Anzeige von 2D- und 3D-Grafiken auf dem Bildschirm. Sie sind in den letzten Jahrzehnten für die Spieleentwicklung von grundlegender Bedeutung geworden.
Engines wie Unity bieten die Wahl zwischen den von ihnen verwendeten Grafik-APIs, aber wie sollen Sie die richtige Option für Ihr Spiel auswählen? Schließen Sie sich uns an, wenn wir OpenGL mit DirectX vergleichen, um Ihnen eine Vorstellung davon zu geben, welches dieser Tools für Sie am besten geeignet ist.
DirectX vs. OpenGL: Überblick über die Hauptfunktionen
Im Kern teilen sich sowohl DirectX als auch OpenGL die gleiche Grafikpipeline, und das schon seit vielen Jahren. Beide APIs verwenden Punkte, die Vertices genannt werden, um komplexe Grafikprimitive zu erstellen. Jeder Scheitelpunkt speichert seine eigenen Koordinaten und andere wichtige Informationen. Die Art und Weise, wie jede Bibliothek Scheitelpunkte verwendet, ist jedoch unterschiedlich.
Sie können ähnliche Funktionen ausführen, aber Sie werden den Unterschied zwischen OpenGL und DirectX bemerken, wenn Sie mit ihnen arbeiten.
DirectX vs. OpenGL: API-Bereich
Bevor wir weiter gehen, ist es wichtig zu beachten, dass OpenGL und DirectX, obwohl sie beide Grafik-APIs sind, unterschiedliche Bereiche haben. OpenGL ist eine reinrassige Grafik-API, und das bedeutet, dass es sich mit nichts anderem als 2D- und 3D-Grafiken befasst. DirectX hingegen ist eine Sammlung von Grafik-, Audio-, Netzwerk- und anderen Hardware-APIs, die alle zusammenarbeiten.
In einigen Fällen verwendet OpenGL DirectX, um Funktionen auszuführen, die es alleine nicht ausführen kann. Der Rest dieses Artikels ignoriert diesen Unterschied zwischen den beiden APIs und konzentriert sich auf die Grafikelemente der einzelnen Tools.
OpenGL vs. DirectX: Plattformen
OpenGL ist eine kostenlose API, die von einer gemeinnützigen Firma namens Khronos Group verwaltet wird, während DirectX von Microsoft hergestellt wird. DirectX funktioniert hauptsächlich auf Windows und Xbox, wobei andere Plattformen wie Linux langsam Unterstützung erhalten. OpenGL ist plattformübergreifend und kann daher für die Spieleentwicklung auf einer Reihe von Betriebssystemen und Spielkonsolen verwendet werden.
DirectX vs. OpenGL: Hardwareressourcen
DirectX überlässt die Hardwareverwaltung dem Entwickler und gibt Ihnen die Möglichkeit, Ressourcen effizient nach Bedarf zuzuweisen. OpenGL übernimmt die Hardwareverwaltung, aber dies kann seine eigenen Vorteile haben, da Sie sich nicht selbst um die Verwaltung von Ressourcen kümmern müssen.
DirectX vs. OpenGL: Dokumentation
Der Zugriff auf eine detaillierte Dokumentation kann die Spieleentwicklung bei der Arbeit mit APIs erheblich vereinfachen. DirectX und OpenGL bieten regelmäßig aktualisierte Dokumentation und hilfreiche Entwickler-Communities. Beide APIs erhalten große jährliche Updates, um sicherzustellen, dass sie die besten verfügbaren Funktionen bieten.
Verwenden von OpenGL vs. DirectX für die Spieleentwicklung
Entwickler haben viele schöne und gut optimierte Spiele auf dem modernen Markt entwickelt, die sowohl OpenGL als auch DirectX verwenden. Bei der Auswahl einer 2D/3D-Grafik-API sollten Sie einige Dinge beachten. Einige Entwickler verlassen sich einfach auf das Tool, mit dem sie sich am wohlsten fühlen.
OpenGL oder DirectX: Plattformen
Wir haben bereits Plattformen angesprochen, aber dies ist eine entscheidende Überlegung für Entwickler. Wenn Sie Spiele für Nintendo Switch, Playstation 4 oder Linux erstellen möchten, müssen Sie mit OpenGL oder einer anderen API mit Unterstützung dafür arbeiten. DirectX wurde für Windows und Xbox entwickelt und ist mit anderen Systemen nur eingeschränkt kompatibel.
OpenGL oder DirectX: Engine-Kompatibilität
Die meisten Spieleentwickler verwenden heutzutage Engines wie Unity und Unreal, um ihre Spiele zu erstellen. Beide Engines unterstützen OpenGL und DirectX, ebenso wie andere plattformübergreifende Spieleentwicklungs-Engines.
OpenGL oder DirectX: Benutzerfreundlichkeit
Einige würden argumentieren, dass es einfacher ist, mit OpenGL zu arbeiten als mit DirectX. Neben Hardware-Ressourcen verarbeitet OpenGL nur Grafiken, was es von Natur aus einfacher macht. Die Tatsache, dass es auf mehr Plattformen funktioniert, erleichtert auch die Veröffentlichung von Spielen mit dieser Anforderung.
Die Benutzerfreundlichkeit der Grafik-API ist für Spieleentwickler nicht mehr so wichtig wie früher. Mit Engines wie Unity Schnittstelle mit Grafik-APIs hinter den Kulissen, es ist nur ein Klick auf eine Schaltfläche erforderlich, um die von Ihnen verwendete API auszutauschen. Es ist unwahrscheinlich, dass Sie einen Unterschied in der Benutzerfreundlichkeit der einzelnen APIs bemerken, es sei denn, Sie erstellen ein Spiel von Grund auf neu.
OpenGL oder DirectX: Grafikfunktionen
Wenn Sie kein Randfall sind, ist es unwahrscheinlich, dass Sie einen großen Unterschied in den Funktionen feststellen werden, die Ihnen zwischen diesen zur Verfügung stehen APIs. Beide unterstützen die Fähigkeiten Ihrer Grafikkarte, und dies wird sich nur ändern, wenn GPUs dramatische Änderungen in der sehen Zukunft.
OpenGL oder DirectX: Spielleistung
Unter den Entwicklern wird viel über die Leistung dieser APIs diskutiert. Es ist schwer vorstellbar, dass OpenGL bzw DirectX weist erhebliche Leistungsunterschiede auf, obwohl die Behauptung, OpenGL sei reibungsloser und effizienter, weit verbreitet ist online.
Welche dieser APIs am besten abschneidet, lässt sich nur durch Testen herausfinden. Dank der Kompatibilität von Unity mit beiden APIs können wir ein Projekt erstellen und ein Beispielspiel mit beiden APIs testen einen Leistungsmaßstab erstellen.
Diese Tests wurden sowohl mit 2D- als auch mit 3D-Grafiken durchgeführt, um sicherzustellen, dass ihre unterschiedlichen Pipelines kein wesentlicher Faktor sind. Jeder Test läuft für 120 Sekunden reguläres Gameplay und Frames pro Sekunde werden gemessen, um die Leistung zu bestimmen. Alle Tests wurden auf demselben PC durchgeführt.
3D-Leistungstest: Unity Carting Microgame
Das Unity Carting Microgame ist eine kostenlose Vorlage, die alles enthält, was Sie zum Erstellen eines einfachen Rennspiels benötigen. Es kommt mit Tutorials, aber wir interessieren uns mehr für das Spiel selbst. Wir haben das Carting Microgame sowohl mit OpenGL als auch mit DirectX erstellt, um ihre Leistung zu vergleichen, und die Ergebnisse waren wie folgt:
Niedrigste | Höchste | Durchschnitt | |
---|---|---|---|
DirectX | 331 | 848 | 365.05 |
OpenGL | 247 | 819 | 283.7 |
DirectX übertraf OpenGL in unserem 3D-Benchmark und erreichte durchgehend beeindruckende Bildraten. Die Ergebnisse von OpenGL sind immer noch mehr als spielbar.
2D-Leistungstest: Unity Platformer Microgame
Ähnlich wie das Carting Microgame ist das Unity Platformer Microgame kostenlos und vollgepackt mit großartigen Lernwerkzeugen. Wie erwartet schneidet das 2D-Spiel in unseren Tests besser ab als das 3D-Spiel, aber Sie können die Ergebnisse selbst beurteilen.
Niedrigste | Höchste | Durchschnitt | |
---|---|---|---|
DirectX | 599 | 850 | 767.367 |
OpenGL | 302 | 604 | 515.417 |
Wie Sie den obigen Ergebnissen entnehmen können, erreichte DirectX in unseren Tests eine viel höhere durchschnittliche Bildrate. Obwohl der Unterschied dramatisch aussehen mag, sind beide Ergebnisse sehr gut spielbar.
OpenGL oder DirectX 11: Fazit zur Leistung
Während viele Leute sagen, dass OpenGL besser abschneidet als DirectX, hat die letztere API in unseren beiden Benchmarks bessere Ergebnisse erzielt. Dies ist alles andere als schlüssig, da viele Faktoren eine Rolle bei der Bestimmung der Leistung eines Spiels spielen, insbesondere wenn sie komplexer werden.
DirectX oder OpenGL: Was sollten Sie für die Spieleentwicklung verwenden?
Die Wahl der richtigen Grafik-API hängt von mehreren Faktoren ab. DirectX ist die am weitesten verbreitete Grafik-API. Viele Spieleentwickler erstellen ihre Spiele für Windows und Xbox, bevor sie sie für andere Plattformen auf OpenGL portieren. Wenn Sie ein Spiel ausschließlich außerhalb von Windows und Xbox veröffentlichen, profitieren Sie möglicherweise von Anfang an von der Verwendung von OpenGL.
Die Leistung ist ebenfalls ein zu berücksichtigender Faktor, obwohl unsere Tests zeigen, dass dies bei der Verwendung von Engine-Tools wie Unity ziemlich vernachlässigbar ist. Im Wesentlichen sind die Unterschiede zwischen diesen beiden Grafik-APIs nur für diejenigen von Bedeutung, die nach bestimmten Nischenfunktionen suchen.