我正在尝试使用PyOpenGL中的framebuffer对象,并找到了一些教程来自学。我使用Python 2.7.3在WinXP机器上工作,并刚刚安装了PyOpenGL 3.0.2和PyOpenGL-accelerate 3.0.2的二进制分发版。然而,在开始时我就遇到了一个问题,即我收到错误消息,提示fbo函数似乎不存在。以下是重现我的问题的步骤:
导入模块:
我现在应该能够使用帧缓冲对象/函数了。
展示
然而,如果按照教程指定的方式尝试调用(创建一个实例)该对象,使用以下代码:
导入模块:
from OpenGL.GL import *
from OpenGL.GLU import *
from OpenGL.GL.framebufferobjects import *
我现在应该能够使用帧缓冲对象/函数了。
print glGenFramebuffers
print glBindFramebuffer
展示
<OpenGL.extensions.glGenFramebuffers object at 0x03172260>
<OpenGL.extensions.glBindFramebuffer object at 0x03172120>
然而,如果按照教程指定的方式尝试调用(创建一个实例)该对象,使用以下代码:
fbo = glGenFramebuffers(1)
glBindFramebuffer(GL_FRAMEBUFFER, fbo )
I get the error:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "latebind.pyx", line 31, in OpenGL_accelerate.latebind.LateBind.__call__ (src\latebind.c:645)
File "C:\Python27\lib\site-packages\OpenGL\extensions.py", line 189, in finalise
self.__name__,
OpenGL.error.NullFunctionError: Attempt to call an undefined alternate function (glGenFramebuffers, glGenFramebuffersEXT), check for bool(glGenFramebuffers) before calling
使用
bool(glGenFramebuffers)
确实返回False。
我做错了什么?难道PyOpenGL(-accelerate)的二进制文件不应该安装所有必需的帧缓冲库吗?
感谢任何能够帮助我的人提前。
编辑:我刚刚发现https://stackoverflow.com/questions/12953134/problems-with-frame-buffer-objects-fbos-in-pyopengl,有一个类似的问题,但没有解决方案。