サブリソース (Direct3D 11 グラフィックス)

このトピックでは、テクスチャ サブリソース、またはリソースの一部について説明します。

Direct3D は、リソース全体を参照することも、リソースのサブセットを参照することもできます。 サブリソースという用語はリソースのサブセットを指します。

バッファーは単一のサブリソースと定義されます。 テクスチャは、ミップマップ レベルやテクスチャ配列をサポートするいくつかの異なるテクスチャの種類 (1D、2D など) があるため、少し複雑です。 最も単純なケースから始めると、1D テクスチャは単一のサブリソースとして定義され、次の図のようになります。

1D テクスチャの図

つまり、1D テクスチャを構成するテクセルの配列は単一のサブリソースに含まれます。

3 つのミップマップ レベルで 1D テクスチャを展開すると、次の図のように視覚化できます。

3 つのミップマップ レベルを持つ 1d テクスチャの図

これは、3 つのサブリソースで構成される 1 つのテクスチャと考えてください。 サブリソースは、1 つのテクスチャの詳細レベル (LOD) を使用してインデックスを作成できます。 テクスチャの配列を使用する場合、特定のサブリソースにアクセスするには、LOD と特定のテクスチャの両方が必要です。 または、次の図に示すように、API はこれら 2 つの情報を 1 つの 0 から始まるサブリソース インデックスに結合します。

0 から始まるサブリソース インデックスの図

サブリソースの選択

リソース全体 ( ID3D11DeviceContext::CopyResource メソッドなど) にアクセスする API もあれば、リソースの一部 ( ID3D11DeviceContext::UpdateSubresource メソッドや ID3D11DeviceContext::CopySubresourceRegion メソッドなど) にアクセスする API もあります。 リソースの一部にアクセスするメソッドでは、通常、ビューの説明 ( D3D11_TEX2D_ARRAY_DSV 構造など) を使用して、アクセスするサブリソースを指定します。

次のセクションの図は、テクスチャの配列にアクセスするときにビューの説明で使用される用語を示しています。

配列スライス

テクスチャの配列を指定すると、ミップマップを持つ各テクスチャには、次の図に示すように、(白い四角形で表される) 配列スライス には、1 つのテクスチャとそのすべてのサブリソースが含まれます。

配列スライスの図

ミップ スライス

次の図に示すように、 ミップ スライス (白い四角形で表されます) には、配列内のすべてのテクスチャに対して 1 つのミップマップ レベルが含まれます。

ミップ スライスの図

単一サブリソースの選択

次の図に示すように、単一のリソースを選択するには、前述の 2 種類のスライスを使用します。

配列スライスとミップスライスを使用してサブリソースを選択する図

複数のサブリソースの選択

または、次の図に示すように、これら 2 種類のスライスをミップマップ レベルの数やテクスチャの数と共に使用して、複数のサブリソースを選択することもできます。

複数のサブリソースの選択の図

Note

レンダー ターゲット ビューでは、1 つのサブリソースまたはミップ スライスのみを使用でき、複数の mip スライスのサブリソースを含めることはできません。 つまり、1 つのレンダー ターゲット ビュー内のテクスチャはすべて、同じサイズでなければなりません。 シェーダー リソース ビューでは、図に示すように、サブリソースの任意の四角形の領域を選択できます。

 

リソース