As a developer, you might have a general idea how modern 3D games create their scrumptious visuals. It doesn’t hurt however to have more specific knowledge, especially if you do any sort of work involving 3D graphics. Even artists will find it beneficial to know how the models and textures they create are transformed into 2D images.
Programmer Juxhin Dyrmishi Brigjaj has written a solid overview of one of the more common techniques used in modern games, called deferred rendering (or shading).
A naive approach to rendering a game (or any 3D) scene would involve drawing objects one at a time, repeating all the calculations required to do correct lighting and shadows, along with any other fancy effects, such as reflections or global illumination.
Such an approach exists and it’s called “forward” rendering. The problem is the performance cost of rendering complex scenes this way can get out of hand when many lights and objects are present.
As the name suggests, deferred rendering does the first part — drawing each object — but “defers” the actual shading step until later. Instead of doing all the work immediately, it instead just stores information needed to do lighting.
Once all that information is collected, it can be used again and again to render each light, saving a lot of computation, at the expense of the memory required for the information.
This is a very brief overview of how deferred works. For more details, including advantages and disadvantages, hit up Brigjaj’s post below.
Introduction to Deferred Rendering [Digital Horror]