sample_d (sm4 - asm)
指定したアドレスと、指定されたサンプラーによって識別されるフィルター モードを使用して、指定された要素/テクスチャのデータをサンプリングします。
sample_d[_aoffimmi(u,v,w)] dest[.mask], srcAddress[.swizzle], srcResource[.swizzle], srcSampler, srcXDerivatives[.swizzle], srcYDerivatives[.swizzle] |
---|
Item | 説明 |
---|---|
Dest |
[入力]操作の結果のアドレス。 |
srcAddress |
[入力]テクスチャ座標のセット。 詳細については、 サンプル 命令を参照してください。 |
srcResource |
[入力]テクスチャ レジスタ。 詳細については、 サンプル 命令を参照してください。 |
srcSampler |
[入力]サンプラー レジスタ。 詳細については、 サンプル 命令を参照してください。 |
srcXDerivatives |
[入力]x 方向のソース アドレスの派生物。 詳細については、「解説」を参照してください。 |
srcYDerivatives |
[入力]y 方向のソース アドレスの派生物。 詳細については、「解説」を参照してください。 |
解説
この命令は サンプル 命令と同様に動作しますが、x 方向と y 方向のソース アドレスの派生関数は、それぞれ追加のパラメーター srcXDerivatives と srcYDerivatives によって提供されます。 これらの派生関数は、正規化されたテクスチャ座標空間にあります。
srcXDerivatives (POS-swizzle) の r、g、b の各コンポーネントは、du/dx、dv/dx、dw/dx を提供します。 'a' コンポーネント (POS-swizzle) は無視されます。
srcYDerivatives (POS-swizzle) の r、g、b コンポーネントは、du/dy、dv/dy、dw/dy を提供します。 'a' コンポーネント (POS-swizzle) は無視されます。
2x2 スタンプ全体で 1 つの LOD 計算を共有できる サンプル 命令とは異なり、 sample_d ピクセル シェーダーで使用する場合、LOD は完全に独立してピクセル単位で計算する必要があります。
sample_dへの派生入力がピクセル シェーダーの派生計算命令から取得され、値に INF/NaN が含まれている場合、sample_dの動作がサンプル命令と一致しない可能性があります。これは、派生関数を暗黙的に計算します。 INF/NaN 値は、LOD の計算に異なる影響を与える可能性があります。
何もバインドされていない入力スロットからフェッチすると、すべてのコンポーネントに対して 0 が返されます。
制限
- sample_dは、サンプル命令と同じ制限と、その追加パラメーターに対する以下の制限を継承します。
- srcXDerivatives と srcYDerivatives は、temp (r#/x#)、constantBuffer (cb#)、input (v#) レジスタ、または即時値である必要があります。
この命令は、次のシェーダー ステージに適用されます。
頂点シェーダー | ジオメトリ シェーダー | ピクセル シェーダー |
---|---|---|
X | X | x |
最小シェーダー モデル
この関数は、次のシェーダー モデルでサポートされています。
シェーダー モデル | サポートされています |
---|---|
シェーダー モデル 5 | はい |
シェーダー モデル 4.1 | はい |
シェーダー モデル 4 | はい |
シェーダー モデル 3 (DirectX HLSL) | X |
シェーダー モデル 2 (DirectX HLSL) | X |
シェーダー モデル 1 (DirectX HLSL) | X |