Ressources en mosaïque de volume

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

Vue d’ensemble

Les ressources en mosaïque découplent un objet ressource D3D de la mémoire de stockage (les ressources du passé ont une relation 1:1 avec leur mémoire de stockage). Cela permet un large éventail 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ïque de texture 2D sont prises en charge dans D3D 11.2. D3D12 et D3D 11.3 ajoutent la prise en charge des textures en mosaïque 3D.

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

Bits/pixel (1 échantillon/pixel) Dimensions de la mosaïque (pixels, 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, gris foncé représente des vignettes NULL.

Mappage par défaut des ressources en mosaïque 3D de la texture (MIP le plus détaillé)

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

Mappage par défaut des ressources en mosaïque 3D de la texture (deuxième MIP le plus détaillé)

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

Ressource mosaïque 3D de texture (MIP le plus détaillé)

Le code suivant configure une ressource en mosaïque 3D au MIP 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 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 mosaïque 3D de texture (vignette simple)

Le code suivant configure une seule ressource de mosaïque :

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 mosaïque 3D de texture (zone uniforme)

Le code suivant configure une ressource de zone en mosaïque uniforme (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;

un cadre uniforme

API de ressources en mosaïque de D3D 11.3

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

Énumérations

Structures

Méthodes

Fonctionnalités Direct3D 11,3