テクスチャ ビュー (Direct3D 10)
Direct3D 10 では、テクスチャ リソースにビューを使用してアクセスします。これは、メモリ内のリソースをハードウェアで解釈するためのメカニズムです。 ビューを使用すると、特定のパイプライン ステージは、必要な サブリソースにのみ、アプリケーションで必要な表現でアクセスできます。
ビューは、型のないリソースの概念をサポートします。 型のないリソースは、特定のサイズで作成されたリソースですが、特定のデータ型ではありません。 データは、パイプラインにバインドされると動的に解釈されます。
次の図は、シェーダー リソース ビューを作成して、6 つのテクスチャを持つ 2D テクスチャ配列をシェーダー リソースとしてバインドする例を示しています。 その後、リソースはテクスチャの配列としてアドレス指定されます。 (注: サブリソースは、入力と出力の両方としてパイプラインに同時にバインドすることはできません)。
6 つのテクスチャ図
レンダー ターゲットとして 2D テクスチャ配列を使用する場合、リソースはミップマップ レベル (この例では 3) を持つ 2D テクスチャの配列 (この例では 6) として表示できます。
CreateRenderTargetView を呼び出して、レンダー ターゲットのビュー オブジェクトを作成します。 次に、OMSetRenderTargets を呼び出して、レンダー ターゲット ビューをパイプラインに設定します。 Draw を呼び出し、RenderTargetArrayIndex を使用して配列内の適切なテクスチャにインデックスを付けることで、レンダー ターゲットにレンダリングします。 サブリソース (ミップマップ レベル、配列インデックスの組み合わせ) を使用して、サブリソースの任意の配列にバインドできます。 そのため、次の図に示すように、2 番目のミップマップ レベルにバインドし、必要な場合にのみこの特定のミップマップ レベルを更新できます。
の 2 番目のミップマップ レベルにのみバインドする図
Direct3D 9 と Direct3D 10 の違い:
- Direct3D 10 では、リソースをパイプラインに直接バインドしなくなり、リソースのビューを作成し、そのビューをパイプラインに設定します。 これにより、ランタイムとドライバーの検証とマッピングをビューの作成時に行い、バインド時の型チェックを最小限に抑えることができます。
関連トピック