リソース (Direct3D 10)
リソースは、Direct3D パイプラインからアクセスできるメモリ内の領域です。 パイプラインがメモリに効率的にアクセスするためには、パイプラインに提供されるデータ (入力ジオメトリ、シェーダー リソース、テクスチャなど) をリソースに格納する必要があります。 すべての Direct3D リソースの派生元となるリソースには、バッファーとテクスチャの 2 種類があります。 パイプライン ステージごとに最大 128 個のリソースをアクティブにすることができます。
通常、各アプリケーションは多数のリソースを作成します。 リソースの例としては、頂点バッファー、インデックス バッファー、定数バッファー、テクスチャ、シェーダー リソースなどがあります。 リソースの使用方法を決定するいくつかのオプションがあります。 厳密に型指定されたリソースまたは型が小さいリソースを作成できます。リソースに読み取りと書き込みの両方のアクセス許可があるかどうかを制御できます。リソースにアクセスできるのは、CPU、GPU、またはその両方だけです。 当然ながら、速度と機能のトレードオフがあります。リソースに許可する機能が多いほど、予想されるパフォーマンスが低下します。
アプリケーションでは多くのテクスチャが使用されることが多いため、Direct3D ではテクスチャの管理を簡略化するためのテクスチャ配列の概念も導入されています。 テクスチャ配列には、アプリケーション内またはシェーダーからインデックスを作成できる 1 つ以上のテクスチャ (すべて同じ型とディメンション) が含まれています。 テクスチャ配列を使用すると、複数のインデックスを持つ 1 つのインターフェイスを使用して、多くのテクスチャにアクセスできます。 必要な数のテクスチャ配列を作成して、さまざまなテクスチャの種類を管理できます。
アプリケーションで使用するリソースを作成したら、各リソースを使用するパイプライン ステージに接続またはバインドします。 これは、リソースへのポインターを受け取るバインド API を呼び出すことによって実現されます。 複数のパイプライン ステージで同じリソースへのアクセスが必要になる場合があるため、Direct3D 10 ではリソース ビューの概念が導入されています。 ビューは、アクセスできるリソースの部分を識別します。 共有リソースのバインド 規則に従っていると仮定して、m ビューまたはリソースを作成して n 個のパイプライン ステージにバインドできます (そうしないと、ランタイムはコンパイル時にエラーを生成します)。
リソース ビューは、リソース (テクスチャ、バッファーなど) にアクセスするための一般的なモデルを提供します。 ビューを使用して、アクセスするデータとそのアクセス方法をランタイムに伝えることができるため、リソース ビューを使用すると、型の少ないリソースを作成できます。 つまり、コンパイル時に特定のサイズのリソースを作成し、リソースがパイプラインにバインドされたときにリソース内でデータ型を宣言できます。 ビューでは、シェーダーの深度/ステンシル サーフェスを読み取り戻す機能、1 つのパスで動的キューブマップを生成する機能、ボリュームの複数のスライスに同時にレンダリングする機能など、リソースを使用するための多くの新機能が公開されています。
基本的なリソースの種類、テクスチャ配列、およびリソースを作成して使用する方法の詳細については、次の他のトピックを参照してください。
- リソースの種類の
- リソース の選択
- バッファー リソース の作成の
- テクスチャ リソース の作成の
- リソース データ のコピーとアクセスの
- メモリ構造とビュー
- ブロック圧縮
- リソース制限 の テーブル
- 座標系
- Floating-Point ルールの
- データ型変換規則
- マッピングの従来の形式
関連トピック
-
Direct3D 10 の プログラミング ガイド