Variante de dimensions de la texture moitié/un quartHalf/Quarter Texture Dimensions Variant

Réduit les dimensions des textures qui ne sont pas des cibles de rendu.Reduces the texture dimensions on textures that are not render targets.

InterprétationInterpretation

Les textures de plus petite taille occupent moins de mémoire et consomment ainsi moins de bande passante de mémoire et soulagent le cache de texture du GPU.Smaller textures occupy less memory and therefore consume less memory bandwidth and reduce pressure on the GPU's texture cache. Cependant, leur faible définition peut se traduire par une qualité d'image réduite, plus particulièrement sur les plans rapprochés dans une scène 3D ou dans une vue agrandie.However, their lesser detail can cause reduced image quality, especially when they're viewed closely in a 3-D scene or viewed under magnification.

Si cette variante donne lieu à un gain de performances sensible, cela peut indiquer que votre application consomme trop de bande passante de mémoire, qu'elle n'utilise pas efficacement le cache de texture, ou les deux à la fois.If this variant shows a large performance gain, it can indicate that your app consumes too much memory bandwidth, uses the texture cache inefficiently, or both. Cela peut aussi être le signe que vos textures occupent plus de mémoire GPU que vous n'en disposez, ce qui provoque leur pagination en mémoire système.It can also indicate that your textures occupy more GPU memory than is available, which causes textures to be paged to system memory.

Si votre application consomme trop de bande passante de mémoire ou n'utilise pas efficacement le cache de texture, songez à réduire la taille de votre textures, mais seulement après avoir envisagé d'activer les mipmaps pour les textures appropriées.If your app consumes too much memory bandwidth or uses the texture cache inefficiently, consider reducing the size of your textures, but only after you consider enabling mip-maps for appropriate textures. Comme les textures de petite taille, les textures mipmappées consomment moins de bande passante de mémoire (même si elles occupent plus de mémoire GPU) et sollicitent davantage le cache, mais leur définition n'est pas réduite.Like smaller textures, mip-mapped textures consume less memory bandwidth—although they occupy more GPU memory—and increase cache utilization, but they don't reduce texture detail. Nous vous recommandons d'utiliser les mipmaps du moment où l'utilisation accrue de mémoire n'entraîne pas la pagination des textures en mémoire système.We recommend mip-maps whenever the increased memory usage doesn't cause textures to be paged to system memory.

Si vos textures occupent plus de mémoire GPU que vous n'en disposez, songez à réduire la taille des textures, mais seulement après avoir envisagé de compresser les textures appropriées.If your textures occupy more GPU memory than is available, consider reducing the size of the textures, but only after you consider compressing appropriate textures. Comme les textures de petite taille, les textures compressées occupent moins de mémoire et font moins appel à la pagination en mémoire système, mais elles pâtissent d'une moindre fidélité des couleurs.Like smaller textures, compressed textures occupy less memory and reduce the need to page to system memory, but their color fidelity is reduced. Si la compression ne convient pas à toutes les textures (par exemple, celles qui présentent une forte variation de couleurs sur une petite surface), ce qui dépend de leur contenu, dans bien des cas, la compression donne de meilleurs résultats en termes de qualité d'image globale que la réduction de la taille.Compression isn't appropriate for all textures, depending on their content—for example, those that have significant color variation in a small area—but for many textures, compression can retain better overall image quality than reducing their size.

NotesRemarks

