次の方法で共有


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
  1. Texture2DArray および TextureCubeArray は、シェーダー モデル 4.1 以降で利用可能です。
  2. シェーダー モデル 4.1 は、Direct3D 10.1 以降に実装されています。

関連項目

テクスチャー オブジェクト