Videotutorial zu OpenGL



  • Hallo zusammen,

    ich lerne gerade OpenGL mit diesem Video-Tutorial:

    http://www.videotutorialsrock.com/index.php

    Finde das auch echt gelungen, nur weiß ich gar nicht genau, ob das noch aktuell ist, was dort beigebracht wird.

    Kann mir jemand sagen, welche Version von OpenGL da beigebracht wird und ob es sich lohnt damit zu lernen?

    Vielen Dank schon einmal 🙂



  • Nun, gerade sehr aktuell scheint es nicht zu sein. Es werden zum Beispiel keine Shader erwähnt, stattdessen gibt es FFP, Immediate-Mode und Display-Listen. Zum lernen ist das alles schön einfach und funktionieren tut es obendrein auch noch, aber in Anbetracht des neuen Standards vom 11. März 2010 ist ein Grossteil davon veraltet. Ich mag dir aber keine Empfehlung abgeben, ob du noch damit lernen solltest, weil die Implementation der neuen Standards und der zugehörigen Ressourcen (also Treiber, Tutorials und Dokumentation) wohl noch lange auf sich warten lässt.



  • Danke für die Antwort!

    Werde dann jetzt mit diesem Videotutorial lernen, auch wenn es schon ein wenig veraltet ist.

    Ist irgendwie ärgerlich, wenn man anfängt was zu lernen und schon weiß, dass es nicht mehr so gemacht wird in Zukunft... 🙄

    Weiß denn jemand, welche OpenGL-Version dort benutzt wird?

    Ich habe Code:Blocks installiert, benutzte die OpenGL-Libraries, die da schon mikommen plus GLUT, was ich mir noch dazu geladen habe.

    Mit welcher Version arbeite ich dann wohl? 2.1?
    Weiß das jemand? Oder wo ich das sehen kann?
    Danke schon einmal



  • Barcellona schrieb:

    Mit welcher Version arbeite ich dann wohl? 2.1?
    Weiß das jemand? Oder wo ich das sehen kann?
    Danke schon einmal

    Bei OpenGL ist das System etwas anders als bei DirectX, so dass man das nicht so genau einordnen kann. Man schreibt sein Programm nicht für eine Spezielle OpenGL Version. OpenGL wird immer Stück für Stück erweitert, und wenn irgendeine verwendete Funktion erst ab Version x verfügbar ist, muss der Treiber und die Grafikkarte Version x unterstützen. Man braucht dafür auch keine neue Libs. Das wird alles über Extensions gemacht.

    Allerdings gibt es einen Schnitt bei OpenGL 3.2. Ab dieser Version gibt es zwei verschiedene Profile. Beim Core Profile wurden sämtliche Funktionen die mit der fixed function pipeline zu tun haben rausgeworfen. Das sind einige Funktionen, die man in vielen Tutorials findet (glBegin, die ganzen Matrix Funktionen etc.). Oft werden diese als veraltet bezeichnet, weil man in graphisch aufwendigeren Anwendungen nicht mehr auf die fixed function pipeline aufsetzt. Beim Compatibility Profile sind hingegen alle Funktionen noch enthalten. Das gibt es auch noch bei OpenGL 4.0. Bei NVidia steht auf der Seite auch, dass die "alten" OpenGL Funktionen über einen langen Zeitraum noch erhalten bleiben sollen.



  • Unter Windows hast du mit Code::Blocks nur OpenGL Version 1.4, allerdings sind, wie Tobiking2 schon anmerkte, alle Funktionen der neueren Versionen ueber Extensions verfuegbar. Ich benutze zum Beispiel GLew um an Dinge wie GLSL aus OpenGL 2.0 ranzukommen.
    Informationen dazu kannst du auch unter der OpenGL SDK Page finden.

    Wenn du allerdings aktuelle Linux-Distributionen verwendest, dann hast du mit der Mesa Bibliothek bereits OpenGL 2.1. Das ist halt das Problem mit M$... Die setzen auf ihr proprietaeres DirectX und interessieren sich ueberhaupt nicht fuer alternativen (gab es da nicht mal eine Negativkampagne gegen OGL?). Wieso sollten sie auch, da koennte man ja Anwendungen am Ende auf andere Betriebssyteme portieren. ;P



  • Corsair@01 schrieb:

    Das ist halt das Problem mit M$... Die setzen auf ihr proprietaeres DirectX und interessieren sich ueberhaupt nicht fuer alternativen (gab es da nicht mal eine Negativkampagne gegen OGL?). Wieso sollten sie auch, da koennte man ja Anwendungen am Ende auf andere Betriebssyteme portieren. ;P

    Ja, da hast du schon Recht, obwohl man auch sagen muss, dass in den vergangenen paar Jahren praktisch ausschliesslich Direct3D die treibende Kraft für den Fortschritt in der Echtzeitgrafik war und OpenGL diesem immer nachgezogen ist mit grosser Verzögerung. Microsoft kann zusammen mit den Hardwareherstellern schneller Änderungen durchpeitschen als das Konsortium hinter OpenGL. Auch hat Microsoft mit Direct3D 10 gezeigt, dass sie die Kompatibilität streichen können, wenn es Zeit ist. OpenGL entwickelt sich einfach zu langsam 😉

    Ich finde es aber trotzdem dumm, dass mit Visual C++ seit Jahren nur die Header für OpenGL 1.1 (oder so ähnlich) mitgeliefert werden 🙄

    MfG


Anmelden zum Antworten