Partager via


Comment la zone d’une ressource en mosaïque est en mosaïque

Lorsque vous créez une ressource en mosaïque, les dimensions, la taille des éléments de format et le nombre de mipmaps et/ou de tranches de tableau (le cas échéant) déterminent le nombre de vignettes nécessaires pour sauvegarder l’ensemble de la surface. La disposition pixel/octet dans les vignettes est déterminée par l’implémentation. Le nombre de pixels qui s’ajustent dans une vignette, en fonction de la taille de l’élément de format, est fixe et identique, que vous utilisiez ou non un swizzle standard.

Le nombre de vignettes qui seront utilisées par une taille de surface et une largeur d’élément de format donnés est bien défini et prévisible en fonction des tableaux des sections suivantes. Pour les ressources qui contiennent des mipmaps ou des cas où les dimensions de surface ne remplissent pas une vignette, certaines contraintes existent et sont abordées dans l’emballage Mipmap.

Différentes ressources en mosaïques peuvent pointer vers une mémoire identique avec différents formats tant que les applications ne s’appuient pas sur les résultats de l’écriture en mémoire avec un format et de la lecture avec un autre. Toutefois, dans des circonstances contraintes, les applications peuvent s’appuyer sur les résultats de l’écriture en mémoire avec un format et de la lecture avec un autre si les formats sont dans la même famille de formats (autrement dit, ils ont le même format parent sans type). Par exemple, DXGI_FORMAT_R8G8B8A8_UNORM et DXGI_FORMAT_R8G8B8A8_UINT sont compatibles les uns avec les autres, mais pas avec DXGI_FORMAT_R16G16_UNORM. Une application doit correspondre de manière conservatrice à toutes les propriétés de ressource afin de réinterpréter les données entre deux textures, car les modèles de vignette ne sont pas définis de manière très conservatrice. Évidemment, cependant, le format est plus laxiste. Les formats doivent uniquement être compatibles, comme illustré ci-dessus. Une exception est que le saignement des données d’un alias de format à un autre est bien défini : si une vignette contient entièrement 0 pour tous ses bits, cette vignette peut être utilisée avec n’importe quel format qui interprète ces contenus de mémoire comme 0 (quelle que soit la disposition de la mémoire). Ainsi, une vignette peut être effacée pour 0x00 avec le format DXGI_FORMAT_R8_UNORM, puis utilisée avec un format comme DXGI_FORMAT_R32G32_FLOAT et il semblerait que le contenu soit toujours (0.0f,0.0f).

La disposition des données dans une vignette peut dépendre des propriétés de la ressource, de la sous-ressource dans laquelle elle réside et de l’emplacement des vignettes dans la sous-ressource. Les principales exceptions sont illustrées ci-dessus : formats compatibles avec d’autres propriétés de ressource égales et lorsque tous les texels sont le même modèle.

Contenu de cette section

Rubrique Description
Restitution des sous-ressources Texture2D et Texture2DArray sous forme de mosaïque
Ces tableaux montrent comment les sous-ressources Texture2D et Texture2DArray sont mosaïques.
Restitution de la sous-ressource Texture3D sous forme de mosaïque
Ce tableau montre comment les sous-ressources Texture3D sont mosaïques.
Mosaïque de mémoires tampons
Une ressource tampon est divisée en vignettes de 64 Ko, avec un espace vide dans la dernière vignette si la taille n’est pas un multiple de 64 Ko.
Compression de mipmaps
Selon le niveau de prise en charge des ressources en mosaïques, les mipmaps avec certaines dimensions ne suivent pas les formes de vignette standard et sont considérés comme étant regroupés les uns avec les autres d’une manière opaque pour l’application.

Création de ressources en mosaïques