Was ich im Internet und in verschiedenen Quellen zusammengetragen habe, ist, dass DirectX die Grafik-API-Domäne weitgehend in den Griff bekommen hat. Um ehrlich zu sein, habe ich dem Lernen von DirectX10 eine Chance gegeben, aber ich kann es einfach nicht ertragen, wie die Dinge initialisiert werden. es war sehr schwierig, den tatsächlichen 3D-Teil wirklich zu lernen.
OpenGL ist aus meiner Sicht viel sinnvoller, aber ich bin mir nicht sicher, ob ich Zeit in etwas investieren möchte, das "nicht von Dauer ist". Ich halte mich nicht mit den neuesten Nachrichten auf dem Laufenden und weiß auch nicht viel über den "Krieg" zwischen OpenGL und DirectX. Wird OpenGL, wenn das gesagt ist, bald verschwinden? Das, was ich an OpenGL mag, ist, dass es viel mehr Ressourcen gibt (ob über Bücher / Tutorials / Beispiele) als für DirectX, so dass es viel einfacher zu erlernen ist.
Ist es also immer noch eine gute Zeit, OpenGL zu lernen, oder ist DirectX nur die Zukunft? Jetzt weiß ich, dass es 100.000 Themen gibt, über die besser gesprochen wird, aber das ist nicht meine Frage. Ich frage nur, ob OpenGL dabei bleibt.
Antworten:
Ja.
Technologie verschwindet nie einfach - sobald sie eine kritische Masse erreicht hat, bleibt sie für eine lange Zeit bestehen, auch wenn sie sich nie mehr aktiv entwickelt. Es wird sehr lange dauern, bis die Aussage "Es ist Zeitverschwendung, OpenGL zu lernen" wahr ist.
Obwohl ich Ihre Motivation und Argumentation als etwas verdächtig empfinde, ist es nichts Falsches, OpenGL zu lernen, und es wird Ihnen ermöglichen, genau so viel über 3D-Grafiktheorie und -Programmierung zu lernen, wie es D3D tun würde. In der Tat könnte es sich lohnen, es als Lernmedium zu verwenden, auch wenn es als praktische Plattform nutzlos wäre, da die grundlegenden Konzepte zwischen APIs übertragen werden. Solange es Ihnen dabei hilft, diese Konzepte zu erwerben, ist es eine gute Wahl.
quelle
Dies ist eine Frage, die nur Sie wirklich beantworten können. Aber,
Ich glaube nicht, dass irgendjemand vorhersagen kann, bei wem man bleiben wird. Ich würde sagen, verwenden Sie jetzt, was für Ihre Zwecke am besten ist, und Sie können den anderen später immer noch abholen. Ich habe nur DirectX verwendet, nur weil es meinen Zwecken entsprach, aber wenn ich festgestellt hätte, dass OpenGL für mich einfacher in meinem Spiel zu verwenden ist, hätte ich es verwendet.
Wenn Sie es gerne benutzen oder etwas damit erreichen, ist es keine Verschwendung.
quelle
Open GL ist die Basis für Web GL , und während Web GL noch in den Kinderschuhen steckt, wird es nützlich sein, dies zu wissen, wenn es sich weit verbreitet. Zusammen mit der Tatsache, dass es im Allgemeinen plattformübergreifender ist als DirectX (in anderen Antworten behandelt), wird es schließlich eine der Optionen für die Erstellung eines 3D-Webbrowserspiels sein.
Zur Beantwortung Ihrer Frage: Wenn WebGL zum Standard wird, bleibt OpenGL für eine gute, lange Zeit bestehen.
quelle
Nicht ganz nutzlos. Es sei darauf hingewiesen, dass Mac-Systeme immer noch nur OpenGL und nur bis OpenGL 2.1 unterstützen. Dies bedeutet, dass jedes Spiel, das Sie auf einem Mac sehen (einschließlich einiger Spiele der Quell-Engine wie Portal, Left 4 Dead, Left 4 Dead 2), mit OpenGL geschrieben wurde. Angesichts der Tatsache, dass Valve die Quell-Engine an OpenGL 2.1 anpassen und einige erstaunliche Dinge damit tun konnte, sind Sie wahrscheinlich ziemlich sicher, dort zu starten.
quelle
Initialisierungscode ist ein winziger Bruchteil des gesamten Codes, der sich mit einem Subsystem wie diesem Renderer befasst. Sie werfen die überlegene Objektorientierung und den Vorteil von DirectX weg, weil Sie die ersten zweihundert Zeilen nicht mögen. Ich möchte nicht so klingen, als würde ich Ihre Meinung hier trivialisieren, aber die Realität ist, dass im Vergleich zu all dem Code, den Sie schreiben, der sich mit jedem Rendering-Subsystem befasst, ganz zu schweigen von den anderen benötigten Subsystemen, die Initialisierung eine Trivialität ist.
Zweitens könnte man immer DX9 ausprobieren - es ist viel, viel weniger als DX10.
quelle
Es ist unwahrscheinlich, dass OpenGL in naher Zukunft nicht mehr eine aktiv entwickelte oder zielgerichtete Technologie sein wird. Im Vergleich zu Plattformen, auf denen jede API verfügbar ist, bietet D3D in erster Linie Xbox, Windows und Windows Phone 7. OpenGL funktioniert neben Mac OS X und Linux auch unter Windows. OpenGL ES ist für Android und iOS verfügbar.
Wenn Sie nur nach Fähigkeiten suchen, um einen gut bezahlten Job zu bekommen, müssen Sie wahrscheinlich DX lernen, da die meisten Mainstream-Spieleentwickler auf Windows und / oder Xbox abzielen. Obwohl der schnell wachsende Markt für mobile Spiele die Relevanz von OpenGL ES-Kenntnissen erhöht.
quelle
Wenn Sie mit der Grafikprogrammierung beginnen, spielt die Technologie eine Rolle, wenn Sie sich jedoch mit ihr vertraut machen, spielen nur die Konzepte eine Rolle, und sie sind bei Direct3D oder OpenGL gleich. Da die programmierbare Pipeline-Programmierung im Gegensatz zur Pipeline mit festen Funktionen zum Standard wird, ist der Teil, in dem Sie mit der Grafik-API interagieren, ein kleiner Teil der gesamten Arbeit.
Die andere Sache ist, dass OpenGL auf Mobiltelefonen wirklich groß ist. Es heißt OpenGL ES und ist auf vielen Ebenen genau so wie OpenGL 4.1 / 4.0 / 3.3 / 3.2.
quelle
Sie können ein guter Spielprogrammierer sein, ohne OpenGL oder DX zu berühren. Alles, was Sie lernen müssen, ist, eine gute Spiele-Engine wie Unity richtig einzusetzen. Wenn Sie jedoch ein tieferes Level erreichen und die Funktionsweise der Game Engine verstehen möchten, sollten Sie OpenGL lernen. Sie werden nicht viel davon in Bezug auf "Qualität" gewinnen, also wird es zu Lernzwecken sein.
Mein Rat ist also, dass Sie lernen, eine Game Engine zu verwenden, weil Sie wahrscheinlich genau das tun, was Sie in Ihrer Karriere tun werden (Pro oder Indie) und auch eine Grafikbibliothek wie OpenGL nur zu Lernzwecken lernen. (oder wenn Sie eine Spiel-Engine erstellen oder ändern möchten)
quelle
Ich bin mir sicher, dass andere Ihnen bereits viele der verschiedenen Gründe genannt haben, warum Sie OpenGL lernen sollten, und warum es definitiv so bleiben wird, aber hier ist ein weiterer, bahnbrechender Grund: Valve hat vor kurzem begonnen, Linux zu entwickeln und zu unterstützen . Was bedeutet das? Nun, es bedeutet, dass die meisten Entwickler OpenGL verwenden werden.
Selbst jetzt bekommt OpenGL die meisten Funktionen schneller, es wird auf vielen verschiedenen Plattformen unterstützt und viele sind sich einig, dass dies die Zukunft ist.
quelle
Hier ist die Unebenheit. DirectX ist auf Microsoft-basierte Systeme wie Windows- und XBox-Konsolen beschränkt.
OpenGL hingegen läuft auf fast allem in der einen oder anderen Version.
Was "sollten Sie es lernen" betrifft, wenn Sie vorhaben, ein Grafikprogrammierer zu sein, lautet die einfache Antwort: Lernen Sie beides, und wenn Sie einen blitzschnellen Renderer schreiben möchten, lernen Sie Mantle / Vulkan (nicht für schwache Nerven). .
Wenn Sie jedoch nur Spiele machen möchten, kümmern Sie sich nicht darum. Sie werden viel produktiver lernen, mit Unity oder Unreal zu entwickeln.
quelle
Es sieht so aus, als ob Sie sich in der Phase "Twiddling your Thumb" befinden und nicht in der Phase "Was sollen wir verwenden, um unsere nächste Engine zu codieren?". Ich würde weder empfehlen, OpenGL noch Direct3D zu lernen.
Suchen Sie sich eine übergeordnete Bibliothek, die es Ihnen leichter macht, und beginnen Sie, anstatt auf die Berge der Dinge zu starren, die Sie zu lernen glauben.
Sie müssen mit übergeordneten Konzepten wie Vektor-Mathematik, Textur-Mapping usw. vertraut sein, bevor Sie mit OpenGL produktiv sind. Wählen Sie also eine Bibliothek wie Ogre3D, Unity, Panda3D usw., die für Ihre Plattform sinnvoll ist, und beginnen Sie mit der Erstellung. Sobald Sie es tun und nicht starren , können Sie sehen, was als nächstes zu lernen ist, was Sinn macht.
Ich wette, OpenGL oder Direct3D werden sehr spät in dieser Liste der Dinge auftauchen, die es zu lernen gilt.
quelle
Wie aus den heutigen Nachrichten (GL4.3 / ES3) hervorgeht, ist OpenGL nicht mehr weg und es lohnt sich immer noch, in es zu investieren. Wenn Sie Linux oder Max OS zum Ziel haben möchten, benötigen Sie OpenGL und ES ist vollständig dominant in der mobilen Domain.
Abgesehen davon sollten Sie langfristig ernsthaft darüber nachdenken, beide APIs zu erlernen, da das Wissen über beide für Ihre persönliche Entwicklung besser ist. Die einzige wirkliche Frage ist, was Sie zuerst lernen müssen. Da OpenGL für Sie einfacher ist, ist dies die Entscheidung, die Sie getroffen haben.
quelle