Framebufferobject创建失败

2024-06-13 09:31:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我想创建一个FrameBufferObject,但是失败了,我不知道为什么。你知道吗

这是我的代码,它在第4行失败,错误信息如下:

错误:

Traceback (most recent call last):
  File "/home/julius/workspace/Bachelor/Final/Exporter/FBOtest.py", line 154, in <module>
    fbo.mainGameLoop()
  File "/home/julius/workspace/Bachelor/Final/Exporter/FBOtest.py", line 142, in mainGameLoop
    self.createFBO()
  File "/home/julius/workspace/Bachelor/Final/Exporter/FBOtest.py", line 55, in createFBO
    glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, self.depthbuffer)
  File "/usr/lib/pymodules/python2.7/OpenGL/platform/baseplatform.py", line 335, in __call__
    return self( *args, **named )
ctypes.ArgumentError: argument 2: <type 'exceptions.TypeError'>: wrong type

代码:

    self.fbo = glGenFramebuffersEXT(1)
    glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, self.fbo)
    self.depthbuffer = glGenRenderbuffersEXT(GL_RENDERBUFFER_EXT)
    glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, self.depthbuffer)
    glRenderbufferStorageEXT(GL_RENDERBUFFER_EXT, GL_DEPTH_COMPONENT, width, height)
    glFramebufferReadBufferEXT(GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT, GL_RENDERBUFFER_EXT, self.depthbuffer)

    self.texture = glGenTextures(1)
    glBindTexture(GL_TEXTURE_2D, self.texture)
    glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER, GL_NEAREST)
    glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER, GL_NEAREST)
    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8,  width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, None);
    glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT,  GL_TEXTURE_2D, self.texture, 0);

Tags: inpyselfhomelineworkspaceextfile
1条回答
网友
1楼 · 发布于 2024-06-13 09:31:18

glGenRenderbuffersEXT应该获取要创建的缓冲区的数量(在本例中可能是1),而不是作为参数的GL\u RENDERBUFFER\u EXT。你知道吗

相关问题 更多 >