Although modern graphics cards are able to push millions of polygons per frame, their abilities in terms of lighting are quite limited when using the traditional, forward rendering approach, where all permutations of lights on scene objects have to be calculated to get the final scene lighting. Some engines circumvent this issue by limiting the number of lights that are allowed to affect the scene, by choosing the ones that are nearest.
But what if we wanted hundreds of lights in a scene? How would we realize that? In this recipe we will see how to solve this problem by building a deferred rendering pipeline that is limited by the number of pixels our hardware is able to push, but not the number of lights in our scene.