Guide pratique pour exporter une texture qui contient des valeurs alpha prémultipliéesHow to: Export a texture that has premultiplied alpha

Le pipeline de contenus d’image peut générer des textures alpha prémultipliées à partir d’une image source.The Image Content Pipeline can generate premultiplied alpha textures from a source image. Ces textures peuvent être plus faciles à utiliser et plus robustes que celles ne contenant pas de valeurs alpha prémultipliées.These can be simpler to use and more robust than textures that do not contain premultiplied alpha.

Ce document illustre ces activités :This document demonstrates these activities:

  • Configuration de l’image source à traiter par le pipeline de contenus d’image.Configuring the source image to be processed by the Image Content Pipeline.

  • Configuration du pipeline de contenus d’image pour générer des valeurs alpha prémultipliées.Configuring the Image Content Pipeline to generate premultiplied alpha.

Valeurs alpha prémultipliéesPremultiplied alpha

Les valeurs alpha prémultipliées offrent plusieurs avantages par rapport aux valeurs alpha conventionnelles non prémultipliées, car elles représentent mieux l’interaction réelle de la lumière avec les matériaux physiques en séparant la contribution de couleur du texel (couleur qu’il ajoute à la scène) de sa translucidité (quantité de couleur sous-jacente qu’il laisse passer).Premultiplied alpha offers several advantages over conventional, non-premultiplied alpha, because it better represents the real-world interaction of light with physical materials by separating the texel's color contribution (the color that it adds to the scene) from its translucency (the amount of underlying color that it allows through). L’utilisation de valeurs alpha prémultipliées présente les avantages suivants :Some of the advantages of using premultiplied alpha are:

  • Le mélange avec des données alpha prémultipliées est une opération associative ; le résultat du mélange de plusieurs textures translucides est identique, indépendamment de l’ordre dans lequel les textures sont mélangées.Blending with premultiplied alpha is an associative operation; the result of blending multiple translucent textures is the same, regardless of the order in which the textures are blended.

  • En raison de la nature associative du mélange avec les valeurs alpha prémultipliées, le rendu multipasse des objets translucides est simplifié.Because of the associative nature of blending with premultiplied alpha, multi-pass rendering of translucent objects is simplified.

  • En utilisant des valeurs alpha prémultipliées, vous pouvez réaliser simultanément le mélange additif pur (en définissant la valeur alpha à zéro) et le mélange linéairement interpolé.By using premultiplied alpha, both pure additive blending (by setting alpha to zero) and linearly interpolated blending can be achieved simultaneously. Par exemple, dans un système de particules, une particule de feu mélangée par ajout peut devenir une particule de fumée translucide mélangée à l’aide de l’interpolation linéaire.For example, in a particle system, an additively blended fire particle can become a translucent smoke particle that's blended by using linear interpolation. Sans valeur alpha prémultipliée, vous devriez dessiner les particules de feu séparément des particules de fumée, et modifier l’état de rendu entre les appels de dessin.Without premultiplied alpha, you would have to draw the fire particles separately from the smoke particles, and modify the render state between draw calls.

  • Les textures qui utilisent des valeurs alpha prémultipliées sont mieux compressées que celles qui ne l’utilisent pas, et elles n’exposent pas les bords décolorés ou « l’effet de halo » qui peut se produire quand vous mélangez des textures qui n’utilisent pas de valeurs alpha prémultipliées.Textures that use premultiplied alpha compress with higher quality than those that don't, and they don't exhibit the discolored edges—or "halo effect"—that can result when you blend textures that don't use premultiplied alpha.

Pour créer une texture qui utilise des valeurs alpha prémultipliéesTo create a texture that uses premultiplied alpha

  1. Commencez par une texture de base.Begin with a basic texture. Chargez un fichier image existant ou créez-en un comme décrit dans Guide pratique pour créer une texture de base.Load an existing image file, or create one as described in How to: Create a basic texture.

  2. Configurez le fichier de texture pour qu’il soit traité par le pipeline de contenus d’image.Configure the texture file so that it's processed by the Image Content Pipeline. Dans l’Explorateur de solutions, ouvrez le menu contextuel du fichier de texture, puis choisissez Propriétés.In Solution Explorer, open the shortcut menu for the texture file and then choose Properties. Dans la page Propriétés de configuration > Général, définissez la propriété Type d’élément sur Pipeline de contenus d’image.On the Configuration Properties > General page, set the Item Type property to Image Content Pipeline. Vérifiez que la propriété Contenu est définie sur Oui et que Exclure de la génération est défini sur Non, puis choisissez le bouton Appliquer.Make sure that the Content property is set to Yes and Exclude From Build is set to No, and then choose the Apply button. La page des propriétés de configuration du Pipeline de contenus d’image apparaît.The Image Content Pipeline configuration property page appears.

  3. Configurez le pipeline de contenus d’image pour générer des valeurs alpha prémultipliées.Configure the Image Content Pipeline to generate premultiplied alpha. Dans la page Propriétés de configuration > Pipeline de contenus d’image > Général, affectez la valeur Oui (/generatepremultipliedalpha) à la propriété Convertir au format alpha prémultiplié.On the Configuration Properties > Image Content Pipeline > General page, set the Convert to pre-multiplied alpha format property to Yes (/generatepremultipliedalpha).

  4. Sélectionnez le bouton OK .Choose the OK button.

    Quand vous générez le projet, le pipeline de contenus d’image convertit l’image source du format de travail dans le format de sortie que vous avez spécifié (cette opération inclut la conversion de l’image au format des valeurs alpha prémultipliées) et le résultat est copié dans le répertoire de sortie du projet.When you build the project, the Image Content Pipeline converts the source image from the working format to the output format that you specified—this includes conversion of the image to premultiplied alpha format—and the result is copied to the project's output directory.