-
OpenGL 2.1 vers 3.3
Bonjour,
J'ai déjà développer un jeux de labyrinthe 3d utilisant OpenGL 2.1,
et j'en développe un autre utilisant la même version de OpenGL.
Je fais tous mon possible pour que mon jeux de labyrinthe puisse fonctionner
plus tard avec OpenGL 3.3 voir 4.1.
En théorie est t'il possible de faire la jonction c'est à dire d'adapter les fonction OpenGL 2.1 vers OpenGL 3.3 ou 4.1 avec un shader par defaut , et en utilisant la bibliothèque GLM pour le calcules des matrices ?
Si oui existe t'il des librairie d'adaptions OpenGL 2.1 vers 3.3 ?
L'inverse n'est pas possible.
Sur OpenGL je suis novice , pour cela j'ai une questions :
Actuellement dans mon jeux de labyrinthe au niveau du render 3d opengl 2.1, j'effectue pour la camera un gltranslatef et un glrotatef et ensuite
je fais un call liste (précédemment créer avec glGenList).
Dans OpenGl 3.3 , comme cela se passe au niveau du développement étant donnée que glRotate,glTranslate et les listes sont deprecated (obsolète) ?
A chaque changement de rotation ou mouvement du pion dans le labyrinthe 3d , Faut t'il pour cela refaire les VBO avec les primitives tourné selon la direction du pion ?
Si oui c'est donc moins performant.
Merci.
-
Bonjour,
En réalité, les glTranslate*, glRotate*, glScale*, prenne la matrice courante (GL_MODELVIEW, ou autre) et la modifie. Mais ça, c'était en OpenGL < 2.X. Maintenant, les concepteurs de la bibliothèque ont dit : on ne gère plus nous même les matrices.
Du coup, une bibliothèque comme GLM est très utile car, elle va permettre de créer les matrices dont OpenGL a besoin pour placer les objets dans le monde, fournir les méthodes types translate/rotate/scale et même les méthodes type lookAt.
Les listes d'affichages sont aussi dépréciées et il vous faudra utiliser les VBO. Il n'y a pas besoin de toucher au VBO une fois chargé (sauf pour un objet qui se déforme), car on va appliquer une matrice à tous les points de l'objet, pour le déplacer.
-
D'un point de vu developement, je conseillerais plustot de devloper sur les derniere version d'OpenGL (4.4 par exemple), et ensuite porter vers les versions precedente en faisant simplement des work-around (code similaire, ou desactivation certaines fonctionnalitee). :P Et quand une nouvelle version arrive, hop on "casse" :aie: tout pour que la nouvelle architecture exploite le maximum des nouvelles fonctionalitees, et ensuite on re-base et creer de nouveaux work-arounds au besoin. :zoubi: Ainsi de suite... L'avantage est que les performances sont ainsi exemplaire dans les meilleurs condition, mais plus long a realiser. :lol:
Sinon il ne faut surtout pas modifier le VBO, just un petit vertex shader avec une matrice 4x4 en uniform. :ccool:
-
Bonsoir,
pour ma part j'avais choisi de bien localiser tous les appels à openGL dans des renderer, me permettant de switcher d'un rendu en openGL1.x en 3.x à souhait