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