Partager via


Ressources en mosaïques en volume (Direct3D 12)

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 Direct3D de sa mémoire de stockage (les ressources du 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 Direct3D 11.2. La prise en charge facultative des textures en mosaïques 3D est disponible pour Direct3D 12 et Direct3D 11.3 (reportez-vous à D3D12_TILED_RESOURCES_TIER).

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 ci-dessous, le gris foncé représente les vignettes NULL.

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

mappage par défaut d’une ressource 3 dimensions en mosaïque

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

affiche le mip le plus détaillé

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

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

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;

mip le plus détaillé pour une texture tridimensionnelle

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

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

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;

mip le plus détaillé pour une texture tridimensionnelle

Ressource en mosaïque de texture 3D (vignette unique)

Le code suivant configure une ressource de vignette unique.

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;

une ressource tridimensionnelle à vignette unique

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

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

une boîte uniforme

API de ressources en mosaïque

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

Énumérations

Structs

Méthode

  • de liaison de ressources