Direct3D 10 (管線階段)

Direct3D 10 可程式化管線是專為為即時遊戲應用程式產生圖形而設計。 下圖顯示從輸入到輸出到輸出到每個可程式化階段的資料流程。

direct3d 10 可程式化管線中的資料流程圖

您可以使用 API 來設定所有階段。 具有常見著色器核心的階段 (圓角矩形區塊) 可以使用 HLSL 程式設計語言進行程式設計。 如您所見,這可讓管線具有極大的彈性且可調整。 每個階段的用途如下。

  • 輸入組合器階段 - 輸入 組合器階段負責提供資料 (三角形、線條和點) 至管線。
  • 頂點著色器階段 - 頂點著色器階段處理頂點,通常執行轉換、貼圖與光照等作業。 頂點著色器一律採用單一輸入頂點,並產生單一輸出頂點。
  • Geometry-Shader 階段 - geometry-shader 階段會處理整個基本類型。 其輸入是完整的基本 (,它是三角形的三個頂點、一條線的兩個頂點,或是一個點) 的單一頂點。 此外,每個基本類型也可以包含任何邊緣相鄰基本類型的頂點資料。 這最多可以包含三個頂點,或是一條線的額外兩個頂點。 幾何著色器也支援有限的幾何放大以及取消放大。 即使有輸入基本類型,幾何著色器可捨棄基本類型,或發出一種或多種新的基本類型。
  • Stream-Output 階段 - 串流輸出階段是專為將基本資料從管線串流處理到記憶體而設計,以將基本資料串流至轉譯器。 資料可串流輸出及/或傳遞進入點陣化。 串流輸出到記憶體的資料可重新循環回管線,做為輸入資料或從 CPU 讀回。
  • 轉譯器階段 - 轉譯 器負責裁剪基本類型、準備圖元著色器的基本類型,以及判斷如何叫用圖元著色器。
  • 像素著色器階段 - 像素著色器階段會接收基本型別的插補資料,並產生每一像素資料,如色彩。
  • 輸出合併階段 - 輸出合併階段 負責將不同類型的輸出資料結合 (圖元著色器值、深度和樣板資訊,) 轉譯目標和深度/樣板緩衝區的內容來產生最終管線結果。

Direct3D 10 的程式設計指南