Vertex Data Streams


The rendering interfaces for Microsoft Direct3D consist of methods that render primitives from vertex data stored in one or more data buffers. Vertex data consists of vertex elements that are combined to form vertex components. Vertex elements—the smallest unit of a vertex—represent entities such as position, normal, or color.

Vertex components are one or more vertex elements that are stored contiguously (interleaved per vertex) in a single memory buffer. A complete vertex consists of one or more components, where each component is in a separate memory buffer. To render a primitive, multiple vertex components are read and assembled so that complete vertices are available for vertex processing.

The illustration below shows the process of rendering primitives using vertex components.

Vertex data

Rendering primitives consists of two steps: setting up one or more vertex component streams, and then invoking a Device.DrawPrimitives method to render from those streams. Identification of vertex elements within these component streams is specified by the vertex shader.

The Device.DrawPrimitives methods specify an offset in the vertex data streams so that an arbitrary contiguous subset of the primitives within one set of vertex data can be rendered with each draw invocation. This enables changes to the device rendering state between groups of primitives that are rendered from the same vertex buffers.

Both indexed and nonindexed drawing methods are supported. For more information, see Rendering from Vertex and Index Buffers.


Send comments about this topic to Microsoft. © Microsoft Corporation. All rights reserved.

Feedback? Please provide us with your comments on this topic.
For more help, visit the DirectX Developer Center