Entscheidungshilfe: OpenGL oder DirectX

Für Fragen zu Grafik APIs wie DirectX und OpenGL sowie Shaderprogrammierung.
Antworten
Raven280438
Establishment
Beiträge: 140
Registriert: 03.10.2010, 20:14

Entscheidungshilfe: OpenGL oder DirectX

Beitrag von Raven280438 »

Hi,

ich hab mich in den letzten Wochen sowohl mit den DirectX11 und OpenGL4 Grundlagen beschäftigt.

Leider kann ich mich immernoch nicht entscheiden, mit welcher API ich mich weiter beschäftigen soll.
Ich persöhnlich fand DirectX11 leichter und verständlicher und besser dokumentiert.

Wie groß ist der Anteil an Linux/Mac Spielern im Moment, und wohin geht die Entwicklung? Ich möchte mit meinen Spielen ein möglichst großes Publikum erreichen.


Wie baue ich mein Projekt am besten auf, damit ich später nen Renderer einer anderen API nutzen kann?



Gruß
Benutzeravatar
xq
Establishment
Beiträge: 1581
Registriert: 07.10.2012, 14:56
Alter Benutzername: MasterQ32
Echter Name: Felix Queißner
Wohnort: Stuttgart & Region
Kontaktdaten:

Re: Entscheidungshilfe: OpenGL oder DirectX

Beitrag von xq »

Hmm, das ist immer die Frage. Ich würde mich mittlerweile komplett für OpenGL 4 entscheiden, weil es zwar ein bisschen komplizierter zu programmieren ist, dafür aber auch wesentlich flexibler und mächtiger. Die Dokumentation von DirectX ist aber wesentlich besser imho.
Dagegen hast du unter Linux eben auch die gcc-Toolchain. Die mag man oder mag sie nicht.
Was du bei OpenGL halt immer noch brauchst ist irgendeine Wrapper-Library, mit der du dein Fenster erstellst. Da taugt aber SDL2 oder ähnliches.

Am besten strukturierst du dein Projekt so, dass das Rendering nicht direkt von den Szenen-Objekten übernommen wird sondern von einem dafür programmierten, abstrakten Renderer.
Wenn du die Abstraktion weit genug treibst, kannst du später sogar DirectX 11 und OpenGL 4 austauschen, auch wenn das mit den ganzen Shadern nicht unbedingt so toll wird.

Grüße
Felix
War mal MasterQ32, findet den Namen aber mittlerweile ziemlich albern…

Programmiert viel in ⚡️Zig⚡️ und nervt Leute damit.
Spiele Programmierer
Establishment
Beiträge: 426
Registriert: 23.01.2013, 15:55

Re: Entscheidungshilfe: OpenGL oder DirectX

Beitrag von Spiele Programmierer »

Fenstererstellen mache ich immer mit GLFW3. Dafür SDL(2) als Abhänigkeit zu schaffen und dann nur ein Fenster zu erstellen ist meiner Ansicht nach etwas übertrieben.

Ich verwende ausschließlich nur noch OpenGL, weil ich Platfromunabhänig bleiben möchte und mit Dx hätte ich nur die doppelte Arbeit. Dann kommt noch dazu, dass Microsoft ihre Dx Versionen nur noch für ihr neustes Betriebssystem rausbringt. Das heißt dann in der Regel so viel wie, entweder uralt Version nutzen (Momentan vlt. sogar noch Dx9 für WinXP, wenn das auch langsam aus der Mode kommt) oder Renderer für mehrere Versionen.
Bei OpenGL gibt es keine Bindung an eine Betriebssystemversion und außerdem gibt es Extensions für einige zusätzliche Features.
Leider sind die Treiber für OpenGL von einigen Herstellern nicht so gut wie für Dx.
Die offizielle Dokumentation fand ich bisher immer ganz in Ordnung.
Benutzeravatar
xq
Establishment
Beiträge: 1581
Registriert: 07.10.2012, 14:56
Alter Benutzername: MasterQ32
Echter Name: Felix Queißner
Wohnort: Stuttgart & Region
Kontaktdaten:

Re: Entscheidungshilfe: OpenGL oder DirectX

Beitrag von xq »

Man kann ja SDL auch für Input verwenden, hat ja Support für alles, was man für Spiele so braucht. Die einzige Sache, die man eben dann nicht mehr nutzt, ist das Rendering von SDL (wobei man das ja sogar für 2D gut verwenden kann)
War mal MasterQ32, findet den Namen aber mittlerweile ziemlich albern…

Programmiert viel in ⚡️Zig⚡️ und nervt Leute damit.
Spiele Programmierer
Establishment
Beiträge: 426
Registriert: 23.01.2013, 15:55

Re: Entscheidungshilfe: OpenGL oder DirectX

Beitrag von Spiele Programmierer »

