2010-11-17 10 views
9

Vor 10 Jahren habe ich einige Spiele programmiert und OpenGL für den 3D-Grafikteil verwendet. Es waren nicht wirklich tolle Sachen, nur ein paar Skript-Kiddies versuchen, ein Spiel zu machen :-)re-learning opengl

Jetzt muss ich eine Szene zum Testen von Bildverarbeitungsalgorithmen visualisieren. Ich fragte mich: Was hat sich in diesen 10 Jahren verändert? (Ich denke viel?) Ist NeHe immer noch eine gute Quelle oder ist es veraltet? Gibt es gute Ressourcen, um die Lücke zu schließen?

Danke!

Antwort

7

NeHe ist gerade dabei, new tutorials zu schreiben. Einige der Dinge, an die Sie vor 10 Jahren gewöhnt waren, wurden mehr oder weniger aufgegeben (Kompatibilitätsprofile gibt es noch, aber sie sind veraltet), wenn Sie zu einer voll programmierbaren Pipeline und effizienteren Primitiven übergehen.

Zum Beispiel wird die Übergabe von Scheitelpunkten zwischen glBegin()/glEnd() zugunsten von Vertex-Buffer-Objekten und Vertex-Arrays zurückgelassen. Das alte Transformations- und Beleuchtungsmodell geht zugunsten von Fragment-Shadern verloren.

Ich würde vorschlagen, beginnend mit Joe Groffs intro to modern OpenGL, und erhalten Sie eine Kopie von The OpenGL SuperBible, 5th edition, die alle neuen Möglichkeiten der Dinge zu decken.

5

Die größten Veränderungen werden sich um den Einsatz von Shadern für alles ergeben. Wenn Sie jedoch nur einfache Szenen erstellen möchten, müssen Sie sie nicht verwenden.

Edit: Nachdem ich gerade die OpenGL SuperBible 5th Edition bekommen habe, kann ich auch die Empfehlung von greyfade wiederholen - das ist eine wirklich gute Einführung in die neuen Sachen.

+0

Sie brauchen * sie *. Wenn Sie keinen Shader angeben und über das Kompatibilitätsprofil auf alte GL-Funktionen zurückgreifen, generiert der Treiber eine Art Shader und verwendet ihn automatisch. :) Schreiben von Shadern ist einfacher. – Kos

+2

Kos, er sagte, Sie brauchen keine Shader. Und er hat Recht. Sie können weiterhin die alten Aufrufe der festen Funktionspipeline verwenden, ohne etwas über Shader zu wissen und ohne explizit Shader zu verwenden. –

2

Es gibt heutzutage neue Versionen von OpenGL (wir sind jetzt auf OpenGL 4), aber all die Dinge, die Sie damals gemacht haben, werden immer noch funktionieren. Wenn Sie nicht etwas besonders Kompliziertes tun, werden Sie wahrscheinlich nicht viel tun müssen, um die Lücke zu schließen - obwohl Sie es vielleicht noch wollen.

1

NeHe ist bei der letzten Überprüfung veraltet. Es geht immer noch durch das Setzen von Welt-Matrix, Texturen, Opazität, Nebel usw. in die feste Pipeline. Heutzutage wird alles durch Shader erledigt.

Die späteren Lektionen können durch Shader gehen, aber imo sollten Sie damit von vorne anfangen. Wenn du 3D gemacht hast, solltest du in der Lage sein, schnell mit Shadern Schritt zu halten.