我已经开始使用PyOpenGL 3.0.1b在Python语言中使用OpenGL。
我看了一些示例代码,开始运行和修改它,等等。一切都很好,直到我变得不那么无知。
在http://pyopengl.sourceforge.net/documentation/manual-3.0/index.xhtml上,会列出OpenGL函数以及它们是否被弃用。所以我对自己说,我只需要找到一些最新的教程,这些教程不会使用所有这些过时的东西。
几个小时后,就没有这么幸运了!在不推荐使用的示例代码之后,不推荐使用示例代码...有没有地方我可以去找一些不推荐使用的教程?
发布于 2010-01-17 15:38:07
OpenGL ES 2.0实际上与OpenGL 3非常相似,只是删除了一些功能(例如多个渲染目标、一些着色器指令等)。《OpenGL ES2.0编程指南》一书中有一些教程和源代码可供下载,它们可以帮助您开始使用OpenGL 3.0。大多数情况下,ES2.0中编译的内容也将编译为更新的OpenGL规范。您也可以在线搜索ES2.0教程。
我还建议您查看我正在开发的图形引擎( OpenREng )。您可以查看OpenGL包装器类,以了解较新规范中支持的大多数功能。
发布于 2011-10-05 20:21:36
感谢Jason L. McKesson
这里没有废弃的代码、奇妙的例子和教程(在OpenGL 3.3中)
http://www.arcsynthesis.org/gltut/index.html
另一个在这里没有太多解释(在OpenGL 4.x和3.3中)
http://openglbook.com/the-book/
发布于 2011-10-05 21:04:48
我推荐的学习方法是采用一个固定的函数程序,然后通过一次添加每一位来慢慢地将其转换为核心配置文件。基本上有三个主要的东西你需要处理,不幸的是,它们都相当大,并且以这样一种方式彼此联系在一起,如果你在屏幕上没有得到任何东西,你就不知道哪个部分坏了。但是,如果你能以正确的方式去做,你应该会很好。
首先学习顶点缓冲区对象和顶点数组对象。抛弃glBegin、glEnd、glVertex3f、glColor4f、glNormal3f、glTexCoord2f等
学习手动矩阵转换以丢弃glRotatef、glTranslate、glPushMatrix、glPopMatrix、glMatrixMode、glLoadIdentity、GL_PROJECTION、GL_MODELVIEW、glFrustum、glOrtho、gluLookAt、gluPerspective、gluOrtho2。我推荐使用glm,这是OpenGL网站在他们的软件开发工具包中提到的。当您仍在非核心剖面上使用固定函数组件时,可以使用glLoadMatrixf手动加载矩阵,稍后需要将矩阵绑定到着色器。
学习基本的GLSL着色器。还有不推荐使用的gl_vertex,gl_normal,ftransform(),它们仍然可以与VBO一起使用,你可以使用它们,直到你的着色器绑定完全设置好为止。
然后执行所有着色器绑定,使用顶点属性而不是固定的gl_vertex和gl_position。使用uniform上传模型视图和投影矩阵,而不是ftransform()。还有像灯光和材质属性这样的东西(我倾向于上传模型视图投影,而不仅仅是投影,这样着色器就不会每次都计算这些)。
最后使用核心概要文件,您将需要一个支持创建核心概要文件的窗口工具包。GLUT,GLFW确实如此。SMFL不需要,而SDL 1.3-dev需要。不幸的是,我不认为pygame会这样做。核心配置文件将丢弃任何被弃用的功能。
https://stackoverflow.com/questions/2079038
复制相似问题