I’m trying to perform MRT throught FBO on 3D textures using instancing…
It seems to work for one render target but not for more.
Does anyone have noted this issue ?(it could be my bug…)
//init fbo
glGenFramebuffers(1, &fbo);
glBindFramebuffer(GL_FRAMEBUFFER, fbo);
cbuffer=new GLuint[2];
glGenRenderbuffers(2, cbuffer);
glBindRenderbuffer(GL_RENDERBUFFER, cbuffer[0]);
glRenderbufferStorage(GL_RENDERBUFFER, GL_RGBA, _width, _height);
glFramebufferRenderbuffer(GL_FRAMEBUFFER, (GL_COLOR_ATTACHMENT0), GL_RENDERBUFFER, cbuffer[0]);
glBindRenderbuffer(GL_RENDERBUFFER, cbuffer[1]);
glRenderbufferStorage(GL_RENDERBUFFER, GL_RGBA16F, _width, _height);
glFramebufferRenderbuffer(GL_FRAMEBUFFER, (GL_COLOR_ATTACHMENT1), GL_RENDERBUFFER, cbuffer[1]);
glBindRenderbuffer(GL_RENDERBUFFER, 0);
glBindFramebuffer(GL_FRAMEBUFFER, 0);
//draw
glBindFramebuffer(GL_FRAMEBUFFER, fbo);
glPushAttrib(GL_VIEWPORT_BIT | GL_COLOR_BUFFER_BIT);
glViewport(0,0,_width, _height);
GLenum bufferlist [] = { GL_COLOR_ATTACHMENT0 ,GL_COLOR_ATTACHMENT1 };
glDrawBuffers(2,bufferlist);
glUseProgram(PO);
glBindVertexArray(this->SliceVertexArray);
glFramebufferTexture(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, targettex[0], 0);
glFramebufferTexture(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT1, targettex[1], 0); glDrawElementsInstanced(GL_QUADS, 4, GL_UNSIGNED_INT, 0,_depth);
glFinish();
glPopAttrib();