OpenGl gute 3D-Bibliothek?



  • Hallo,
    ich will mich etwas mit 3D-Programmierung auseinadersetzten und will wissen, ob OpenGl eine gute Bibliothek ist oder ob ihr mir noch weitere empfehlen könnt ( Qt-3D, DirectX...).



  • Das kommt jetzt drauf an was du machen willst.

    OpenGL, DirectX und Vulkan sind grundlegende APIs für 3D. Sie stellen grundlegende Funktionen zur Verfügung, aber eben auch nicht mehr, man kann damit alles amchen, kriecht aber ne weile im Schlamm rum bis man die ersten Ergebnisse hat.

    Qt-3D oder auch jede beliebige Engine nutzen die oben genanten APIs und stellen basierend darauf Funktionalitäten zur Verfügung die das Arbeiten erleichtern und somit eher "sichtbare" Ergebnisse liefern. ZB Funktionen um einfacher UIs zu erstellen, Modelle zu laden usw.

    Was ist dir persönlich lieber?



  • Xebov schrieb:

    Was ist dir persönlich lieber?

    finden die Basis interessanter.



  • Dann wäre meine Empfehlung wohl Direct3D 11...



  • Wie dot bereits sagte wäre die beste Option damit DirectX11. Es gibt etliche Tutorials und ziemlich viele Beispiele dafür.

    Mit DirectX12 und Vulkan hab ich selbst noch nicht gearbeitet. Ich weiß daher nicht wie gut man da bereits Informationen bekommt.

    OpenGL wird, so wie ich das verstanden habe, nichtmehr wirklich weitergeführt und durch Vulkan ersetzt. Falsl ich heir falsch liege korrigiert mich bitte jemand.



  • OpenGL wird, so wie ich das verstanden habe, nichtmehr wirklich weitergeführt und durch Vulkan ersetzt. Falsl ich heir falsch liege korrigiert mich bitte jemand.

    zumindest kann man davon ausgehen dass noch einige Jahre OpenGL verwendet wird, Vulkan steckt erst in den Kinderschuhen.

    Spricht also nichts dagegen OpenGL zu lernen.



  • hfghfhgfghf schrieb:

    zumindest kann man davon ausgehen dass noch einige Jahre OpenGL verwendet wird, Vulkan steckt erst in den Kinderschuhen.

    Spricht also nichts dagegen OpenGL zu lernen.

    Mal eine andere Frage: Wenn ich mit OpenGL einigermaßen gut umgehen kann, wie leicht hab ich es dann DirectX zu lernen? (oder andersherum).

    Also wie gut kann ich die Logik des einen zum Erlehrnung des anderen verwenden. Ähnlich wie ich auch mein Wissen über C++ verwenden, wenn ich in der Schule mit Java programmieren muss. Dort kann ich ja auch so Dinge wie die meisten Syntaxen oder das Prinzip von Methoden oder das Prinzip von OOP und Vererbung adaptieren.

    Gut, in wie fern dies auch für librarys, welche einen ähnlichen Bereich (3D- Programmierung und grafisches Programmieren) abdecken, gilt weiß ich nicht.



  • win8789 schrieb:

    Mal eine andere Frage: Wenn ich mit OpenGL einigermaßen gut umgehen kann, wie leicht hab ich es dann DirectX zu lernen? (oder andersherum).

    Ich hab mit OpenGL selbst nie Erfahrungen gemacht, allerdings mit DirectX9 und 11. Die Grundlagen sind im wesentlichen die selben, da es ja nur einen Weg gibt wie die Konzepte funktionieren. Die Umsetzung unterscheidet sich natürlich mal mehr mal weniger. Grundsätzlich ist es aber Möglich nen leichteren Einstieg zu finden wenn man weiß wies Grundsätzlich funktioniert. Mir zumindest hat das wissen aus DirectX9 bei DirectX11 durchaus etwas weitergeholfen. Evtl schreibt aber noch jemand was dazu der sowohl DirectX als auch OpenGL Erfahrung hat.



  • Xebov schrieb:

    Ich hab mit OpenGL selbst nie Erfahrungen gemacht, allerdings mit DirectX9 und 11. Die Grundlagen sind im wesentlichen die selben, da es ja nur einen Weg gibt wie die Konzepte funktionieren. Die Umsetzung unterscheidet sich natürlich mal mehr mal weniger. Grundsätzlich ist es aber Möglich nen leichteren Einstieg zu finden wenn man weiß wies Grundsätzlich funktioniert. Mir zumindest hat das wissen aus DirectX9 bei DirectX11 durchaus etwas weitergeholfen. Evtl schreibt aber noch jemand was dazu der sowohl DirectX als auch OpenGL Erfahrung hat.

    wichtig wäre natürlich auch so Dinge wie der zugang zu guten Lehrnmitteln. Falls irgendwer etwas dazu hat, nur her damit.



  • In Sachen Lehrmittel ist Google ziemlich voll, da solltest du ohne Probleme Einsteigertutorials finden. Außerdem gibt es immer auch Dokumenttationen die ebenfalls Beispiele beinhalten. Grundsätzlich natürlich in Englisch eher als in Deutsch.



  • Xebov schrieb:

    In Sachen Lehrmittel ist Google ziemlich voll, da solltest du ohne Probleme Einsteigertutorials finden. Außerdem gibt es immer auch Dokumenttationen die ebenfalls Beispiele beinhalten. Grundsätzlich natürlich in Englisch eher als in Deutsch.

    jagut. es wäre halt nett eine Empfehlung zu bekommen.



  • Der größte Unterschied zwischen OpenGL und DirectX 11/12 ist meiner meinung nach, das DirectX vom Interface her mehr Objekt-Orientiert ist und OpenGL mehr Prozedural. Bei DirectX gibt es eine Device-Objekt und eine SwapChain. Mit diesen beiden Variablen erzeugt man dann ggf weitere Objekte und steuert die DirectX-Pipeline.

    OpenGL verbirgt diese Pipeline vor einen. Nach außen hin wird fast nur mit einfachen Datentypen (int/float) gearbeitet. Man sieht garnicht so richtig, was OpenGL damit intern dann alles macht.

    Dadurch hat DirectX zwar etwas mehr Quellcodezeilen in der Programmierung aber es erscheint mir logischer. Außerdem habe ich den Eindruck, dass neue Sachen zuerst bei DirectX erscheinen und danach kommen die Entwickler von OpenGL und bauen es bei sich dann ein.

    Meine Zeitabschätzung fürs Lernen:
    Wenn du also 1 Jahr Zeit damit verbringst, OpenGL oder DirectX zu lernen. Dann brauchst du vielleicht nochmal 1-2 Monate, um das gelernte Wissen in das jeweils andere zu übertragen.

    Da die beiden Sachen sich aber letzendlich doch schon ziemlich ähneln, was das Thema Lernaufwand bedeutet, würde ich sagen ist es egal was davon du dir zuerst anschaust. Am Besten du suchst im Internet für beides ein Tutorial, was ein einfaches Dreieck zeichnet. Dann siehst du schon recht gut innerhalb von ein Tag beide Sachen und kannst etwas vergleichen und dann entscheiden.



  • Ist das Tutortial ganz gut? http://www.directxtutorial.com/LessonList.aspx?listid=11
    würde aber den Part mit "win32 basics" überspringen und mit "Direct3D: Getting Started" starten. Sieht halt nicht ganz so umfangreich aus (auf den ersten Blick).

    Edit ich sehe gerade, dass ich nur die ersten Kurs nehmen kann. Für die weiteren benötige ich Permium. Das heißt wohl weiter suchen 😕



  • http://www.braynzarsoft.net/viewtutorial/q16390-braynzar-soft-directx-11-tutorials
    und ganz wichtig, sonst geht der Vorteil vom zuerst DirectX lernen verloren: msdn



  • dot hat im grunde recht schrieb:

    http://www.braynzarsoft.net/viewtutorial/q16390-braynzar-soft-directx-11-tutorials
    und ganz wichtig, sonst geht der Vorteil vom zuerst DirectX lernen verloren: msdn

    danke, aber was hat meinst du mit den letzten (msdn) https://msdn.microsoft.com/de-de/default.aspx?



  • win8789 schrieb:

    Xebov schrieb:

    Ich hab mit OpenGL selbst nie Erfahrungen gemacht, allerdings mit DirectX9 und 11. Die Grundlagen sind im wesentlichen die selben, da es ja nur einen Weg gibt wie die Konzepte funktionieren. Die Umsetzung unterscheidet sich natürlich mal mehr mal weniger. Grundsätzlich ist es aber Möglich nen leichteren Einstieg zu finden wenn man weiß wies Grundsätzlich funktioniert. Mir zumindest hat das wissen aus DirectX9 bei DirectX11 durchaus etwas weitergeholfen. Evtl schreibt aber noch jemand was dazu der sowohl DirectX als auch OpenGL Erfahrung hat.

    wichtig wäre natürlich auch so Dinge wie der zugang zu guten Lehrnmitteln. Falls irgendwer etwas dazu hat, nur her damit.

    die Frage ist halt: willst du eine Programmierschnittstelle (OpenGL, DX) lernen oder willst du 3D Programmierung ganz allgemein lernen?

    Im ersten Fall würde ich eher zu OpenGL tendieren, da es auf mehr Plattformen vorhanden ist und vor allem auch auf mobilen Plattformen gerade sehr im kommen ist (OpenGL ES).

    Im zweiten Fall solltest du dich allgemein mal mit Computergraphik beschäftigen und du wirst den Vorteil haben, dass du später viel besser mit OpenGL oder DX arbeiten kannst.

    In Sachen Lehrmittel ist Google ziemlich voll, da solltest du ohne Probleme Einsteigertutorials finden. Außerdem gibt es immer auch Dokumenttationen die ebenfalls Beispiele beinhalten. Grundsätzlich natürlich in Englisch eher als in Deutsch.

    Falls man Computergraphik auf einem halbwegs ernstzunehmendem Level betreiben will kommt man mit Internet Tutorials nicht weit.

    Eine gute Kombination aus Einsteigerbuch und Nachschlagewert ist folgendes Buch: Shirley - Fundamentals of Computer Graphics



  • ... und bezüglich OpenGL sehr empfehlenswert: Sellers - OpenGL Superbible
    Hier aufpassen, dass du eine aktuelle Ausgabe vom Buch erwischt, da es vor einigen Jahren mal eine größere Änderung bei OpenGL gab und man unbedingt das "neue" OpenGL lernen sollte.



  • gdfgdfgdfgd schrieb:

    Im ersten Fall würde ich eher zu OpenGL tendieren, da es auf mehr Plattformen vorhanden ist und vor allem auch auf mobilen Plattformen gerade sehr im kommen ist (OpenGL ES).

    Das ist ein Punkt wo ich mir ehrlich gesagt nicht ganz sicher bin. Für die Unreal Engine gibt es zB schon eine Umsetzung für Vulkan die auch auf Smartphones vorgeführt wurde. Ich bezweifel zwar das OpenGL in einer Nacht und Nebelaktion verschwinden wird, könnte mir aber auf lange Sicht durchaus vorstellen das es Stück für Stück abgelöst wird. Ich bin mir auch nicht ganz sicher inwieweit OpenGL dann auch weiterentwickelt wird. Ich hatte es so verstanden das da nichtmehr viel kommen soll.

    gdfgdfgdfgd schrieb:

    Falls man Computergraphik auf einem halbwegs ernstzunehmendem Level betreiben will kommt man mit Internet Tutorials nicht weit.

    Das ist natürlich richtig. Um allerdings erstmal ein grundlegendes Verständnis zu entwickeln wie es funktioniert und ob es einem ggf liegt reicht so ein kleines Tutorial am Anfang meiner Meinung nach aus, bevor man sich was Umfassenderes holt.



  • dot hat im grunde recht schrieb:

    http://www.braynzarsoft.net/viewtutorial/q16390-braynzar-soft-directx-11-tutorials
    und ganz wichtig, sonst geht der Vorteil vom zuerst DirectX lernen verloren: msdn

    muss dafür die win32 api lernen?



  • win8789 schrieb:

    muss dafür die win32 api lernen?

    Komplett lernen nicht, allerdings brauchst du ein paar Sachen. Minimum brauchst du ein Fenster und wissen um das Nachrichtensystem von Windows. Gute Tutorials decken da das nötigste eigentlich ab. Nutzt du ein anderes OS musst du antürlich schaun wies da funktioniert.


Log in to reply