将GL_RGBA32F用于多个渲染目标但不使用GL_RGBA8时出错

时间:2015-04-02 12:49:11

标签: opengl

当我使用以下代码创建多个渲染目标并使用纹理格式GL_RGBA8GL_UNSIGNED_BYTE作为我的数据类型的framebuffer进行绑定时,我没有遇到任何错误。

但是当我使用纹理格式GL_RGBA32FGL_FLOAT做同样的事情作为我的数据类型时,我面临以下运行时错误

gl error from openglrenderer 0x502 invalid operation framebuffertexture2d

代码如下:

GLuint mFBO = 0;
        glGenFramebuffers(1, &mFBO);
        glBindFramebuffer(GL_FRAMEBUFFER, mFBO);

GLuint mTexColor;
       glGenTextures(1, &mTexColor);
       glBindTexture(GL_TEXTURE_2D, mTexColor); 
       glTexImage2D(GL_TEXTURE_2D,0, GL_RGBA32F, 320, 240, 0, GL_RGBA, GL_FLOAT, 0);
       glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
       GL_TEXTURE_2D, mTexColor, 0);
       GLenum buffers[]   = { GL_COLOR_ATTACHMENT0}; glDrawBuffers(1, buffers);

0 个答案:

没有答案