The blend modes in OpenGL weren’t very good. Real transparency has alpha-blended and additive components:
I can think of two ways to achieve this:
- Render the background to a texture, then read from this and modify output as needed.
- Render alpha-blended and additive components in two separate passes, using the hardware blend functions.
What do you suggest? Is there another method I am leaving out?