Question

J'ai commencé à jouer avec OpenGL en Python en utilisant PyOpenGL 3.0.1b.

Je regardais quelques exemples de code et a commencé à l'exécuter et le modifier, etc. Tout allait bien jusqu'à ce que je suis devenu un peu moins ignorant.

http://pyopengl.sourceforge.net/documentation/manual- 3.0 / index.xhtml les fonctions OpenGL sont répertoriées ainsi que si oui ou non ils sont déconseillés. Donc, je me suis dit que je vais devoir trouver des tutoriels jusqu'à date qui n'utilisent pas toutes ces conneries dépréciée.

Quelques heures plus tard, pas de chance! exemple de code désapprouvée après le code désapprouvée exemple ... est là, quelque part je peux aller pour des tutoriels non dépréciée?

Était-ce utile?

La solution

OpenGL ES 2.0 est en fait très similaire à OpenGL 3, avec certaines fonctionnalités retiré (comme plusieurs cibles de rendu, des instructions de shader, etc.). OpenGL ES 2.0 livre Guide de programmation a quelques tutoriels et codes sources disponibles pour le téléchargement, qui peut vous aider à démarrer avec OpenGL 3.0. Ce qui compile en ES 2.0 compilera également pour les spécifications OpenGL plus récentes, la plupart du temps. Vous pouvez rechercher 2.0 ES tutoriels en ligne, ainsi.

Je recommande également de vérifier le moteur graphique que je développe ( OpenREng ). Vous pouvez consulter les classes wrapper OpenGL pour voir la plupart des fonctionnalités prises en charge dans les spécifications les plus récentes.

Autres conseils

Merci à Jason L. McKesson

Pas de code dépréciées exemples fantastiques et des tutoriels ici (en OpenGL 3.3)

http://www.arcsynthesis.org/gltut/index.html

Et l'autre sans donner trop d'explications ici (en OpenGL 4.x et 3.3)

http://openglbook.com/the-book/

La façon dont je recommande l'apprentissage est de suivre un programme de fonction fixe et commencer lentement transformer en un profil de base en ajoutant un chaque bit à la fois. Il existe essentiellement 3 choses importantes que vous devez attaquer et, malheureusement, il y a tous assez grand et une cravate dans les uns aux autres de telle sorte que si vous ne recevez rien sur l'écran vous avez aucune idée de ce qui est peu cassée. Mais si vous pouvez aller à ce sujet dans le bon sens, vous devriez être très bien.

Tout d'abord apprendre Vertex Buffer Objects et Vertex tableau Object. Pour fossé glBegin, glEnd, glVertex3f, glColor4f, glNormal3f, glTexCoord2f, etc ...

En savoir des transformations de matrice manuelle à fossé glRotatef, glTranslate, glPushMatrix, glPopMatrix, glMatrixMode, glLoadIdentity, GL_PROJECTION, GL_MODELVIEW, glFrustum, glOrtho, gluLookAt, gluPerspective, gluOrtho2. Je vous recommande de regarder GLM qui est celui du site OpenGL mentionne dans leur SDK. Pendant que vous utilisez toujours les composants de fonction fixes sur le profil non-core, vous pouvez charger manuellement la matrice avec glLoadMatrixf, plus tard, vous aurez besoin de lier les matrices aux shaders.

En savoir shader GLSL de base. Il y a dépréciée gl_Vertex, gl_normal, ftransform () qui devrait fonctionner avec de VBO, vous pouvez les utiliser jusqu'à ce que vous avez les liaisons de shaders configuration entièrement.

Ensuite, faites tous les shaders de liaison, utilisez les attributs vertex au lieu du gl_Vertex fixe et gl_Position. Utilisez pour télécharger le modelview, et les matrices de projection de l'uniforme plutôt ftransform (). et des choses comme les lumières et les propriétés des matériaux (je tends à télécharger le modelviewprojection au lieu de simplement la projection de sorte que le Shader ne calcule pas que chaque fois).

Enfin, utilisez un profil de base, vous aurez besoin d'une boîte à outils de fenêtrage qui prend en charge la création d'un. GLUT, GLFW faire. SMFL ne fonctionne pas. SDL 1.3 fait-dev. Je ne pense pas que pygame malheureusement ne. Le profil de base sera un fossé toute fonctionnalité obsolète qui a été laissé traîner.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top