Quelle est la différence entre OpenGL 1.x et 2.x?

13

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).

t123
la source
1
Permettez-moi de reformuler votre question. Quelle est la différence entre le rendu de fonction fixe et les Shaders?
EnabrenTane
3
C'est une question complètement différente cependant.
Jari Komppa

Réponses:

11

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.

Jari Komppa
la source
Je ne trouve pas de tutoriel spécifique à la version. (sauf 3.0)
t123
Il y a beaucoup de liens depuis cette page, sous "Tutoriels et guides pratiques", mais fondamentalement, vous avez le choix entre OpenGL 1.x et "tout le reste".
Jari Komppa
@ tm1rbrt: vous ne trouverez pas de didacticiels spécifiques pour 2.1, car tous les didacticiels valides 1.x sont toujours des didacticiels 2.1 valides. La seule raison pour laquelle il y a une interruption à 3.x est parce que c'est là que les API ont été supprimées. Si vous recherchez des didacticiels basés sur des shaders de l'ère 2.1, les didacticiels lighthouse3d sont utilisables. Cependant, vous devez être informé que le matériel 3.x existe depuis 2006, et même maintenant est intégré aux cartes mères et même aux processeurs. L'avenir n'est donc pas dans le monde 2.x; les futurs tutoriels se concentreront généralement sur les versions 3.x et supérieures.
Nicol Bolas
3

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.

Nicol Bolas
la source
Pouvez-vous ajouter quelque chose sur OpenGL 4. *?
Kromster dit soutenir Monica
@Krom: Il n'y a rien à dire. Tout comme passer de 1.x à 2.x, rien n'a été supprimé.
Nicol Bolas
0

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.

LizardGamer
la source
Sérieusement, qui continue de voter au hasard mes commentaires?
LizardGamer
Pourquoi les downvotes ici? Pas une bonne réponse, mais des votes négatifs? Pas certain. La question veut vraiment quelque chose de pas très habituel ... Tutoriel pour montrer les différences, ce n'est surtout pas ce que les tutoriels font ...
Notabene
@LizardGamer Je vois que vous avez rejoint gamedev.SE il y a quelques jours, donc je voudrais dire "Bienvenue!". Cependant, vous devriez vraiment lire la FAQ ici: gamedev.stackexchange.com/faq Cette réponse est un parfait exemple du type de réponse que vous ne voulez PAS donner. Essayez d'être plus précis et certainement plus constructif avec vos questions et vos réponses. La FAQ devrait vous aider à réaliser l'objectif de ce site et le type de contenu que nous recherchons. Bonne chance!
Amplify91
@notabene cette réponse ne répond pas réellement à la question. La seule suggestion qu'il donne est fondamentalement «rechercher la réponse». De toute évidence, le PO fait déjà cela en posant une question ici.
Amplify91
@ Amplify91 Merci pour le seul accueil que j'ai, et j'ai déjà lu la FAQ, je ne trouve pas en quoi c'est un exemple de ce qu'il ne faut pas demander? De plus, cela répond à la question, car je n'ai vu aucun didacticiel relatif à la comparaison des versions d'
Opengl