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 方向のソース アドレスの派生関数は、それぞれ追加のパラメーター srcXDerivativessrcYDerivatives によって提供されます。 これらの派生関数は、正規化されたテクスチャ座標空間にあります。

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は、サンプル命令と同じ制限と、その追加パラメーターに対する以下の制限を継承します。
  • srcXDerivativessrcYDerivatives は、temp (r#/x#)、constantBuffer (cb#)、input (v#) レジスタ、または即時値である必要があります。

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

頂点シェーダー ジオメトリ シェーダー ピクセル シェーダー
X X x

最小シェーダー モデル

この関数は、次のシェーダー モデルでサポートされています。

シェーダー モデル サポートされています
シェーダー モデル 5 はい
シェーダー モデル 4.1 はい
シェーダー モデル 4 はい
シェーダー モデル 3 (DirectX HLSL)
シェーダー モデル 2 (DirectX HLSL)
シェーダー モデル 1 (DirectX HLSL)

シェーダー モデル 4 アセンブリ (DirectX HLSL)