Fbo blending issue


I’m trying to figure out an issue with an FBO.
Basically I have something that draws a glowing sphere. It works OK until I wrap an fbo around it.
If I try to draw the fbo it looses… parts of what it’s wrapping around.

the good:

the bad:

and then some code that I’m wrapping into the fbo:

ofClear(255, 255, 255, 0); ofBackground(0,0,0); glEnable(GL_CULL_FACE); camera.begin(); ofEnableBlendMode(OF_BLENDMODE_ALPHA); gradientBackground(); glEnable(GL_DEPTH_TEST); glDepthMask(true); solidSphere(); glDisable(GL_DEPTH_TEST); ofDisableBlendMode(); ofEnableBlendMode(OF_BLENDMODE_ADD); glow01(); glow02(); glow03(); ofDisableBlendMode(); ofEnableBlendMode(OF_BLENDMODE_ALPHA); camera.end(); gui.draw(); ofDrawBitmapString(ofToString(ofGetFrameRate());

Not even the gui is showing in case of the FBO, I just see a thin outline. Perhaps that’s a clue…
The parts that are not showing up are planes with a shader. Other pieces, like a sphere and sprites (also with shaders) are showing up.

weird… what I’ve done is this,
rotated the plane with the background gradient and the glowing ring 180 degrees in the setup.
plane.rotate(180, 1.0, 0.0, 0.0);
This shows the glow around the orb, but… the central sphere is nowhere to be seen. I really think this has something to do with alpha.

Can you post the rest of your code on here to check out?

How are you initializing the FBO?

ofFbo::Settings s; s.width = ofGetWindowWidth(); s.height = ofGetWindowHeight(); s.internalformat = GL_RGBA32F_ARB; fbo.allocate(s); fbo.begin(); ofClear(0, 0, 0, 0); fbo.end();

right now in the draw I have:
fbo.begin(); visionFilter(); fbo.end(); fbo.draw(0, 0);

the functions in the fbo are basically shaders drawing spheres, planes and sprites.
if I comment fbo.begin and fbo.end everything draws correctly.

Another thing that works is disabling the camera in the fbo. which then requires me to push/pop/translate the visionFilter during the begin/end of the fbo, but that’s a solution, since I don’t really need to rotate anything. The camera was a leftover from an older version.