次の方法で共有


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
  1. TextureCubeArrayは、シェーダー モデル 4.1 以降で利用可能です。
  2. シェーダー モデル 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 );    ...  

関連項目

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