Particle systems can be difficult to integrate seamlessly into a complex scene. They are often not depth buffered, relying on the the accumulated light contributions of all the particles to create a particular effect. The rest of the scene will probably require depth buffering, however, so both the depth test and depth buffer update state needs to be managed within the scene. Although particles can be lit, it is extremely expensive to try to cause each particle to act as an OpenGL light source, especially since the number of simultaneous available OpenGL lights are limited. Instead a few light sources can be placed in the system to represent an overall lighting effect. Blending state must also be managed, since antialiased particles require alpha blending to work.