A software-implemented transform and lighting module and pipeline designed
and optimized for embedded platforms (such as mobile computing devices).
The transform and lighting module and pipeline includes a number of
features that make it well-suited for use on embedded devices. These
features include a single streamline branched architecture that allows
efficient processing on a CPU of an embedded device and saves
computational time. This architecture is facilitated by use of a vertex
cache that stores vertices as needed to avoid duplication in processing
of the vertices. A culling feature culls vertices before lighting instead
of lighting all vertices. A back face culling technique examines each of
the vertices to determines whether a back face of a triangle is formed.
If so, then the vertex is culled. A second technique involved determining
whether a vertex is outside of one view frustum clip plane. If so, then
the vertex is culled.