Nearby particles fighting

Right, each particle group is rendered separately. This allows all of the smoke particles to be rendered in a single call, followed by a single call to render all of the fire particles. It isn’t really feasible to sort the individual particles back-to-front and render them in individual particle order; that would mean several thousand calls (one for each particle) instead of just two.

You’ll have to find solutions such as playing with the bins, as you describe. One obvious possibility is to displace the smoke effect away from the camera so that it is always slightly in front of the fire effect. You can use a billboard to do this effectively. For instance: smoke.setBillboardAxis(); smoke.setY(-5)

David