我已经开始使用PyOpenGL 3.0.1b在Python中使用OpenGL。
我查看了一些示例代码并开始运行并修改它等等。一切都很好,直到我变得不那么无知。
在http://pyopengl.sourceforge.net/documentation/manual-3.0/index.xhtml上列出OpenGL函数以及它们是否被弃用。所以我想我自己只需找到一些不使用所有这些弃用垃圾的最新教程。
几小时后,没有这样的运气!不推荐使用的示例代码之后不推荐使用的示例代码...在某处我可以使用不推荐的教程吗?答案 0 :(得分:4)
感谢Jason L. McKesson
这里没有弃用代码的精彩示例和教程(在OpenGL 3.3中)
http://www.arcsynthesis.org/gltut/index.html
另一个没有太多解释(在OpenGL 4.x和3.3中)
答案 1 :(得分:2)
OpenGL ES 2.0实际上与OpenGL 3非常相似,删除了一些功能(例如多个渲染目标,一些着色器指令等)。 OpenGL ES 2.0编程指南书中有一些可供下载的教程和源代码,可以帮助您开始使用OpenGL 3.0。 ES 2.0中的编译也将编译为更新的OpenGL规范。您也可以在线搜索ES 2.0教程。
我还建议检查我正在开发的图形引擎(OpenREng)。您可以查看OpenGL包装类,以查看较新规范中支持的大多数功能。
答案 2 :(得分:2)
我建议学习的方法是采用固定的功能程序,然后通过一次添加每个位慢慢开始将其转换为核心配置文件。基本上你需要解决3个主要问题,不幸的是,它们都相当大并且相互联系,如果你在屏幕上没有得到任何东西,你就不知道哪个位被打破了。但是,如果你能以正确的方式去做,你应该没事。
首先学习顶点缓冲对象和顶点数组对象。抛弃glBegin,glEnd,glVertex3f,glColor4f,glNormal3f,glTexCoord2f等......
学习手动矩阵变换以消除glRotatef,glTranslate,glPushMatrix,glPopMatrix,glMatrixMode,glLoadIdentity,GL_PROJECTION,GL_MODELVIEW,glFrustum,glOrtho,gluLookAt,gluPerspective,gluOrtho2。我建议看一下OpenGL网站在SDK中提到的glm。当您仍然在非核心配置文件上使用固定功能组件时,您可以使用glLoadMatrixf手动加载矩阵,稍后您需要将矩阵绑定到着色器。
学习基本的GLSL着色器。已弃用的gl_vertex,gl_normal,ftransform()应该仍然可以与VBO一起使用,您可以使用它们,直到您完全设置着色器绑定。
然后执行所有着色器绑定,使用顶点属性而不是固定的gl_vertex和gl_position。使用uniform来上传模型视图和投影矩阵而不是ftransform()。光和材料属性之类的东西(我倾向于上传模型视图投影而不仅仅是投影,因此着色器不会每次计算)。
最后使用核心配置文件,您将需要一个支持创建一个的窗口工具包。 GLUT,GLFW。 SMFL没有。 SDL 1.3-dev确实如此。我不认为pygame不幸。核心配置文件将放弃任何已弃用的功能。