頂點著色器 (VS) 階段
頂點著色器 (VS) 階段會處理頂點,通常是藉由執行轉換、面板設定和照明之類的作業來處理。 頂點著色器會擷取單一輸入頂點,並產生單一輸出頂點。
用途和使用方式
頂點著色器 (VS) 階段用於單獨的逐頂點處理,例如:
- 轉換
- 表層
- 變形
- 每個頂點光源
頂點著色器 (GS) 階段為可進行程式設計的著色器階段;會透過圖形管線圖表中的圓角區塊加以表示。 這個著色器階段使用著色器模型 4.0 通用著色器核心。
頂點著色器 (VS) 階段處理來自輸入組譯器的頂點。 頂點著色器始終對單一輸入頂點進行操作並產生單一輸出頂點。 頂點著色器階段必須始終處於活動狀態才能執行管道。 如果不需要任何頂點修改或轉換,則必須建立傳遞頂點著色器並設定為管線。
每個頂點著色器輸入頂點可以包含多達 16 個 32 位元向量 (每個最多含有 4 個元件)。 每個輸出頂點可以包含多達 16 個含有 4 個元件的 32 位元向量。 所有頂點著色器必須至少有一個輸入和一個輸出,可以小至一個標量值。
頂點著色器階段可以使用輸入組譯器中兩個系統產生的值:VertexID 和 InstanceID (請參閱系統值和語意)。 由於 VertexID 和 InstanceID 在頂點層級都有意義,而硬體所產生的標識碼只能饋送至了解它們的第一個階段,因此這些標識碼值只能饋送至頂點著色器階段。
頂點著色器一律在所有頂點上執行,包括具有相鄰的輸入基本拓撲中的相鄰頂點。 您可以使用 VSInvocations 管線統計資料,從 CPU 查詢頂點著色器的次數。
頂點著色器可以在不需要螢幕空間導數的情況下執行載入和紋理採樣操作 (使用 HLSL 內部函數:Sample (DirectX HLSL 紋理物件)、SampleCmpLevelZero (DirectX HLSL 紋理物件) 和 SampleGrad (DirectX HLSL 紋理物件))。
輸入
單一頂點,隨附 VertexID 和 InstanceID 等系統產生的值。 每個頂點著色器輸入頂點可以包含多達 16 個 32 位元向量 (每個最多含有 4 個元件)。
輸出
單一頂點。 每個輸出頂點可以包含多達 16 個含有 4 個元件的 32 位元向量。
相關主題