9.7 Conclusion
Deferred shading, although not appropriate for every game, proved to be a great rendering
architecture for accomplishing our goals in S.T.A.L.K.E.R. It gave us a rendering
engine that leverages modern GPUs and has lower geometry-processing requirements,
lower pixel-processing requirements, and lower CPU overhead than a traditional forward
shading architecture. And it has cleaner and simpler scene management to boot.
Once we worked around the deficiencies inherent in a deferred shader, such as a potentially
restricted material system and the lack of antialiasing, the resulting architecture
was both flexible and fast, allowing for a wide range of effects. See Figure 9-8 for an
example. Of course, the proof is in the implementation. In S.T.A.L.K.E.R., our original
forward shading system, despite using significantly less complex and interesting
shaders, actually ran slower than our final deferred shading system in complex scenes
with a large number of dynamic lights. Such scenes are, of course, exactly the kind in
which you need the most performance!