Load (DirectX HLSL テクスチャー オブジェクト)

フィルタリングやサンプリングを行わず、テクセル データを読み取ります。

ret Object.Load(

int Location

[, int Offset]

[, int SampleIndex ]

);

パラメーター

  • Object
    テクスチャー オブジェクト型 (TextureCube または TextureCubeArray を除く)。

  • Location
    [in] テクスチャー座標。最後の成分は、ミップマップ レベルを指定します。引数の型は、テクスチャー オブジェクトの型によって異なります。

    オブジェクトの種類 パラメーター型
    Buffer、Texture1D、Texture2DMS int2
    Texture1DArray、Texture 2D、Texture2DMSArray int3
    Texture2DArray、Texture3D int4

    たとえば、2D テクスチャーにアクセスするには、最初の 2 つの成分に UV 座標を指定し、3 つめの成分にミップマップ レベルを指定します。

  • Offset
    [in] サンプリングの前にテクスチャー座標に対して適用されるオフセット (省略可能)。オフセットの型は、テクスチャー オブジェクトの型によって異なります。

    テクスチャーの型 パラメーター型
    Texture1D、Texture1DArray int
    Texture2D、Texture2DArray、Texture2DMS、Texture2DMSArray int2
    Texture3D、Texture2DArray int3
  • SampleIndex
    [in] オプションのサンプリング インデックス。

    テクスチャーの型 パラメーター型
    Texture1D、Texture1DArray、Texture2D、Texture2DArray、Texture3D、Texture2DArray、TextureCube、TextureCubeArray サポートなし
    Texture2DMS、Texture2DMSArray1 int

戻り値

戻り型は、Object 宣言内の型と一致します。このメソッドは、0.0-1.0 UV 系ではなく、0 から始まる座標系を使用します。そのため、返されるデータは、0 ~ 1 の範囲内に限定されることはありません。下記の例では、戻り型が float4 で、バッファー オブジェクト宣言と一致しています。

最低限必要なシェーダー モデル

この関数は、次のシェーダー モデルでサポートされています。

vs_4_0 vs_4_11 ps_4_0 ps_4_11 gs_4_0 gs_4_11
x x x x x x
  1. シェーダー モデル 4.1 は、Direct3D 10.1 以降に実装されています。

次のコード例は、「AdvancedParticles サンプル」の Paint.fx ファイルから抜粋したものです。

 // Object Declarations Buffer<float4> g_ParticleBuffer;  // Shader body calling the intrinsic function float4 PSPaint(PSQuadIn input) : SV_Target {           ...         for( int i=g_ParticleStart; i<g_NumParticles; i+=g_ParticleStep )     {         ...          // load the particle         float4 particlePos = g_ParticleBuffer.Load( i*4 );         float4 particleColor = g_ParticleBuffer.Load( (i*4) + 2 );         ...          }     ... }     

関連項目

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