Direct3D Architecture
Microsoft DirectX 9.0 SDK Update (October 2004)

Direct3D Architecture


This topic provides two high-level views of the architecture of Microsoft Direct3D:

Direct3D Graphics Pipeline

The graphics pipeline provides the horsepower to efficiently process and render 3-D scenes to a display, taking advantage of available hardware. This figure conceptually illustrates the building blocks of the pipeline:

Direct3D graphics pipeline diagram

Pipeline ComponentDescriptionRelated Topics
Vertex DataUntransformed model vertices are stored in vertex memory buffers.Vertex Buffers, IDirect3DVertexBuffer9
Primitive DataGeometric primitives, including points, lines, triangles, and polygons, are referenced in the vertex data with index buffers.Index Buffers, IDirect3DIndexBuffer9, 3-D Primitives, Higher-Order Primitives
TessellationThe tesselator unit converts higher-order primitives, displacement maps, and mesh patches to vertex locations and stores those locations in vertex buffers.Tessellation
Vertex Processing3-D transformations are applied to vertices stored in the vertex buffer.Vertex Pipeline, Vertex Shader Basics
Geometry ProcessingClipping, back face culling, attribute evaluation, and rasterization are applied to the transformed vertices.Pixel Pipeline
Textured SurfaceTexture coordinates for 3-D surfaces are supplied to Direct3D through the IDirect3DTexture9 interface.Direct3D Textures, IDirect3DTexture9
Texture SamplerTexture level of detail (LOD) filtering is applied to input texture values.Direct3D Textures
Pixel ProcessingPixel shader operations use geometry data to modify input vertex and texture data, yielding output pixel color values.Pixel Shader Basics
Pixel RenderingFinal rendering processes modify pixel color values with alpha, depth, or stencil testing, or by applying alpha blending or fog. All resulting pixel values are presented to the output display.Pixel Pipeline

Direct3D System Integration

This figure shows the relationships between a Microsoft Windows application, Direct3D, Windows Graphics Device Interface (GDI), and the hardware:

Direct3D system relationship diagram

Direct3D exposes a device-independent interface to an application. Direct3D applications can exist alongside GDI applications, and both have access to the computer's graphics hardware through the device driver for the graphics card. Unlike GDI, Direct3D can take advantage of hardware features by creating a hardware abstraction layer (HAL) device.

A HAL device provides hardware acceleration to graphics pipeline functions, based upon the feature set supported by the graphics card. Direct3D methods are provided to retrieve device display capabilities at run time. (See IDirect3D9::GetDeviceCaps and IDirect3DDevice9::GetDeviceCaps.) If a capability is not provided by the hardware, the HAL does not report it as a hardware capability.

For more information about HAL and reference devices supported by Direct3D, see Device Types.



© 2004 Microsoft Corporation. All rights reserved.
Feedback? Please provide us with your comments on this topic.
For more help, visit the DirectX Developer Center.