SampleLevel (DirectX HLSL テクスチャー オブジェクト)
ミップマップ レベルのオフセットを使用してテクスチャーをサンプリングします。
DXGI_FORMAT Object.SampleLevel( sampler_state S, float Location, float LOD [, int Offset] ); |
---|
この関数は、location パラメーターの最後の成分で指定された LOD レベルを使用してミップマップ レベルを選択する点を除き、sample に似ています。たとえば、2D テクスチャーの場合、最初の 2 つの成分が uv 座標に、3 つ目の成分がミップマップ レベルに使用されます。
パラメーター
Object
任意のテクスチャー オブジェクト型 (Texture2DMS および Texture2DMSArray を除く)。S
[in] サンプラ ステート。これは、ステート割り当てを含むエフェクト ファイルで宣言されたオブジェクトです。Location
[in] テクスチャー座標。引数の型は、テクスチャー オブジェクトの型によって異なります。テクスチャー オブジェクト型 パラメーター型 Texture1D float Texture1DArray、Texture2D float2 Texture2DArray、Texture3D、TextureCube float3 TextureCubeArray1 float4 テクスチャー オブジェクトが配列の場合は、最後の成分は配列インデックスです。
LOD
[in] ミップマップ レベルを指定する数値。値が <= 0 の場合、レベル 0 (最大マップ) が使用されます。小数値 (指定した場合) は、2 つのミップマップ レベル間の補間に使用されます。Offset
[in] テクスチャー座標のオフセット (省略可能)。すべてのテクスチャー オブジェクト型で使用できます。オフセットは、サンプリング前にその場所に適用されます。オフセットは、整数ミップレベルでのみ使用してください。それ以外の使用方法では、ハードウェアに対して適切な変換とならない結果が生成される可能性があります。引数の型はテクスチャー オブジェクトの型に依存します (整数オフセットの適用を参照)。テクスチャー オブジェクト型 パラメーター型 Texture1D、Texture1DArray int Texture2D、Texture2DArray int2 Texture3D int3 TextureCube、TextureCubeArray1 サポートなし
戻り値
テクスチャー フォーマット。DXGI_FORMAT に列挙されている型指定された値のいずれかです。
最低限必要なシェーダー モデル
この関数は、次のシェーダー モデルでサポートされています。
vs_4_0 | vs_4_12 | ps_4_0 | ps_4_12 | gs_4_0 | gs_4_12 |
---|---|---|---|---|---|
x | x | x | x | x | x |
- TextureCubeArrayは、シェーダー モデル 4.1 以降で利用可能です。
- シェーダー モデル 4.1 は、Direct3D 10.1 以降に実装されています。
例
次のコード例は、「Instancing10 サンプル」の Instancing.fx ファイルから抜粋したものです。
// Object Declarations Texture1D g_txRandom; SamplerState g_samPoint { Filter = MIN_MAG_MIP_POINT; AddressU = Wrap; AddressV = Wrap; }; // Shader body calling the intrinsic function float3 RandomDir(float fOffset) { float tCoord = (fOffset) / 300.0; return g_txRandom.SampleLevel( g_samPoint, tCoord, 0 ); ...