我推荐的学习方法是采用一个固定的函数程序,然后通过一次添加每一个位来慢慢地将它变成一个核心配置文件。基本上有三个主要的事情你需要处理,不幸的是,它们都相当大,并且相互联系在一起,如果你没有在屏幕上看到任何东西,你就不知道哪个部分坏了。但如果你能以正确的方式去做,你会没事的。在
首先学习顶点缓冲对象和顶点数组对象。要丢弃glBegin、glEnd、glVertex3f、glColor4f、glNormal3f、glTexCoord2f等。。。在
学习手动矩阵转换以丢弃glRotatef、glTranslate、glPushMatrix、glPopMatrix、glMatrixMode、glLoadIdentity、GL峎投影、GL峈model view、glFrustum、glOrtho、gluLookAt、glupperspective、gluOrtho2。我建议查看glm,这是OpenGL站点在其SDK中提到的glm。当您仍在非核心配置文件上使用固定函数组件时,您可以使用glLoadMatrixf手动加载矩阵,稍后需要将矩阵绑定到着色器。在
学习基本的GLSL着色器。有一些不推荐使用的gl\u vertex、gl\u normal、ftransform()仍然可以与VBO一起使用,直到完全设置着色器绑定。在
然后执行所有着色器绑定,使用顶点属性,而不是固定的gl_顶点和gl_位置。使用uniform上载modelview和投影矩阵,而不是ftTransform()。以及像灯光和材质属性之类的东西(我倾向于上传modelviewprojection而不仅仅是投影,这样着色器就不会每次都计算这些内容)。在
最后使用一个核心概要文件,您将需要一个支持创建一个窗口化工具箱。供过于求。SMFL没有,SDL1.3-dev有。我不认为pygame是不幸的。核心概要文件将丢弃任何被弃用的功能。在