我建議學習的方式是採取固定功能程序,並慢慢開始將其轉換爲核心配置文件,每次添加每一位。基本上你需要解決3件大事,不幸的是,所有這些都相當大,並且以這種方式相互配合,以至於如果屏幕上沒有任何東西,你就不知道哪個位被破壞了。但是如果你能以正確的方式去做,你應該沒問題。
首先學習頂點緩衝區對象和頂點數組對象。溝在glBegin,glEnd,glVertex3f,glColor4f,glNormal3f,glTexCoord2f等..
瞭解手動矩陣變換溝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。使用uniform來上傳模型視圖,然後使用投影矩陣而不是ftransform()。以及諸如燈光和材質屬性之類的東西(我傾向於上傳模型視圖投影,而不僅僅是投影,因此着色器不會每次計算)。
最後使用核心配置文件,您將需要一個支持創建一個窗口工具包。 GLUT,GLFW呢。 SMFL沒有。 SDL 1.3-dev的確如此。我不認爲pygame很遺憾。核心配置文件將丟棄任何遺留下來的棄用功能。
不是一個例子,但這個論壇帖子有一點「幫助,我什麼都不能畫!」種類的幫助:http://www.opengl.org/discussion_boards/ubbthreads.php?ubb=showflat&Number=252272 – 2010-01-16 22:10:46
雖然如果你是全新的OpenGL,我會認真地推薦先學習OpenGL 2風格(大量的教程在那)。對於初學者來說,2.x更直接,而且稍後切換到3.x並不難。 – 2010-01-16 22:12:11
我認爲從OpenGL 2.x開始危險。有很多方法可以在2.x中完成,並且很有可能你會開始學習那些在3.x中不推薦使用的方法。 – 2010-01-18 19:48:20