La façon dont je recommande l'apprentissage est de prendre un fixe programme de fonction et commence lentement à le transformer en un profil de base en ajoutant chaque bit à la fois. Il y a fondamentalement 3 choses principales que vous devez aborder et malheureusement il y en a toutes assez grandes et qui se lient les unes aux autres de telle sorte que si vous n'obtenez rien à l'écran, vous n'avez aucune idée de ce qui est cassé. Mais si vous pouvez y aller de la bonne façon, vous devriez aller bien.
D'abord, apprenez Vertex Buffer Objects et Vertex Array Object. Pour fossé glBegin, glEnd, glVertex3f, glColor4f, glNormal3f, glTexCoord2f, etc ...
savoir des transformations de matrice manuelle Ditch glRotatef, glTranslate, glPushMatrix, glPopMatrix, glMatrixMode, glLoadIdentity, GL_PROJECTION, GL_MODELVIEW, glFrustum, glOrtho, gluLookAt, gluPerspective, gluOrtho2. Je vous recommande de regarder GLM qui est celui que le site OpenGL mentionne dans son SDK. Pendant que vous utilisez encore les composants de fonction fixe sur le profil non-core, vous pouvez charger manuellement la matrice avec glLoadMatrixf, plus tard vous devrez lier les matrices aux shaders.
Apprenez les shaders GLSL de base. Il y a obsolète gl_vertex, gl_normal, ftransform() qui devrait toujours fonctionner avec les VBO, vous pouvez les utiliser jusqu'à ce que vous ayez les réglages de shader entièrement configurés.
Ensuite, effectuez toutes les liaisons de shader, utilisez les attributs de vertex au lieu des attributs gl_vertex et gl_position. Utilisez des uniformes pour télécharger le modelview, et les matrices de projection plutôt le ftransform(). et des choses comme les lumières et les propriétés matérielles (j'ai tendance à télécharger le modelviewprojection au lieu de seulement la projection de sorte que le shader ne calcule pas cela à 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 profil. GLUT, GLFW faire. SMFL ne le fait pas. SDL 1.3-dev fait. Je ne pense pas que pygame le fasse malheureusement. Le profil de base abandonnera toute fonctionnalité obsolète qui a été laissée traîner.
Pas un exemple, mais ce message du forum a un peu d '"aide, je ne peux rien dessiner!" type d'aide: http://www.opengl.org/discussion_boards/ubbthreads.php?ubb=showflat&Number=252272 –
Bien que si vous êtes nouveau à OpenGL entièrement, je recommande sérieusement d'apprendre le style OpenGL 2 d'abord (beaucoup de tutoriels sur ça). 2.x est beaucoup plus simple pour les débutants, et il n'est pas si difficile de passer à 3.x plus tard. –
Je considère commencer avec OpenGL 2.x dangereux. Il y a beaucoup de façons d'accomplir des choses dans 2.x, et il y a de fortes chances que vous commenciez à apprendre celles qui sont obsolètes dans 3.x. –