管線階段 (Direct3D 10)
Direct3D 10 可程式化管線是專為即時遊戲應用程式產生圖形而設計。 下圖顯示從輸入到輸出到每個可程式化階段的數據流。
direct3d 10 可程式化管線中數據流的
您可以使用 API 來設定所有階段。 具有常見著色器核心(圓角矩形區塊)的階段可使用 HLSL 程式設計語言進行程序設計。 如您所見,這可讓管線具有極大的彈性和適應性。 每個階段的用途如下。
- Input-Assembler 階段 - 輸入組合器階段負責提供數據(三角形、線條和點)至管線。
- Vertex-Shader 階段 - 頂點著色器階段會處理頂點,通常會執行轉換、外觀和光源等作業。 頂點著色器一律會採用單一輸入頂點,併產生單一輸出頂點。
- Geometry-Shader 階段 - 幾何著色器階段會處理整個基本類型。 其輸入是完整的基本類型(這是三個三角形的頂點、一條線條的兩個頂點,或一個點的單一頂點)。 此外,每個基本類型也可以包含任何邊緣相鄰基本類型的頂點數據。 這最多可以包含三個三角形的頂點,或一條線的額外兩個頂點。 Geometry 著色器也支援有限的幾何放大和取消放大。 假設輸入基本類型,Geometry 著色器可以捨棄基本類型,或發出一或多個新的基本類型。
- Stream-Output 階段 - 數據流輸出階段是針對將基本數據從管線串流至記憶體到轉譯器的方式所設計。 數據可以串流出並/或傳遞至轉譯器。 串流至記憶體的數據可以重新串流回管線作為輸入數據或從 CPU 讀取。
- 轉譯器階段 - 轉譯器負責裁剪基本類型、準備圖元著色器的基本類型,以及判斷如何叫用圖元著色器。
- Pixel-Shader 階段 - 像素著色器階段會接收基本類型的插補數據,併產生每像素數據,例如色彩。
- Output-Merger 階段 - 輸出合併階段負責結合不同類型的輸出數據(圖元著色器值、深度和樣板資訊),以及轉譯目標和深度/樣板緩衝區的內容,以產生最終的管線結果。
相關主題
-
Direct3D 10 的 程序設計指南