2010-12-30 7 views
31

Ich habe gerade die fünfte Ausgabe der OpenGL SuperBible gekauft. Ich bin sehr erfreut, dass sie die Verwendung veralteter Funktionen vermieden haben, aber ihre Beispiele verwenden GLTools. bietet eine Reihe nützlicher Funktionen zum Rendern einfacher 3D-Objekte und zur Verwaltung der View-Kerne, Kameras und Transformationsmatrizen.Wo finde ich ein gutes Online-Tutorial zu OpenGL 3.0, das keine veralteten Funktionen verwendet?

Das ist alles toll, aber die Abstraktion zur Verfügung verbirgt Low-Level-Details und ich habe Schwierigkeiten, um Code, wo ich nicht verwenden kann GLTools - zum Beispiel pyopengl. Die überwiegende Mehrheit der Tutorials, die ich online gesehen habe, verwenden den Sofort-Modus, den ich vermeiden möchte. Diejenigen, die glDrawArrays verwenden, verwenden glEnableClientState, die ich auch vermeiden möchte.

Was ich suche ist einleitende Tutorials, die vollständig OpenGL 3.x-konform sind. Wenn das zu groß ist, wäre vielleicht eine Wäscheliste mit guten "Startpunkt" -Funktionen in Ordnung.

+0

Was mit herauszureißen falsch ist die Code-Sequenzen, dass 'GLTools' verwendet? – genpfault

Antwort

41

Bleib weg von NeHe, die Tutorials sind hoffnungslos veraltet und enthalten auch viele "problematische" Sachen.

Für mit 3.x starten, versuchen diejenigen, sind sie beide up-to-date:

Aurian (Joe Groff)

Arcsynthesis (Jason L. McKesson)

-Update :
Re-Lesen meiner eigenen Post fast 2 Jahre später, ich denke, dass man finden könnte, dass es ein bisschen hart klingt.

Dies ist natürlich nicht die Absicht. Die Kernnachricht (die gültig bleibt), die ich geben wollte, war, dass NeHe sich immer noch mit OpenGL 1.x/2.x beschäftigt und einige nicht unterstützte "antike" Bibliotheken verwendet.
Im Allgemeinen bedeutet dies nicht, dass die Tutorials notwendigerweise schlecht sind, aber beginnend von dort bedeutet das Starten von zwei Generationen hinter dem aktuellen Stand der Technik, und eine Generation hinter dem Minimum sollte lernen. Learning Legacy OpenGL wird zu einem späteren Zeitpunkt verlangen, dass Sie fast alles, was Sie wissen, vergessen und neu lernen.

Das heißt, die NeHe-Startseite verlinkt jetzt auf eine tutorial focussed on OpenGL 3.3 von Damien Mabin, die auf den ersten Blick recht nett aussieht (obwohl ich vor Neujahr keine Zeit haben werde, es gründlich durchzulesen).

+3

Ich stimme zu, und alte Bibliotheken wie glaux.h werden nicht einmal mehr unterstützt. Das Problem mit der Empfehlung von NeHe ist noch immer das Google-Ergebnis Nummer eins für "OpenGL-Tutorial". Kein Wunder, dass so viele noch immer davon schwärmen. –

+3

Kurzer Tipp: Zum jetzigen Zeitpunkt scheint der erste Link (Aurian) eine schnelle und schmutzige Einführung in OpenGL zu sein, während der zweite Link ein vollständigerer, detaillierterer und (meiner Meinung nach) professionellerer Überblick zu sein scheint die gesamte Spezifikation/C-API. Ich persönlich fand Archsynthesis unschätzbar. +1 von mir. – Qix

+0

Auch: Beide Tutorials verwenden ältere, vor 3.0-Funktionalität. – Qix

3

https://bitbucket.org/rndblnch/opengl-programmable

ein kurzer Schritt für Schritt Anleitung zu OpenGL programmierbarer Pipeline (OpenGL/OpenGL | ES 2.x) für Menschen, die bereits vertraut mit der festen Pipeline. Abhängigkeiten: python 2.5+, PyOpenGL 3.0.1 +

Aufeinanderfolgende Versionen eines kleinen, aber ziemlich vollständigen glut/opengl-Programms, das im direkten Modus startet und Schritt für Schritt in die programmierbare Pipeline umgewandelt wird. Sehen Sie sich die Diffs zwischen aufeinanderfolgenden Versionen an, um eine Hervorhebung der erforderlichen Änderungen zu erhalten (z. B. https://bitbucket.org/rndblnch/opengl-programmable/changeset/b21131e37ed7).