Les dimensions des textures sont réduites à chaque appel à ID3D11Device::CreateTexture2D, qui est chargé de créer une texture source.Texture dimensions are reduced on every call to ID3D11Device::CreateTexture2D that creates a source texture. Plus spécifiquement, les dimensions des textures sont réduites quand l'objet D3D11_TEXTURE2D_DESC passé dans pDesc décrit une texture utilisée dans le rendu, à savoir :Specifically, texture dimensions are reduced when the D3D11_TEXTURE2D_DESC object passed in pDesc describes a texture that's used in rendering; that is:

  • Seul l'indicateur D3D11_BIND_SHADER_RESOURCE du membre BindFlags est défini.The BindFlags member has only the D3D11_BIND_SHADER_RESOURCE flag set.

  • L'indicateur D3D11_RESOURCE_MISC_TILE_POOL ou D3D11_RESOURCE_MISC_TILED n'est pas défini pour le membre MiscFlags (les ressources en mosaïque ne sont pas redimensionnées).The MiscFlags member does not have the D3D11_RESOURCE_MISC_TILE_POOL flag or the D3D11_RESOURCE_MISC_TILED flag set (tiled resources are not resized).

  • Le format de texture est pris en charge en tant que cible de rendu (déterminé par D3D11_FORMAT_SUPPORT_RENDER_TARGET), ce qui est nécessaire pour réduire la taille des textures.The texture format is supported as a render target—as determined by D3D11_FORMAT_SUPPORT_RENDER_TARGET—which is required for reducing the texture size. Les formats BC1, BC2 et BC3 sont aussi pris en charge, même s'ils ne sont pas pris en charge en tant que cibles de rendu.BC1, BC2, and BC3 formats are also supported, even though they're not supported as render targets.

    Si les données initiales sont fournies par l'application, cette variante met les données de texture à l'échelle appropriée avant de créer la texture.If initial data is supplied by the application, this variant scales the texture data to the appropriate size before it creates the texture. Si les données initiales sont fournies dans un format de compression de blocs tel que BC1, BC2 ou BC3, elles sont décodées, mises à l'échelle, puis réencodées avant d'être utilisées pour créer la texture plus petite.If initial data is supplied in a block-compressed format such as BC1, BC2, or BC3, it is decoded, scaled, and re-encoded before it's used to create the smaller texture. (Du fait de la nature de la compression de blocs, le processus de décodage/mise à l'échelle/encodage entraîne presque toujours une perte de qualité d'image par rapport à une texture à blocs compressés générée à partir d'une version mise à l'échelle de la texture qui n'avait pas été auparavant encodée.)(The nature of block-based compression means that the extra decode-scale-encode process almost always causes lower image quality than when a block-compressed texture is generated from a scaled version of the texture that had not previously been encoded.)

    Si les mipmaps sont activés pour la texture, la variante réduit le nombre de niveaux MIP en conséquence (un de moins pour une taille réduite de moitié ou deux de moins pour une taille réduite au quart).If mip-maps are enabled for the texture, the variant reduces the number of mip levels accordingly—one fewer when scaling to half-size or two fewer when scaling to quarter-size.

ExempleExample

Cette variante redimensionne les textures au moment de l'exécution avant l'appel à CreateTexture2D.This variant resizes textures at runtime before the call to CreateTexture2D. Nous déconseillons cette approche pour le code de production, car les textures de taille réelle consomment plus d'espace disque et cette étape supplémentaire peut allonger sensiblement les temps de chargement dans votre application (surtout dans le cas des textures compressées, qui nécessitent des ressources de calcul importantes pour l'encodage).We recommend against this approach for production code because the full-size textures consume more disk space and because the additional step can increase loading times in your app—especially for compressed textures, which require significant computational resources to encode. Nous vous recommandons plutôt de redimensionner vos textures hors connexion en utilisant un éditeur ou un processeur d'images intégré à votre pipeline de génération.Instead, we recommend that you resize your textures offline by using an image editor or image processor that's part of your build pipeline. Ces approches réduisent les besoins en espace disque, éliminent les surcharges au moment de l’exécution de votre application et autorisent un temps de traitement supérieur, ce qui vous permet de conserver une qualité d’image optimale lors de la réduction ou de la compression de vos textures.These approaches reduce disk-space requirements and eliminate runtime overhead in your app, and afford more processing time so that you can retain the best image quality while shrinking or compressing your textures.

Voir aussiSee Also

Variante de génération mipmap Mip-map Generation Variant
Variante de compression de texture BCBC Texture Compression Variant