Я пытаюсь работать с объектами кадрового буфера в PyOpenGL и нашел несколько учебных пособий, чтобы научиться. Я работаю на машине WinXP с Python 2.7.3 и только что установил бинарные дистрибутивы 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 с похожей проблемой, но без решения