シェーダー
Direct3D 9では頂点シェーダーをソフトウェアエミュレーションすなわちCPUで実行することもできるが(D3DCREATE_SOFTWARE_VERTEXPROCESSING)、プログラマブルシェーダー機能に対応しているハードウェア(GPU)であれば多数のプロセッサコアを使用して並列に処理を行なうことができるので、CPUで頂点シェーダーを実行するよりもGPUを利用した方が高速になる。
なお、シェーダーモデル3.0(DirectX 9.0c、OpenGL 2.x世代)で導入されたVertex Texture Fetch (VTF) を使用すると、頂点シェーダーステージでテクスチャデータを参照することも可能となる。 シェーダーモデル4.0(DirectX 10世代)以降では、VTFはバッファデータの参照とともに標準化されている(OpenGLは3.1でVTFを標準化し、バーテックスシェーダーで少なくとも16個のTIUを使えるようになっている)。 さらに、OpenGL 4.2ではすべてのシェーダーステージにおいてイメージオブジェクトに対するロード/ストアを可能にする機能が標準化された。DirectXにおいても、バージョン11.1にて、ピクセルシェーダーやコンピュートシェーダーだけでなく、すべてのシェーダーステージにおいて各種リソースに対する書き込みが可能になっている。
トライアングルはquadに変換される(1つのquadは2 × 2ピクセルのプリミティブである)。
ピクセルシェーダーを適用し、ピクセル単位ライティングなどを実行する。
視界判定を実行する。もし視界内にある場合はフレームバッファにピクセルを書き込む。
頂点シェーダー/ジオメトリシェーダーの出力をラスタライザーおよびピクセルシェーダーに渡すのではなく、バッファやテクスチャなどのメモリリソースに書き出した後、インプットアセンブラーや頂点シェーダー/ジオメトリシェーダーに再入力する、ストリームアウトプットという機能も存在する(OpenGLにはトランスフォームフィードバックと呼ばれる類似機能が存在する)。ストリームアウトプットはこれまでのようにGPU側でデータを参照するだけでなく、GPU自身が書き換えたデータを(CPUを介することなく)再利用することができるため、GPUパーティクルなどに応用できる。