Posts under ‘Uncategorized’

Minimizing Code Bloat: Excessive Inlining

This article is a continuation of Minimizing Code Bloat for Faster Builds and Smaller Executables. When a function is inlined its code is, from the perspective of the compiler, replicated to every place where the function is called.  For very simple functions the inlined code can be smaller than the out-of-line function call, and the […]

Minimizing Code Bloat: Template Overspecialization

This article is a continuation of Minimizing Code Bloat for Faster Builds and Smaller Executables. Even in an engine that isn’t rife with template meta-programming, template overspecialization can be a major source of code bloat.  Very few programmers, in my experience, really think about what the compiler and linker are doing with the code they […]

Minimizing Code Bloat for Faster Builds and Smaller Executables

No matter how much code you have, somebody always wants more.  That’s certainly been the case with every game and every engine I’ve worked on.  My good friend Kyle, who has for years been tracking all sorts of wonderful statistics about the development of Despair Engine, recently announced that we’d surpassed 1.5 million lines of […]

SIGGRAPH 2009 Highlights

Light Propagation Volumes in CryEngine 3 Anton Kaplanyan, Crytek Anton Kaplanyan presented Crytek’s research into real-time single-bounce diffuse indirect illumination.  The current state of the art in real-time global illumination is derived from the work of Marc Stamminger and Carsten Dachsbacher.  They introduced the idea of rendering reflective shadow maps from light sources (shadow maps […]

The Dark Side of Deferred Shading: Light Groups

Much is made of the advantages of deferred shading, but to read most articles on the subject the only disadvantages are translucency and multisample antialiasing.  This is really doing a disservice to forward rendering, however, as there are many popular techniques in real-time computer graphics that are impractical in a deferred shading engine.  One of […]