お問い合わせTopゲームプログラムトップアルファブレンドアルファブレンド■アルファブレンドアルファブレンドとは画像のα値を使用して合成することです。アルファブレンドを使用することで画像やポリゴンに使用されているアルファ値が有効になり画像が透過します。アルファブレンドを有効にした状態で画像の上にアルファ値を持った半透明な画像を重ねると二つの画像の重なり部分が分かる描画になります。以下の図はアルファブレンドの使用の有無による描画の差異を表しています。●DirectXでのアルファブレンド実行の流れDirectXではSetRenderStateを使用することでアルファブレンドの設定ができます。以下はDirectXでアルファブレンドを行う際の流れになります。SetRenderStateでアルファブレンドの設定を行う必要があります。1.SetRenderStateでアルファブレンドをONにするSetRenderStateでアルファブレンドの設定をONにします。TRUE);2.SRCとDESTでアルファ値のブレンディング係数を決めるアルファブレンドを有効にしたらアルファ値のブレンディング係数を決めます。係数は画面上に既に表示されている色情報(DEST)と上から新しく描画する色情報(SRC)の両方で設定する必要があります。上の図のように透過なしはアルファ値が反映されず画像の色情報がそのまま表示されます。SetRenderState設定のD3DBLEND_ONEは色情報に対して1をD3DBLEND_ZEROは色情報に対して0をかけます。色の合成を行わずSRCの色情報をそのまま使用するにしています。上の図のように通常透過はアルファ値が反映され、画像が重なっている部分はSRCのアルファ値に応じた色の合成が行われます。SRCのアルファ値)をかけます。通常の透過ではSRCのアルファ値を色情報の合成の比重に使用しています。SRCのアルファ値を使用しているのは上から書き込まれる画像の色情報を優先しているからです。上の図のように加算合成は二つの色情報の合計値が画像が重なり合っている部分に使用されます。加算合成はアルファ値は使用せず、色情報がそのまま使用されるので透過は行われません。色情報の加算は明るい色同士の加算の場合、すぐに白色になってしまうのでこちらも注意して下さい。2-4.加算合成(透過版)2-3の加算合成はアルファ値の内容を考慮せずに行われますが、アルファ値を合成結果に反映させる設定もあります。上の図のようにこの設定では透過させつつ、重なっている部分が通常の透過設定よりも強調されます。合成結果の色情報に透過の内容が反映されます。3描画2でアルファブレンドの設定が完了したら描画関数を呼び出して画像の描画を行います。これでアルファブレンドが実行された画像の描画が行われます。※SetRenderStateで行った設定は再度変更が行われるまで変わりません。設定を変更した際は注意して下さい。■テクスチャブレンディング●アルファブレンドの合成方法アルファブレンドによるアルファ値の合成は「画面に出力する色情報が確定している画像(テクセル)のアルファ値(SRC)」と「画面に描画するためにレンダリングターゲット(バッファ)に書き込まれた色情報のアルファ値(DEST)」で行われています。●テクスチャブレンディングテクスチャブレンディングとはアルファブレンドで使用する「画面に出力する色情報が確定している画像(テクセル)のアルファ値(SRC)」のアルファ値を決めるために頂点のアルファ値と画像のアルファ値を合成する方法のことです。テクスチャブレンドはテクスチャマッピングの際に行われており、アルファブレンドとは別ものなので気をつけてください。レンダリングターゲット:レンダリングターゲットとは画像などのピクセル情報が書き込まれるバッファのことです。DirectXの規定のレンダリングターゲットはバックバッファーと呼ばれています。●アルファブレンドとテクスチャブレンディングの処理の順番アルファブレンドとテクスチャブレンディングは両方ともピクセルシェーダーで処理が行われています。処理の順番でいうとテクスチャブレンディングが最初、アルファブレンディングが最後に行われます。●設定方法テクスチャブレンディングの設定はSetTextureStageStateで行います。合成の情報2つとその合成情報をどのように計算するかの設定をします。);●テクスチャマッピングとアルファブレンドの流れ探している内容が見つからなかったら以下のサイトにあるかもしれません。筆者が開発にかかわらせてもらったアプリのリンクです。