Graphics Reference
In-Depth Information
Figure 3,52. The functional operations performed by the rasterizer stage.
As can be seen in Figure 3.52, the rasterizer receives complete, individual primi-
tives as its input. At this point in the pipeline, any primitive topologies with adjacency are
converted to standard primitive topologies. If the primitives were passed into the pipeline
as strips, those strips are broken apart and issued to the rasterizer stage individually. These
primitives are then processed in a sequential pipeline fashion, with the process ending with
the production of fragments, which are then passed to the pixel shader stage. The following
sections explore in more detail what is performed in each of these functional blocks.
Culling
The first operation performed on the incoming primitives is culling. This operation is in-
tended to remove primitives that will not contribute to the final rendered image from fur-
ther processing, to increase the efficiency of the pipeline. There are two different types of
culling: back face culling and what we will refer to as primitive culling.
Back face culling. The first form of culling we will examine is back face culling. As its
name indicates, this operation is only applied to triangle primitives, since they are the
only basic primitive with a concept of a face. However, triangles are typically the most
frequently used primitive, and hence this process is quite important to most rendering se-
quences. When the vertices of the input primitive are received by the rasterizer stage, the
winding of the vertices is determined. Figure 3.53 shows two different triangles, where the
vertex winding is either clockwise or counter-clockwise. One technique for performing
this check is described in the "Vertex Shader Pipeline Output" section, but the hardware
implementation may vary.
Search WWH ::




Custom Search