Rendering an individual character onscreen can be a costly exercise in and of itself, so the idea of rendering every member of a large crowd can sound positively insane in terms of overall performance.
The use of virtual billboards to "copy and paste" members of a crowd repeatedly throughout a space is one quite common way to reduce such an overhead.
This example relies upon the
GeometricBuffer classes described in Chapter 3's procedural modeling recipes, but they are equally applicable to any method of holding and rendering meshes.
To render a crowd: