私は 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を見つけましたが、同様の問題がありますが、解決策はありません