Как я рекомендую обучения это взять фиксированный и медленно начинайте превращать его в основной профиль, добавляя каждый бит за раз. В основном есть 3 основные вещи, которые вам нужно решать, и, к сожалению, там все довольно большие и привязываются друг к другу таким образом, что, если вы ничего не получаете на экране, вы не знаете, какой бит сломан. Но если вы можете сделать это правильно, вы должны быть в порядке.
Сначала изучите объекты буфера вершин и объект вершинного массива. Для того, чтобы угробить glBegin, glEnd, glVertex3f, glColor4f, glNormal3f, glTexCoord2f и т.д ...
Learn ручные матричные преобразования в канаву glRotatef, glTranslate, glPushMatrix, glPopMatrix, glMatrixMode, glLoadIdentity, GL_PROJECTION, GL_MODELVIEW, glFrustum, glOrtho, gluLookAt, gluPerspective, gluOrtho2. Я рекомендую посмотреть на glm, который упоминает сайт OpenGL в своем SDK. Хотя вы по-прежнему используете фиксированные функциональные компоненты в непрофильном профиле, вы можете вручную загрузить матрицу с помощью glLoadMatrixf, позже вам понадобится привязать матрицы к шейдерам.
Изучите основные шейдеры GLSL. Есть устаревшие gl_vertex, gl_normal, ftransform(), которые все еще должны работать с VBO, вы можете использовать их до тех пор, пока не будет полностью настроена привязка шейдеров.
Затем выполните все привязки шейдеров, используйте атрибуты вершин вместо фиксированных gl_vertex и gl_position. Используйте форму для загрузки модели и матриц проекции, а ftransform(). и такие вещи, как огни и свойства материала (я, как правило, загружаю проект modelviewprojection, а не только проецирование, поэтому шейдер не вычисляет это каждый раз).
Наконец, используйте основной профиль, вам понадобится инструментарий для окон, который поддерживает его создание. GLUT, GLFW. SMFL этого не делает. SDL 1.3-dev делает. К сожалению, я не думаю, что pygame. Основной профиль будет препятствовать любой устаревшей функциональности, которая осталась лежащей.
Не пример, но этот пост на форуме имеет немного «помощь, я ничего не могу нарисовать!» вид помощи: http://www.opengl.org/discussion_boards/ubbthreads.php?ubb=showflat&Number=252272 –
Хотя, если вы новичок в OpenGL, я бы серьезно рекомендовал сначала изучить стиль OpenGL 2 (много учебников на том). 2.x для начинающих гораздо проще, и его не так сложно переключить на 3.x позже. –
Я считаю, что начать с OpenGL 2.x опасно. Есть много способов сделать что-то в 2.x, и есть шанс, что вы начнете изучать те, которые устарели в 3.x. –