サブリソース (Direct3D 11 グラフィックス)
このトピックでは、テクスチャ サブリソース、またはリソースの一部について説明します。
Direct3D は、リソース全体を参照することも、リソースのサブセットを参照することもできます。 サブリソースという用語はリソースのサブセットを指します。
バッファーは単一のサブリソースと定義されます。 テクスチャは、ミップマップ レベルやテクスチャ配列をサポートするいくつかの異なるテクスチャの種類 (1D、2D など) があるため、少し複雑です。 最も単純なケースから始めると、1D テクスチャは単一のサブリソースとして定義され、次の図のようになります。
つまり、1D テクスチャを構成するテクセルの配列は単一のサブリソースに含まれます。
3 つのミップマップ レベルで 1D テクスチャを展開すると、次の図のように視覚化できます。
これは、3 つのサブリソースで構成される 1 つのテクスチャと考えてください。 サブリソースは、1 つのテクスチャの詳細レベル (LOD) を使用してインデックスを作成できます。 テクスチャの配列を使用する場合、特定のサブリソースにアクセスするには、LOD と特定のテクスチャの両方が必要です。 または、次の図に示すように、API はこれら 2 つの情報を 1 つの 0 から始まるサブリソース インデックスに結合します。
サブリソースの選択
リソース全体 ( ID3D11DeviceContext::CopyResource メソッドなど) にアクセスする API もあれば、リソースの一部 ( ID3D11DeviceContext::UpdateSubresource メソッドや ID3D11DeviceContext::CopySubresourceRegion メソッドなど) にアクセスする API もあります。 リソースの一部にアクセスするメソッドでは、通常、ビューの説明 ( D3D11_TEX2D_ARRAY_DSV 構造など) を使用して、アクセスするサブリソースを指定します。
次のセクションの図は、テクスチャの配列にアクセスするときにビューの説明で使用される用語を示しています。
配列スライス
テクスチャの配列を指定すると、ミップマップを持つ各テクスチャには、次の図に示すように、(白い四角形で表される) 配列スライス には、1 つのテクスチャとそのすべてのサブリソースが含まれます。
ミップ スライス
次の図に示すように、 ミップ スライス (白い四角形で表されます) には、配列内のすべてのテクスチャに対して 1 つのミップマップ レベルが含まれます。
単一サブリソースの選択
次の図に示すように、単一のリソースを選択するには、前述の 2 種類のスライスを使用します。
複数のサブリソースの選択
または、次の図に示すように、これら 2 種類のスライスをミップマップ レベルの数やテクスチャの数と共に使用して、複数のサブリソースを選択することもできます。
Note
レンダー ターゲット ビューでは、1 つのサブリソースまたはミップ スライスのみを使用でき、複数の mip スライスのサブリソースを含めることはできません。 つまり、1 つのレンダー ターゲット ビュー内のテクスチャはすべて、同じサイズでなければなりません。 シェーダー リソース ビューでは、図に示すように、サブリソースの任意の四角形の領域を選択できます。
関連トピック