次の方法で共有


dcl_input_sv (sm4 - asm)

システム が前のステージから提供されることを想定するシェーダー入力レジスタを宣言します。

dcl_input_sv vN[.mask], systemValueName[, interpolationMode]
Item 説明
vN
[入力]頂点データ レジスタ。
  • N は、レジスタ番号を識別する整数です。
  • [.mask] は、使用するレジスタ コンポーネントのどれを指定するオプションのコンポーネント マスク (.xyzw) です。
systemValueName
[入力]"SV_" プレフィックスのない文字列であるシステム値名 ( システム値セマンティクスを参照)。
interpolationMode
[in] オプション。 ラスター化中の値の計算方法に影響する補間モード。モードはピクセル シェーダーでのみ使用されます。 次のいずれかの値を指定できます。
  • constant - レジスタ値間を補間しないでください。
  • linear - レジスタ値間を線形補間します。
  • linearCentroid - マルチサンプリング時に固定された線形の重心と同じです。
  • linearNoperspective - 線形と同じですが、パースペクティブ補正はありません。
  • linearNoperspectiveCentroid - 線形と同じですが、マルチサンプリング時に透視補正と重心クランプはありません。

システム値宣言のコンポーネント マスクには、[xyzw] の任意の適切なサブセットを指定できます。宣言は重複しない可能性があります (各宣言はシーケンス xyzw に従う必要があります)。 スカラー システム値 (クリップ距離やカリング距離など) を宣言する場合は、1 つのレジスタで複数のシステム値を宣言できます。 これを行う場合は、補間モードなどの他の修飾子が一致していることを確認します。

この命令は、次のシェーダー ステージに適用されます。

頂点シェーダー ジオメトリ シェーダー ピクセル シェーダー
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)