Gibt es ein gutes Tutorial, das den Unterschied zwischen OpenGL 1. * und 2. * zeigt?
Es wäre sehr hilfreich zu wissen, welche Funktionen ich nicht aufrufen sollte (wie glBegin (), nehme ich an).
Gibt es ein gutes Tutorial, das den Unterschied zwischen OpenGL 1. * und 2. * zeigt?
Es wäre sehr hilfreich zu wissen, welche Funktionen ich nicht aufrufen sollte (wie glBegin (), nehme ich an).
Antworten:
Die Einstiegsseite von OpenGL.org enthält eine Übersicht mit zahlreichen Links zu verschiedenen Tutorials.
Kurz gesagt, OpenGL 2.0 bewegt sich zwischen der Welt der festen Funktionen (1.x) und der vollständig programmierbaren Welt (2.x +). Sie können weiterhin alle Funktionen von OpenGL 1.x verwenden, während Sie Shader hinzufügen. In Zukunft (3.x +) werden jedoch alle Arten von alten Systemen mit festen Funktionen allmählich veraltet. Daher ist es möglicherweise besser, einen sauberen Start zu haben, als beide Welten zu mischen.
Ich bin auch überrascht, dass dies vorher nicht gefragt wurde. Oder zumindest konnte ich es bei einer schnellen Suche nicht finden.
OpenGL-Versionen sind im Großen und Ganzen nicht mit Direct3D-Versionen vergleichbar. Ihr alter Code funktioniert weiterhin mit den neuen Versionen (mit einer Ausnahme). Daher funktioniert OpenGL v1.4 unter OpenGL 2.1 einwandfrei. OpenGL-Versionen sind Additionen, keine Subtraktionen.
OpenGL 2.0 und 2.1 fügen Shader in der OpenGL Shading Language hinzu. Sie fügen auch einige andere Features hinzu, wie Gleitkomma-Texturen, Nicht-Zweierpotenzen-Texturen und so weiter. Die vollständige Liste ist in der OpenGL 2.1-Spezifikation selbst verfügbar . Schauen Sie sich einfach die Abschnitte "Version" an. Sie erfahren, was sich gegenüber der vorherigen Version geändert hat.
Die einzige Ausnahme von der Regel zu API-Änderungen ist OpenGL 3.1 (yes, 3.1, not 3.0). In OpenGL 3.0 wurde eine Reihe von APIs als "veraltet" bezeichnet. Dies bedeutet, dass der ARB, der für OpenGL zuständige Ausschuss, diese Funktionen aus späteren Versionen entfernen könnte. Diese Entfernung erfolgte in OpenGL 3.1. Die 3.0-Spezifikation enthält eine große Liste veralteter Inhalte, und die 3.1-Spezifikation wird entsprechend gekürzt.
Beachten Sie, dass Sie sich nicht darum kümmern müssen (zumindest unter Windows und Linux. MacOSX ist anders). Sie können problemlos im Kompatibilitätsmodus arbeiten, in dem alle zuvor entfernten Funktionen wiederhergestellt werden. OpenGL-Implementierungen müssen keine Kompatibilitätskontexte unterstützen (und Mac OS X Lion nicht. Es unterstützt entweder den 2.1- oder den 3.2-Kern, wenn Sie dies wünschen), aber alle von ihnen tun dies dennoch. Nur aus Gründen der Abwärtskompatibilität mit älteren Anwendungen.
Ich glaube, dass es Tutorials für opengl 1.x und 2.x gibt, aber es wird höchstwahrscheinlich keine Tutorials geben, die zeigen, wie sich diese von den Funktionen, der Benutzerfreundlichkeit usw. unterscheiden.
Suchen Sie am besten nach Tutorials für die jeweilige OpenGL-Version, suchen Sie nach ähnlichen Tutorials und vergleichen Sie sie selbst.