Existe-t-il un bon tutoriel qui montre la différence entre OpenGL 1. * et 2. *?
Il serait très utile de savoir quelles fonctions je ne devrais pas appeler (comme glBegin (), je suppose).
Existe-t-il un bon tutoriel qui montre la différence entre OpenGL 1. * et 2. *?
Il serait très utile de savoir quelles fonctions je ne devrais pas appeler (comme glBegin (), je suppose).
Réponses:
La page de démarrage d'OpenGL.org a un aperçu, avec de nombreux liens vers divers didacticiels.
En bref, OpenGL 2.0 vit entre la fonction fixe (1.x) et le monde entièrement programmable (2.x +); vous pouvez toujours utiliser tout ce qu'OpenGL 1.x a, tout en ajoutant des shaders. À l'avenir (3.x +), toutes sortes d'anciens systèmes à fonction fixe commencent à devenir obsolètes, il est donc préférable d'avoir un départ propre au lieu de mélanger les deux mondes.
Je suis également surpris que cela n'ait pas été demandé auparavant ... ou du moins je ne l'ai pas trouvé lors d'une recherche rapide.
Les versions d'OpenGL, dans l'ensemble, ne sont pas comme les versions de Direct3D. Votre ancien code fonctionne toujours avec les nouvelles versions (à une exception près). Par conséquent, OpenGL v1.4 fonctionnera très bien sous OpenGL 2.1. Les versions d'OpenGL sont des ajouts, pas des soustractions.
OpenGL 2.0 et 2.1 ajoutent des shaders, dans le langage d'ombrage OpenGL. Ils ajoutent également plusieurs autres fonctionnalités, telles que les textures à virgule flottante, les textures sans puissance de deux, etc. La liste complète est disponible dans la spécification OpenGL 2.1 elle-même. Regardez les sections "Version"; ils vous diront ce qui a changé par rapport à la version précédente.
La seule exception à la règle concernant les modifications de l'API est OpenGL 3.1 (oui, 3.1, pas 3.0). Dans OpenGL 3.0, un certain nombre d'API ont été désignées comme «obsolètes». Cela signifie que l'ARB, le comité en charge d'OpenGL, pourrait supprimer ces fonctions des versions ultérieures. Cette suppression s'est produite dans OpenGL 3.1. La spécification 3.0 contient une grande liste de choses obsolètes, et la spécification 3.1 est réduite en conséquence.
Notez que vous n'avez pas à vous en soucier (au moins sous Windows et Linux. MacOSX est différent). Vous pouvez très bien fonctionner en mode " compatibilité ", où toutes les fonctionnalités précédemment supprimées reviennent. Les implémentations d'OpenGL n'ont pas à prendre en charge les contextes de compatibilité (et pas Mac OS X Lion. Il prend en charge le noyau 2.1 ou 3.2, à votre demande), mais tous le font toujours. Juste pour une compatibilité descendante avec les applications plus anciennes.
Je pense qu'il existe des tutoriels pour opengl 1.x et 2.x, mais il n'y aura probablement pas de tutoriels montrant comment ils sont différents avec les fonctionnalités ou la facilité d'utilisation, etc.
Il peut être préférable de rechercher des didacticiels pour la version opengl spécifique, de trouver des didacticiels similaires et de les comparer vous-même.