Partager via


Ressources en mosaïques en volume

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

Aperçu

Les ressources en mosaïques dissocient un objet de ressource D3D de sa mémoire de stockage (les ressources dans le passé ont eu une relation 1:1 avec leur mémoire de stockage). Cela permet de nombreux 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 ajoutent la prise en charge des textures en mosaïques 3D.

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

Bits/pixels (1 exemple/pixel) Dimensions de vignette (pixels, w x h x d)
8 64x32x32
16 32x32x32
32 32x32x16
64 32x16x16
128 16x16x16
BC 1,4 128x64x16
BC 2,3,5,6,7 64 x 64 x 16

 

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

Dans les diagrammes en gris foncé ci-dessous, les vignettes NULL sont présentes.

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

mappage par défaut des mip les plus détaillés

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

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

Texture 3D Tiled Resource (mip le plus détaillé)

Le code suivant configure une ressource en mosaïque 3D au niveau du 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 en mosaïque 3D de texture (deuxième mip 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 3D texture (vignette unique)

Le code suivant configure une ressource de 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 de texture 3D (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 en mosaïque 2D et 3D :

Énumérations

Structures

Méthode

fonctionnalités Direct3D 11.3