Freigeben über


Menge gekachelter Ressourcen

Volumetexturen (3D) können als gekachelte Ressourcen verwendet werden, wobei die Kachelauflösung dreidimensional ist.

Übersicht

Gekachelte Ressourcen entkoppeln ein D3D-Ressourcenobjekt von seinem unterstützenden Arbeitsspeicher (Ressourcen hatten in der Vergangenheit eine 1:1-Beziehung mit ihrem unterstützenden Arbeitsspeicher). Dies ermöglicht eine Vielzahl interessanter Szenarien, z. B. das Streaming in Texturdaten und die Wiederverwendung oder Reduzierung der Speicherauslastung.

Gekachelte 2D-Texturressourcen werden in D3D11.2 unterstützt. D3D12 und D3D11.3 unterstützen 3D-Kacheltexturen.

Die typischen Ressourcendimensionen, die beim Kacheln verwendet werden, sind 4 x 4 Kacheln für 2D-Texturen und 4 x 4 Kacheln für 3D-Texturen.

Bits/Pixel (1 Beispiel/Pixel) Kachelmaße (Pixel, b x h x t)
8 64x32x32
16 32x32x32
32 32x32x16
64 32x16x16
128 16x16x16
Bc 1,4 128x64x16
BC 2,3,5,6,7 64x64x16

 

Beachten Sie, dass die folgenden Formate bei gekachelten Ressourcen nicht unterstützt werden: 96-Tb-Formate, Videoformate, R1_UNORM, R8G8_B8G8_UNORM, R8R8_G8B8_UNORM.

In den folgenden Diagrammen stellt dunkelgrau NULL-Kacheln dar.

Standardzuordnung der gekachelten Textur-3D-Ressource (detaillierteste mip)

Standardzuordnung des detailreichsten MIP

Standardzuordnung der gekachelten Textur-3D-Ressource (zweitgenauste mip)

Standardzuordnung des zweitgenausten MIP

Textur-3D-Gekachelte Ressource (detaillierteste mip)

Der folgende Code richtet eine gekachelte 3D-Ressource mit dem detailliertesten MIP ein.

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

D3D11_TILE_REGION_SIZE trSize;
trSize.bUseBox = false;
trSize.NumTiles = 63;

Detaillierteste Zuordnung einer gekachelten 3D-Ressource

Textur-3D-Gekachelte Ressource (zweit detaillierteste mip)

Der folgende Code richtet eine gekachelte 3D-Ressource und den zweit detailliertesten MIP ein:

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

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

Zweitgenauste Zuordnung einer gekachelten 3D-Ressource

Textur 3D gekachelte Ressource (einzelne Kachel)

Mit dem folgenden Code wird eine Einzelne Kachelressource eingerichtet:

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

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

eine einzelne Kachel

Textur 3D gekachelte Ressource (Uniform Box)

Der folgende Code richtet eine gekachelte Uniform Box-Ressource ein (beachten Sie die Anweisung trSize.bUseBox = true;) :

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

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

eine einheitliche Box

D3D11.3 gekachelte Ressourcen-APIs

Die gleichen API-Aufrufe werden sowohl für gekachelte 2D- als auch für 3D-Ressourcen verwendet:

Enumerationen

Strukturen

Methoden

Direct3D 11.3 Features