I needed to implement particles for my 2D game, written in C++ with OpenGL for graphics, so I went ahead and created a nice geometry container to batch particles together and then implemented the basic stuff on them. So far so good, my particles work fine as intended, with a decent performance.
However, even tho my particles appear, animate and die the way they are supposed to, I am experiencing banding in the particles. All particles are drawn in a single draw call with additive blending. When I render a single particle I don't seem to get any noticeable banding, but the more particles I stack on top of each other, the more clear the banding becomes, giving unacceptable results.
I am doing nothing fancy with the rendering, it should work but here 's some more info. Blend mode: glBlendFunc(GL_SRC_ALPHA, GL_ONE); (for particle textures with varying alpha) Context: 32 bit color depth and nothing seems to be banding anywhere else, there isn't anything using low-precision Fragment shader output: gl_FragColor = texture2D(texture, texUV) * outColor;
Also, I developed this system inspired in HGE particle editor. I am using the same particle texture that this program uses successfully, with no visible banding at all, but it doesn't work for me for some reason. Link: http://hge.relishgames.com/