Graphics Reference
In-Depth Information
figure 3.4. The input assembler stage.
how the individual vertices should be grouped together later in the pipeline. By specifying
the topology of the geometry being rendered, the input assembler can have a significant
impact on how the same set of input vertices is interpreted by the rest of the pipeline. If a
geometric object is composed of triangles, but it is rendered as a set of points, the resulting
rendering will be quite different, even though the input vertex buffers are exactly the same.
The input assembler is also the enabler that allows several different types of render-
ing operations to be performed by the rendering pipeline. The rendering pipeline supports
standard draw calls, indexed drawing, instanced drawing, indirect drawing, and several
combinations of these various operations—all of which require different input resource
configurations. The input assembler works in conjunction with its input resources and the
information provided in the draw call to convert these various input configurations into a
format that is usable by the rest of the pipeline. In many cases, the input assembler is the
only stage that executes differently for different draw calls. It effectively hides the data
submission details from the rest of the pipeline, and instead, provides its output data in a
consistent format. Since the input assembler forms the primary link between an applica-
tion's model data and the rendering pipeline, it serves a very important function. We will
investigate this pipeline stage in more detail to understand precisely how to properly use it,
and what options are available for invoking a pipeline execution.
3.3.1 Input Assembler Pipeline Input
Prior to passing data into the pipeline, the input assembler must be connected to the appro-
priate resources to acquire the input geometric data. This data consists of vertex data and
index data, both of which are supplied to the pipeline in the form of buffer resources. The
following two sections describe how to bind these buffer resources to the input assembler.
Vertex Buffer Usage
Having primary responsibility to correctly assemble vertices for use further down the pipe-
line, the input assembler requires access to vertex data from the application. This data is
stored in one or more vertex buffer resources and can be organized in a variety of different
Search WWH ::




Custom Search