- Let each stage use the same color image as the target, and using blending functions to add effects.
- Let each stage use the color image as a texture image, and produce a new color image as output.
The disadvantage of the first solution is that manipulation functions are limited to what can be selected with glBlendFunc() and glBlendEquation(). If I understand the documentation correctly, "The results of these equations are clamped to the range [0, 1]." also means that the whole idea of HDR is lost.
The disadvantage of the second solution is that I need at least two images. One for source (texture image), and one for destination (render target). Maybe it is possible to use the same image, though it is generally not recommended.