Sample(S,float,int,float,uint) 関数 (HLSL リファレンス)
Texture2D をサンプリングし、オプションの値を使用してサンプルの詳細レベル (LOD) 値をクランプし、操作の状態を返します。
注意
シェーダー モデル 5 以上が必要です。
構文
DXGI_FORMAT Sample(
in SamplerState S,
in float Location,
in int Offset,
in float Clamp,
out uint Status
);
パラメーター
-
S [入力]
-
サンプラーの状態。 これは、状態の割り当てを含む効果ファイルで宣言されたオブジェクトです。
-
場所 [入力]
-
テクスチャ座標。 引数の型は、テクスチャ オブジェクト型に依存します。
Texture-Objectの種類 パラメーターの型 Texture1D float Texture1DArray、Texture2D float2 Texture2DArray、Texture3D、TextureCube float3 TextureCubeArray float4 -
Offset [in]
-
任意のテクスチャ座標オフセット。任意のテクスチャ オブジェクト型に使用できます。オフセットはサンプリング前の場所に適用されます。 テクスチャ オフセットは静的である必要があります。 引数の型は、テクスチャ オブジェクト型に依存します。 詳細については、「 テクスチャ座標オフセットの適用」を参照してください。
Texture-Objectの種類 パラメーターの型 Texture1D、Texture1DArray INT Texture2D、Texture2DArray int2 Texture3D int3 TextureCube、TextureCubeArray サポート対象外 -
クランプ [入力]
-
サンプル LOD 値をクランプする省略可能な値。 たとえば、クランプ値に 2.0f を渡した場合、個々のサンプルが 2.0f 未満の mip レベルにアクセスしないようにします。
-
状態 [out]
-
操作の状態。 状態に直接アクセスすることはできません。代わりに、 状態を CheckAccessFullyMapped 組み込み関数に渡します。 対応する Sample、Gather、または Load 操作のすべての値がタイル リソース内のマップされたタイルにアクセスした場合、CheckAccessFullyMapped は TRUE を返します。 マップされていないタイルから値が取得された場合、 CheckAccessFullyMapped は FALSE を返します。
戻り値
テクスチャ形式。これは、DXGI_FORMATに記載されている型指定された値の 1 つです。
解説
テクスチャ サンプリングでは、テクセル位置を使用してテクセル値を検索します。 オフセットは、検索前の位置に適用できます。 サンプラーの状態には、サンプリングとフィルター処理のオプションが含まれています。 このメソッドはピクセル シェーダー内で呼び出すことができますが、頂点シェーダーまたはジオメトリ シェーダーではサポートされていません。
整数 miplevel でのみオフセットを使用します。そうしないと、ハードウェアの実装やドライバーの設定によって結果が異なる場合があります。
テクセル位置の計算
テクスチャ座標は、テクスチャ データを参照する浮動小数点値です。これは、正規化されたテクスチャ空間とも呼ばれます。 [0...1] の範囲外のテクスチャ座標を変更するには、アドレス ラップ モードがこの順序 (テクスチャ座標 + オフセット + ラップ モード) で適用されます。
テクスチャ配列の場合、location パラメーターの追加の値は、テクスチャ配列へのインデックスを指定します。 このインデックスは、(標準テクスチャ座標の正規化された空間ではなく) スケーリングされた浮動小数点値として扱われます。 整数インデックスへの変換は、次の順序で行われます (float + round-to-near-near-even integer + clamp to the array range)。
テクスチャ座標オフセットの適用
offset パラメーターは、テクセル空間内のテクスチャ座標を変更します。 テクスチャ座標は正規化された浮動小数点数ですが、オフセットは整数オフセットを適用します。 また、テクスチャ オフセットは静的である必要があることにも注意してください。
返されるデータ形式は、テクスチャ形式によって決まります。 たとえば、テクスチャ リソースがDXGI_FORMAT_A8B8G8R8_UNORM_SRGB形式で定義されている場合、サンプリング操作はサンプリングされたテクセルをガンマ 2.0 から 1.0 に変換してフィルター処理し、結果を [0..1] の範囲の浮動小数点値として書き込みます。
関連項目