我正在尝试在 PyOpenGL 中使用帧缓冲区对象,并找到了一些教程来自学。我正在使用 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 )
我得到错误:
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,有类似的问题,但没有解决方案