When drawing particles, we often want them to "add up" in some way to form a fuzzy effect, rather than looking like just a set of individual points or lines.
This can be done using blending. Disabling depth-buffer-writing in this case is useful, because we don't want the particles to obscure each other.
glEnable(GL_BLEND);
glBlendFunc(GL_ONE, GL_ONE);
glDepthMask(GL_FALSE);
glBegin(GL_LINES);
for (int i=0; i < numParticles_; i++)
{
glColor3fv(particles_[i].color.vec);
glVertex3fv(particles_[i].tailPosition.vec);
glVertex3fv(particles_[i].position.vec);
}
glEnd();
glDepthMask(GL_TRUE);
glBlendFunc(GL_ONE, GL_ZERO);
glDisable(GL_BLEND);
Example: