方法: 前乗算されたアルファを持つテクスチャをエクスポートするHow to: Export a Texture that has Premultiplied Alpha

イメージ コンテンツ パイプラインを使用すると、前乗算されたアルファを含むテクスチャをソース イメージから生成できます。The Image Content Pipeline can generate premultiplied alpha textures from a source image. これらのテクスチャは、前乗算されたアルファを含まないテクスチャよりも簡単に使用でき、堅牢です。These can be simpler to use and more robust than textures that do not contain premultiplied alpha.

このドキュメントでは、以下のアクティビティについて説明します。This document demonstrates these activities:

  • イメージ コンテンツ パイプラインによって処理されるようにソース イメージを構成する。Configuring the source image to be processed by the Image Content Pipeline.

  • 前乗算されたアルファを生成するようにイメージ コンテンツ パイプラインを構成する。Configuring the Image Content Pipeline to generate premultiplied alpha.

前乗算されたアルファPremultiplied Alpha

前乗算されたアルファには、前乗算されていない従来のアルファよりも優れた点がいくつかあります。これは、前乗算されたアルファの方が、テクセルの色の効果 (シーンに追加される色) を透明度 (下にある色が透けて見える量) から分離することにより、現実世界における光と物質の相互作用を有効に表現できるためです。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). 前乗算されたアルファを使用する利点には、次のようなものがあります。Some of the advantages of using premultiplied alpha are:

  • 前乗算されたアルファとのブレンドは、結合演算です。テクスチャのブレンド順序に関係なく、複数の半透明テクスチャをブレンドした結果が同じになります。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.

  • 前乗算されたアルファとのブレンドは本質的に結合であるため、半透明オブジェクトのマルチパス レンダリングが単純になります。Because of the associative nature of blending with premultiplied alpha, multi-pass rendering of translucent objects is simplified.

  • 前乗算されたアルファを使用することで、純粋な加算ブレンド (アルファをゼロに設定) と線形補間ブレンドの両方を同時に行うことができます。By using premultiplied alpha, both pure additive blending (by setting alpha to zero) and linearly interpolated blending can be achieved simultaneously. たとえば、パーティクル システムでは、加算ブレンドされた炎のパーティクルを、線形補間を使用してブレンドされた半透明な煙のパーティクルにすることができます。For example, in a particle system, an additively blended fire particle can become a translucent smoke particle that's blended by using linear interpolation. 前乗算されたアルファを使用しない場合、煙のパーティクルとは別に炎のパーティクルを描画し、描画の呼び出し間でレンダリング状態を変更する必要があります。Without premultiplied alpha, you would have to draw the fire particles separately from the smoke particles, and modify the render state between draw calls.

  • 前乗算されたアルファを使用したテクスチャは、前乗算されたアルファを使用しないテクスチャよりも高い品質で圧縮できます。前乗算されたアルファを使用しないテクスチャをブレンドすると生じる可能性のある境界の変色 (ハロー効果) が起こることもありません。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.

前乗算されたアルファを使用したテクスチャを作成するにはTo create a texture that uses premultiplied alpha

  1. 基本的なテクスチャを作成します。Begin with a basic texture. 既存のイメージ ファイルを読み込むか、「方法: 基本テクスチャを作成する」の手順に従ってイメージ ファイルを作成します。Load an existing image file, or create one as described in How to: Create a Basic Texture.

  2. イメージ コンテンツ パイプラインによって処理されるようにテクスチャ ファイルを構成します。Configure the texture file so that it's processed by the Image Content Pipeline. ソリューション エクスプローラーでテクスチャ ファイルのショートカット メニューを開き、[プロパティ] をクリックします。In Solution Explorer, open the shortcut menu for the texture file and then choose Properties. [構成プロパティ][全般] ページで、[項目の種類][Image Content Pipeline] (イメージ コンテンツ パイプライン) に設定します。On the Configuration Properties, General page, set the Item Type property to Image Content Pipeline. [コンテンツ][はい] に、[ビルドから除外][いいえ] に設定されていることを確認し、[適用] ボタンをクリックします。Make sure that the Content property is set to Yes and Exclude From Build is set to No, and then choose the Apply button. [イメージ コンテンツ パイプライン] の構成プロパティ ページが表示されます。The Image Content Pipeline configuration property page appears.

  3. 前乗算されたアルファを生成するようにイメージ コンテンツ パイプラインを構成します。Configure the Image Content Pipeline to generate premultiplied alpha. [構成プロパティ] で、[イメージ コンテンツ パイプライン][全般] の順にクリックし、[Convert to pre-multiplied alpha format] (前乗算されたアルファ形式に変換) プロパティを [はい (/generatepremultipliedalpha)] に設定します。On the Configuration Properties, Image Content Pipeline, General page, set the Convert to pre-multiplied alpha format property to Yes (/generatepremultipliedalpha).

  4. [OK] を選択します。Choose the OK button.

    プロジェクトをビルドすると、イメージ コンテンツ パイプラインによってソース イメージが作業形式から、指定した出力形式に変換されます。同時に、前乗算されたアルファが生成されます。結果はプロジェクトの出力ディレクトリにコピーされます。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.