I have a problem with multisampled FBO’s. I just don’t get any anti-alaising unless i specify the max supported value.
Code
GLint maxSamples;
glGetIntegerv(GL_MAX_SAMPLES_EXT, &maxSamples);
glGenRenderbuffersEXT ( 1, &mColourBuffer );
glBindRenderbufferEXT ( GL_RENDERBUFFER_EXT, mColourBuffer);
glRenderbufferStorageMultisampleEXT(GL_RENDERBUFFER_EXT, maxSamples, GL_RGBA, mFBOTextureWidth, mFBOTextureHeight );
glGenRenderbuffersEXT ( 1, &mDepthBuffer );
glBindRenderbufferEXT ( GL_RENDERBUFFER_EXT, mDepthBuffer );
glRenderbufferStorageMultisampleEXT( GL_RENDERBUFFER_EXT, maxSamples, GL_DEPTH_COMPONENT, mFBOTextureWidth, mFBOTextureHeight );
glGenFramebuffersEXT ( 1, &mFrameBufferMulti );
glBindFramebufferEXT ( GL_FRAMEBUFFER_EXT, mFrameBufferMulti );
glFramebufferRenderbufferEXT( GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_RENDERBUFFER_EXT, mColourBuffer );
glFramebufferRenderbufferEXT( GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT, GL_RENDERBUFFER_EXT, mDepthBuffer );
GLenum status = glCheckFramebufferStatusEXT( GL_FRAMEBUFFER_EXT );
I set my FBO
glBindFramebufferEXT( GL_FRAMEBUFFER_EXT, mFrameBufferMulti );
draw a bunch of stuff
Then final blit to another FBO, do some shaders on it and swap buffers
glBindFramebufferEXT(GL_READ_FRAMEBUFFER_EXT, mFrameBufferMulti);
glBindFramebufferEXT(GL_DRAW_FRAMEBUFFER_EXT, mFrameBuffer);
glBlitFramebufferEXT(0, 0, mFBOTextureWidth, mFBOTextureHeight, 0, 0, mFBOTextureWidth, mFBOTextureHeight, GL_COLOR_BUFFER_BIT, GL_LINEAR);
Pic
For some reason only the value 16x seems to work. There is no glEnable for FBOs to set anti-alaising ?