Doing post-process gamma correction is showing texture artifacts, here is a small example on a skybox:
The first image is gamma correcting on the skybox shader and seems correct, the lower is doing it in post-process and has terrible artifacts near the edges of the clouds, however both versions do it the same usual way:
Color.rgb = pow(Color.rgb, vec3(1.0/2.2));
Color.a = 1.0;
So that makes me believe there's something wrong with the way I'm creating and using frame buffers, here's sort of how I'm doing it:
// Generate FirstFBO, specify this as the color attachment
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, FramebufferSize.x, FramebufferSize.y, 0, GL_RGB, GL_UNSIGNED_BYTE, nullptr);
// ...
while (true) {
glBindFramebuffer(GL_FRAMEBUFFER, FirstFBO.ID);
DrawStuff();
glBindFramebuffer(GL_FRAMEBUFFER, 0);
glBindTexture(GL_TEXTURE_2D, FirstFBO.ColorTexture);
DrawFullscreenQuad();
}