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.
- Vue d’ensemble
- API de ressources en mosaïques D3D11.3
- rubriques connexes
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ïque 3D texture (mip le plus détaillé)
- mappage par défaut des ressources en mosaïque 3D texture (deuxième mip plus détaillé)
- ressource en mosaïque 3D texture (mip le plus détaillé)
- ressource en mosaïque 3D texture (deuxième mip plus détaillée)
- ressource en mosaïque 3D texture (vignette unique)
- ressource en mosaïque 3D de texture (Uniform Box)
Mappage par défaut des ressources en mosaïques de texture 3D (mip le plus détaillé)
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é)
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;
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;
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;
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;
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
- D3D11_TILED_RESOURCES_TIER : détermine le niveau de prise en charge des ressources en mosaïques.
- D3D11_FORMAT_SUPPORT2 : utilisé pour tester la prise en charge des ressources en mosaïques.
- D3D11_CHECK_MULTISAMPLE_QUALITY_LEVELS_FLAG : détermine la prise en charge des ressources en mosaïques dans une ressource à échantillonnage multiple.
- D3D11_TILE_COPY_FLAGS : contient des indicateurs pour la copie vers et à partir des ressources en mosaïques swizzled et des mémoires tampons linéaires.
Structures
- D3D11_TILED_RESOURCE_COORDINATE : contient la référence x, y et z co-ordiné, et la référence de sous-ressource. Notez qu’il existe une classe d’assistance : CD3D11_TILED_RESOURCE_COORDINATE.
- D3D11_TILE_REGION_SIZE : spécifie la taille et le nombre de vignettes de la région en mosaïque.
- D3D11_TILE_SHAPE : forme de mosaïque sous forme de largeur, de hauteur et de profondeur en texels.
- D3D11_FEATURE_DATA_D3D11_OPTIONS1: contient le niveau de ressource de vignette pris en charge.
Méthode
- ID3D11Device ::CheckFeatureSupport : utilisé pour déterminer les fonctionnalités et à quel niveau, sont pris en charge par le matériel actuel.
- ID3D11DeviceContext2 ::CopyTiles : copie les vignettes de la mémoire tampon vers la ressource en mosaïque ou inversement.
- ID3D11DeviceContext2 ::UpdateTileMappings : met à jour les mappages des emplacements des vignettes dans les ressources en mosaïques aux emplacements mémoire d’un pool de vignettes.
- ID3D11DeviceContext2 ::CopyTileMappings : copie les mappages d’une ressource en mosaïque source vers une ressource en mosaïque de destination.
- ID3D11DeviceContext2 ::GetResourceTiling : obtient des informations sur la façon dont une ressource mosaïque est divisée en vignettes.
Rubriques connexes
-
fonctionnalités Direct3D 11.3