SampleCmp (DirectX HLSL テクスチャー オブジェクト)
テクスチャーをサンプリングし、単一の成分と指定された比較対象値を比較します。
uint Object.SampleCmp( SamplerComparisonState S, float Location, float CompareValue [, int Offset] ); |
---|
このメソッドは、ピクセル シェーダーからのみ呼び出すことができます。頂点シェーダーやジオメトリ シェーダーではサポートされていません。
パラメーター
Object
任意の テクスチャー オブジェクト型 (Texture2DMS、Texture2DMSArray、または Texture3D を除く)。S
[in] サンプラ比較ステート。つまり、サンプラ ステートと比較ステート (比較関数と比較フィルター) です。詳細および例については、サンプラ型を参照してください。Location
[in] テクスチャー座標。引数の型は、テクスチャー オブジェクトの型によって異なります。テクスチャー オブジェクト型 パラメーター型 Texture1D float Texture1DArray、Texture2D float2 Texture2DArray1、TextureCube float3 TextureCubeArray1 float4 CompareValue
比較対象値として使用する浮動小数点値。Offset
[in] テクスチャー座標のオフセット (省略可能)。すべてのテクスチャー オブジェクト型で使用できます。オフセットは、サンプリング前にその場所に適用されます。引数の型はテクスチャー オブジェクトの型に依存します (整数オフセットの適用を参照)。テクスチャー オブジェクト型 パラメーター型 Texture1D、Texture1DArray int Texture2D, Texture2DArray1 int2 TextureCube、TextureCubeArray1 int3
戻り値
比較にパスした場合には 1 を返し、それ以外の場合には 0 を返します。
解説
比較フィルタリングは、Percentage-Closer-Depth フィルタリングに役立つ基本的なフィルタリング処理を提供しています。
このメソッドを (符号付き正規化フォーマットや符号なし正規化フォーマットではなく) 浮動小数点リソースに使用するとき、比較対象値が 0.0 ~ 1.0 の範囲に自動的にクランプされることはありません。したがって、共通のシャドウ処理技術では比較対象値を手動でクランプすることが必要な場合があります。
最低限必要なシェーダー モデル
この関数は、次のシェーダー モデルでサポートされています。
vs_4_0 | vs_4_12 | ps_4_0 | ps_4_12 | gs_4_0 | gs_4_12 |
---|---|---|---|---|---|
x1 | x |
- Texture2DArray および TextureCubeArray は、シェーダー モデル 4.1 以降で利用可能です。
- シェーダー モデル 4.1 は、Direct3D 10.1 以降に実装されています。