GLTools und GLUT sind nicht dasselbe. GLUT ist für den Umgang mit Dingen außerhalb von OpenGL verantwortlich. GLUT erstellt und verwaltet ein Fenster und einen OpenGL-Kontext. Das eigentliche Material, das in diesem Kontext vor sich geht (auch bekannt als: OpenGL), liegt nicht in der Verantwortung von GLUT.
Maik hat bereits die Gründe behandelt, warum Sie GLUT in ernsthaften Anwendungen nicht sehen. GLTools ist eine andere Sache.
GLTools ist nur ein Framework, ein Wrapper für OpenGL-Inhalte. Es gibt viele Gründe, es nicht für ernsthafte Arbeiten zu verwenden:
- Es ist ineffizient. Wenn es auf die Leistung ankommt, sollten Sie sie umgehen.
- Es ist nicht sehr gut. Nehmen Sie zum Beispiel den GLShaderManager. Es lädt entweder die Shader oder gibt 0 zurück. Wenn ein Compiler- / Linker-Fehler vorliegt, gibt es keine Informationen dazu. Ja, es schreibt das Protokoll in stderr, aber nicht jeder hat stderr an eine sichtbare Stelle weitergeleitet. Ausnahmen sind eher schwer zu ignorieren.
Ich habe Leute darüber streiten lassen, dass das Buch nicht wirklich lehrt, wie man OpenGL benutzt, sondern wie man zwei der damit verbundenen Wrapper-Bibliotheken benutzt
Dies ist eine Nebensache, aber im Allgemeinen ist das Problem in dieser Hinsicht recht einfach. 5. lehrt Sie, das Framework zu verwenden, bevor Sie erklären, was dieses Framework tut. Sie lernen also, wie Sie das Laden von Netzen verwenden, wie Sie den Code zur Generierung der perspektivischen Matrix, die Standard-Shader usw. verwenden, bevor Sie lernen, was ein Shader ist, welche Vertex-Attribute es gibt und so weiter.
Es handelt sich im Grunde genommen um eine Programmierung mit festen Funktionen für den ersten Teil des Buches. Es wird nur ein eigener Code mit festen Funktionen anstelle von OpenGLs verwendet.
Es ist nicht so, dass es ein Framework verwendet, das das Problem ist. Das Problem ist, dass das Framework verwendet wird, um Details zu verbergen, die nicht erklärt wurden, anstatt Details zu verbergen, die für die aktuelle Lektion unwichtig sind. Nachdem Sie den Shader-Ladecode einige Male gesehen haben, müssen Sie ihn nicht mehr sehen, sodass er eine Bibliotheksfunktion sein kann.
Ein besserer Weg, das Buch zu strukturieren, wäre gewesen, die Teile des Frameworks zu verwenden, nachdem die zugrunde liegenden OpenGL-Aufrufe gezeigt wurden, die das Framework ausführt. Die Standard-Shader sind in Ordnung, sollten jedoch erst verwendet werden, nachdem der Benutzer die Shader manuell in Aktion gesehen hat. Gleiches gilt für das Laden und Handhaben von Maschen, Texturen usw.