Ressources en mosaïque de volume

Les textures de volume (3D) peuvent être utilisées comme ressources en mosaïques, en notant que la résolution des vignettes est tridimensionnelle.

Vue d’ensemble

Les ressources en mosaïque dissocient un objet Resource D3D de sa mémoire de stockage (les ressources auparavant avaient une relation 1:1 avec leur mémoire de stockage). Cela permet de prendre en charge une variété de scénarios intéressants tels que la diffusion en continu dans les données de texture et la réutilisation ou la réduction de l’utilisation de la mémoire

Les ressources en mosaïques de texture 2D sont prises en charge dans D3D11.2. D3D12 et D3D11.3 prennent en charge les textures en mosaïque 3D.

Les dimensions de ressource typiques utilisées dans le mosaïque sont 4 vignettes x 4 pour les textures 2D et 4 x 4 vignettes pour les textures 3D.

Bits/pixel (1 échantillon/pixel) Dimensions des vignettes (pixels, l x h x d)
8 64x32x32
16 32x32x32
32 32x32x16
64 32x16x16
128 16x16x16
BC 1,4 128x64x16
BC 2,3,5,6,7 64x64x16

 

Notez que les formats suivants ne sont pas pris en charge avec les ressources en mosaïque : formats 96bpp, formats vidéo, R1_UNORM, R8G8_B8G8_UNORM, R8R8_G8B8_UNORM.

Dans les diagrammes ci-dessous, le gris foncé représente les vignettes NULL.

Mappage par défaut des ressources en mosaïques texture 3D (mip le plus détaillé)

mappage par défaut du mip le plus détaillé

Mappage par défaut des ressources en mosaïques texture 3D (deuxième mip le plus détaillé)

mappage par défaut du deuxième mip le plus détaillé

Ressource en mosaïque texture 3D (mip le plus détaillé)

Le code suivant configure une ressource en mosaïque 3D au niveau le plus détaillé.

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;

mappage le plus détaillé d’une ressource en mosaïque 3D

Ressource en mosaïque 3D de texture (deuxième mip le plus détaillé)

Le code suivant configure une ressource en mosaïque 3D et le deuxième mip le plus détaillé :

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;

deuxième mappage le plus détaillé d’une ressource en mosaïque 3D

Ressource en mosaïque Texture 3D (vignette unique)

Le code suivant configure une ressource à vignette unique :

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;

une seule vignette

Ressource en mosaïque 3D de texture (zone uniforme)

Le code suivant configure une ressource en mosaïque Uniform Box (notez l’instruction 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;

une boîte uniforme

API de ressources en mosaïques D3D11.3

Les mêmes appels d’API sont utilisés pour les ressources 2D et 3D en mosaïque :

Énumérations

Structures

Méthodes

Fonctionnalités de Direct3D 11.3