圖形管線
Direct3D 11 可程式化管線是專為即時遊戲應用程式產生圖形而設計。 本節說明 Direct3D 11 可程序化管線。 下圖顯示從輸入到輸出到每個可程式化階段的數據流。
Microsoft Direct3D 11 的圖形管線支援與 Direct3D 10 圖形管線相同的階段,並額外階段以支援進階功能。
您可以使用 Direct3D 11API 來設定所有階段。 使用 HLSL 程式設計語言,可程式化具有常見著色器核心(圓角矩形區塊)的階段。 如您所見,這可讓管線具有極大的彈性和適應性。
在本節中
主題 | 描述 |
---|---|
輸入組合器階段 |
Direct3D 10 和更新版本的 API 會將管線的功能區域分成階段;管線中的第一個階段是輸入組合器 (IA) 階段。 |
頂點著色器階段 |
頂點著色器(VS)階段會從輸入組合器接收頂點,並執行每個頂點的操作,例如轉換、蒙皮、變形和每個頂點的光照。 頂點著色器一律會在單一輸入頂點上運作,併產生單一輸出頂點。 頂點著色器階段必須保持啟用狀態,管線才能執行。 如果不需要任何頂點修改或轉換,則必須建立通過型頂點著色器並配置到管線中。 |
鑲嵌階段 |
Direct3D 11 執行階段支援三個新的細分階段,這些階段可以將低詳細細分曲面轉換成 GPU 上的較高詳細元素。 鑲嵌圖元(或將高階表面分解)成適合渲染的結構。 |
幾何著色器階段 |
在 geometry-shader(GS)階段,會執行應用程式指定的著色器程式碼,以頂點作為輸入,並具有在輸出中生成頂點的能力。 |
數據流輸出階段 |
數據流輸出階段的目的是要持續將頂點數據從幾何著色器階段(或如果幾何著色器階段未啟用,則是從頂點著色器階段)輸出到記憶體中的一個或多個緩衝區(請參閱 開始使用數據流輸出階段)。 |
光柵化階段 |
點陣化階段會將向量資訊(由圖形或基本類型組成)轉換成點陣影像(由圖元組成),以便顯示即時 3D 圖形。 |
像素著色器階段 |
像素著色器階段(PS)可啟用豐富的陰影技術,例如逐像素光照和後期處理。 圖元著色器是一種程式,可以結合常數、紋理數據、插值後的每頂點值及其他數據,來產生每像素的輸出。 轉譯器階段會針對基本類型所涵蓋的每個圖元叫用圖元著色器一次,不過,您可以指定 NULL 著色器,以避免執行著色器。 |
輸出合併階段 |
輸出合併(OM)階段會結合管道狀態、像素著色器所產生的像素數據、渲染目標的內容,以及深度/樣板緩衝區的內容,來生成最終渲染的像素色彩。 OM 階段是判斷哪些像素可見的最後一個步驟(具有深度模板測試),並混合最終像素色彩。 |