sample_c (sm4 - asm)

比較フィルターを実行します。

sample_c[_aoffimmi(u,v,w)] dest[.mask], srcAddress[.swizzle], srcResource.r, srcSampler, srcReferenceValue
Item 説明
dest
[in] 操作の結果のアドレス。
srcAddress
[in] テクスチャ座標のセット。 詳しくは、sample 命令を参照してください。
srcResource
[in] テクスチャ レジスタ。 詳しくは、sample 命令を参照してください。 .r スウィズルである必要があります。
srcSampler
[in] サンプラー レジスタ。 詳しくは、sample 命令を参照してください。
srcReferenceValue
[in] 1 つの成分が選択されているレジスタ。比較で使用されます。

解説

この命令の主な目的は、Percentage-Closer Depth フィルタリングの構成要素を提供することです。 sample_c の "c" は比較 (Comparison) を表します。

sample_c のオペランドは、float32 のソース オペランド srcReferenceValue (1 つの成分が選択されたレジスタ、またはスカラー リテラルである必要があります) が追加されている点を除き、sample 命令と同じです。

srcResource パラメーターは、.r (赤) スウィズルである必要があります。 sample_c は赤成分のみを処理し、1 つの値を返します。 srcResource の .r スウィズルは、スカラーの結果がすべての成分にレプリケートされることを示します。

操作順序は srcReferenceValue {ComparisonFunction} texel.R です。

深度バッファーが入力テクスチャとして設定されている場合、深度値は赤成分に表示されます。

この命令を Texture1D、2D、2DArray、Cube、CubeArray 以外のリソースで使用すると、結果は未定義になります。

この命令が実行されると、サンプリング ハードウェアは、現在のサンプラーの ComparisonFunction を使用して、srcAddress で指定されている座標に基づき、現在構成されているテクスチャ フィルターがカバーする各フィルター "タップ" 位置 (テクセル) において、srcReferenceValue を、ソース リソースの赤成分の値と比較します。

比較は、srcReferenceValue がテクスチャ形式の精度に量子化された後で行われます。これは、出力マージャー可視性テストで深度比較の前に z が深度バッファーの精度に量子化されるのとまったく同じ方法です。 これには、形式の範囲へのクランプが含まれます (例: UNORM 形式の場合は [0..1])。

ソース テクセルの赤成分は、量子化された srcReferenceValue と比較されます。 リソースに含まれないテクセルの赤成分の値は、サンプラーからアドレス モード (Border モードの場合は BorderColorR) を適用することによって決定されます。 テクスチャ形式が浮動小数点である場合、この比較ではすべての D3D11 浮動小数点比較規則が優先されます。

合格した各比較からはテクセルの赤成分の値として 1.0f が返され、失敗した各比較からはテクスチャの赤の値として 0.0f が返されます。 その後、サンプラーの状態で指定されているとおりにフィルター処理が行われて赤成分のみが操作され、1 つのスカラー フィルター結果がシェーダーに返されて、マスクされたすべての dest 成分にレプリケートされます。

sample_c の使用は、他のすべての汎用フィルター コントロールと直交しています。 sample_c は、他の汎用フィルター モードでシームレスに動作します。 sample_c は、フィルター処理されたすべての値が比較結果によって 1.0f または 0.0f になるように、汎用フィルターの動作を変更します。

何もバインドされていない入力スロットからフェッチすると、すべての成分に対して 0 が返されます。

詳しくは、sample 命令を参照してください。

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

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

最小シェーダー モデル

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

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

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