GLFW hat auch Input.
Aber kein Rendering, kein Netzwerk und nicht die ganzen anderen Dinge von SDL(2).
Raven280438
Establishment
Beiträge: 140
Registriert: 03.10.2010, 20:14

Re: Entscheidungshilfe: OpenGL oder DirectX

Beitrag von Raven280438 »

Hallo,

ich möchte den Thread nochmal aufgreifen.

Ich habe in letzter Zeit vermehrt mit OpenGL gearbeitet.
Viele Tutorials zu weiterführenden Themen (zB Terrain-Generierung) sind aber halt für DirectX.

Da ich immernoch recht am Anfang bin (bisher hauptsächlich 2D) stellt sich immernoch die Frage, ob es für mich als (immernoch) Anfänger nicht doch besser wäre, auf DirectX umzusteigen.

Mein Problem dabei ist, dass ich nicht weis wie die Zukunft aussieht. Kann man davon ausgehen, dass in 10 Jahren immernoch hauptsächlich auf Windows gespielt wird, oder kann man einen Trend zu alternativen Plattformen (zB auch Mobile) absehen?
Benutzeravatar
Schrompf
Moderator
Beiträge: 4855
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: Entscheidungshilfe: OpenGL oder DirectX

Beitrag von Schrompf »

Es gibt da diverse Trends. Mobile ist da und wird auch nicht wieder gehen, ist für die allermeisten Leute aber ein Glücksspiel. DirectX und OpenGL werden beide langsam unwichtiger, weil immer mehr Leute auf diesem Niveau gar nicht mehr anfangen, sondern sich eine fertige Engine mit Editor greifen. Wenn Du Programmierer sein willst und kein Spieleentwickler, sind DirectX und OpenGL immernoch wertvolle Kenntnisse. Aber dann ist Dir das eh wurscht - die beiden sind sich ähnlicher, als Du vielleicht denkst. Fang mit einem an, bleib dabei, und irgendwann willst/musst Du eh wechseln, dann kannst Du beide.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Spiele Programmierer
Establishment
Beiträge: 426
Registriert: 23.01.2013, 15:55

Re: Entscheidungshilfe: OpenGL oder DirectX

Beitrag von Spiele Programmierer »

Also letztens hat jemand hier gefragt, wo er gute DirectX-Tutorials findet, weil die Rastertek dicht gemacht hat. Dabei ist mir aufgefallen das ich sehr wenige DirectX Tutorials gefunden habe, wovon auch eine Seite Bezahlung verlangt hat. Vielleicht liegt es daran, weil ich hauptsächlich mit OpenGL zu tun habe und da schon einige Seiten über die Zeit gefunden habe, aber mein Eindruck war, dass es deutlich weniger DirectX als OpenGL Tutorials gibt. OpenGL Tutorials gibt es doch in rauen massen. Viele leider nicht mehr aktuell aber trotzdem noch genug die auch modern sind. opengl-tutorial.org, OpenGL Wiki, lighthouse3d - glsl-core-tutorial, ogldev, arcsynthesis gltut, ... und es gibt ja noch viele weitere (ver)alte(te) Tutorialserien, DelphiGL, NeHe und sehr viele mehr!

Dann gibt es noch erweiterte Techniken die eher beschrieben werden, GPU Gems oder häufig auch in Form von Papern. Dort habe ich bisher nicht wirklich den Eindruck das entweder OpenGL oder DirectX total die Oberhand hat und außerdem ist es dabei auch nahe irrelevant, schließlich geht es um die Technik dahinter und nicht wie der Befehle in der einen oder anderen API heißen. Terrain-Rendering zähle ich auch in diese Gruppe. Wenn du damit anfangen willst, solltest du die API deiner Wahl so gut beherrschen, dass es keinen großen Unterschied mehr macht mit welcher API der Autor gerendert hat. Terrain-Generierung ist weiterhin sogar etwas das mit OpenGL/DirectX wenn man nicht ausgerechnet ComputeShader verwendet(normalerweise eher nicht und auch kein problemfreier Ansatz) dann hat das mit der Grafik-API absolut gar nichts zu tun. Schließlich wird das Terrain auch für die Spiellogik gebraucht.
Matthias Gubisch
Establishment
Beiträge: 470
Registriert: 01.03.2009, 19:09

Re: Entscheidungshilfe: OpenGL oder DirectX

Beitrag von Matthias Gubisch »

Also die besten DirectX Tutorials gabs es bisher immer im DirectX-SDK

Ansonsten stimmte ich Schrompf zu, der Trend für Spieleentwicklung geht mehr in richtung fertiger Toolchain (UDK, Unity usw.)

Und für den Entwickler der selber die Technik lernen will ist es ziemlich egal, nimm das was deine Entwicklungsplattform bzw aktuelle Zielplatform am besten unterstützt und los gehts.
Bevor man den Kopf schüttelt, sollte man sich vergewissern einen zu haben
Antworten