dcl_input_sv (sm4 - asm)

宣告著色器輸入暫存器,其預期會從上一個階段提供 系統值

dcl_input_sv vN[.mask], systemValueName[, interpolationMode]
項目 描述
vN
[in]頂點資料暫存器。
  • N 是識別暫存器號碼的整數。
  • [.mask] 是選擇性元件遮罩 (.xyzw) ,指定要使用哪一個暫存器元件。
systemValueName
[in]系統值名稱,這是字串 (會看到 系統值語意 ,) 不含 「SV_」 前置詞。
interpolationMode
[in] 選用。 插補模式,會影響點陣化期間計算值的方式;模式僅供圖元著色器使用。 它可能是下列其中一個值:
  • constant - 不要在暫存器值之間插補。
  • linear - 在暫存器值之間以線性方式插補。
  • linearCentroid - 與多重取樣時固定的線性但距心相同。
  • linearNoperspective - 與線性相同,但沒有檢視方塊更正。
  • linearNoperspectiveCentroid - 與線性相同,但在多重取樣時沒有檢視方塊校正和距心限制。

系統值宣告的元件遮罩可以是 [xyzw] 的任何適當子集;宣告可能不會重迭 (每個宣告都必須遵循序列 xyzw) 。 宣告純量系統值 (裁剪距離和 cull 距離時,例如) ,您可以在單一暫存器中宣告多個系統值。 如果您這樣做,請確定其他修飾詞,例如插補模式相符。

本指示適用于下列著色器階段:

頂點著色器 幾何著色器 像素著色器
x x x

此指示包含在元件中協助偵錯著色器;您無法使用著色器模型 4 以元件語言撰寫著色器。

範例

以下是一些範例:

// valid
dcl_input v0.y, linear
dcl_input_sv v0.w, clipDistance
dcl_input_sv v0.z, cullDistance
// invalid declarations
dcl_input v0.y, linear
dcl_input_sv v0.x, clipDistance  // the y component was previously declared, this declaration must use 
                                 // either the z or w component

dcl_input v0.y, linearNoPerspective                  // the interpolation mode is linear-no-perspective
dcl_input_sv v0.z, renderTargetArrayIndex, constant  // the interpolation modes is constant
                                                     // the interpolation modes must match

最小著色器模型

下列著色器模型支援此函式。

著色器模型 支援
著色器模型 5
著色器模型 4.1
著色器模型 4
著色器模型 3 (DirectX HLSL)
著色器模型 2 (DirectX HLSL)
著色器模型 1 (DirectX HLSL)

著色器模型 4 元件 (DirectX HLSL)