Share via


リソースへのアクセス

リソースにアクセスするためのいくつかの新しい方法があります。

  • バイト オフセットによるアクセス
  • インデックスによるアクセス
  • ミップ メンバーによるアクセス

バイト オフセットによるアクセス

バイト オフセットを使用して、次の 2 つの新しいバッファー タイプにアクセスできます。

  • ByteAddressBuffer は、読み取り専用バッファーです。リソース変数を使用することによってのみアクセスできます。
  • RWByteAddressBuffer は、読み取りバッファーまたは書き込みバッファーです。

インデックスによるアクセス

リソース タイプは、インデックスを使用して、リソース内の特定の場所を参照できます。次に例を示します。

 Texture2D<float4> myTexture; float4 myVar = myTexture[pos]; 

この例では、myVar はリソース変数と呼ばれます。つまり、リソースを参照する変数です。

次のリソース変数を使用して、テクセルをインデックス付けできます。

 float4 myVar = myTexture[pos]; 

Direct3D 11 では、すべてのリソース タイプをインデックス付けできます。たとえば、2D テクスチャーの場合、次のようになります。

 Texture2D<float4> myTexture; 

ミップ メンバーによるアクセス

シェーダー モデル 5 では、すべてのテクスチャー オブジェクトにミップ メンバーがあります。これを使用してミップマップ レベルを指定できます。次の例は、2D テクスチャーのミップマップ レベル 2 の (2,3) に格納されたカラーを読み取ります。

 float4 myColor = myTexture.mips[0][float2(x,y)]; 

関連項目

コンピュート シェーダーの概要