次の方法で共有


タイル リソースのボリューム (Direct3D 12)

ボリューム (3D) テクスチャは、タイルの解像度が 3 次元であることを示すタイル リソースとして使用できます。

概要

タイルリソースは、Direct3D リソース オブジェクトをバッキング メモリから切り離します (過去のリソースはバッキング メモリと 1 対 1 の関係を持っていました)。 これにより、テクスチャ データのストリーミングやメモリ使用量の再利用や削減など、さまざまな興味深いシナリオが可能になります。

Direct3D 11.2 では、2D テクスチャ タイル リソースがサポートされています。 Direct3D 12 および Direct3D 11.3 では、3D タイル テクスチャのオプションのサポートを利用できます (D3D12_TILED_RESOURCES_TIERを参照)。

タイリングで使用される一般的なリソース ディメンションは、2D テクスチャの場合は 4 x 4 タイル、3D テクスチャの場合は 4 x 4 x 4 タイルです。

ビット/ピクセル (1 サンプル/ピクセル) タイルのサイズ (ピクセル、w x h x d)
8 64 x 32 x 32
16 32 x 32 x 32
32 32 x 32 x 16
64 32 x 16 x 16
128 16 x 16 x 16
BC 1,4 128 x 64 x 16
BC 2,3,5,6,7 64 x 64 x 16

タイル リソースでは、96bpp 形式、ビデオ形式、R1_UNORMR8G8_B8G8_UNORMR8R8_G8B8_UNORMでは、次の形式がサポートされていないことに注意してください。

次の図では、濃い灰色は NULL タイルを表しています。

テクスチャ 3D タイル リソースの既定のマッピング (最も詳細なミップ)

タイル化された 3 次元リソース の既定のマッピング

テクスチャ 3D タイル リソースの既定のマッピング (2 番目に詳細なミップ)

は、2 番目に詳細なミップ を示しています

テクスチャ 3D タイル リソース (最も詳細なミップ)

次のコードでは、最も詳細なミップで 3D タイル リソースを設定します。

D3D12_TILED_RESOURCE_COORDINATE trCoord{};
trCoord.X = 1;
trCoord.Y = 0;
trCoord.Z = 0;
trCoord.Subresource = 0;

D3D12_TILE_REGION_SIZE trSize{};
trSize.bUseBox = false;
trSize.NumTiles = 63;

3 次元テクスチャ の最も詳細なミップ

テクスチャ 3D タイル リソース (2 番目に詳細なミップ)

次のコードは、3D タイル リソースと、2 番目に詳細なミップを設定します。

D3D12_TILED_RESOURCE_COORDINATE trCoord;
trCoord.X = 1;
trCoord.Y = 0;
trCoord.Z = 0;
trCoord.Subresource = 1;

D3D12_TILE_REGION_SIZE trSize;
trSize.bUseBox = false;
trSize.NumTiles = 6;

3 次元テクスチャ の 2 番目に詳細なミップ

テクスチャ 3D タイル リソース (単一タイル)

次のコードでは、1 つのタイル リソースを設定します。

D3D12_TILED_RESOURCE_COORDINATE trCoord;
trCoord.X = 1;
trCoord.Y = 1;
trCoord.Z = 1;
trCoord.Subresource = 0;

D3D12_TILE_REGION_SIZE trSize;
trSize.bUseBox = true;
trSize.NumTiles = 27;
trSize.Width = 3;
trSize.Height = 3;
trSize.Depth = 3;

単一タイルの 3 次元リソースする

テクスチャ 3D タイル リソース (均一ボックス)

次のコードは、均一なボックスのタイルリソースを設定します (ステートメント trSize.bUseBox = true;) :

D3D12_TILED_RESOURCE_COORDINATE trCoord;
trCoord.X = 0;
trCoord.Y = 1;
trCoord.Z = 0;
trCoord.Subresource = 0;

D3D12_TILE_REGION_SIZE trSize;
trSize.bUseBox = true;
trSize.NumTiles = 27;
trSize.Width = 3;
trSize.Height = 3;
trSize.Depth = 3;

均一なボックスする

タイル リソース API

同じ API 呼び出しは、2D と 3D の両方のタイル リソースに使用されます。

列挙型

構造体

メソッド

  • リソース バインド