この半透明の処理で思った通りに出力するにはどうしたらいいでしょうか?

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
muramatsu

この半透明の処理で思った通りに出力するにはどうしたらいいでしょうか?

#1

投稿記事 by muramatsu » 9年前

円が描かれたpng画像を用意して円の周りが完全に透過されるように透明度を設定したファイルを描画しています。

//SRC,DESTブレンドモード設定
SetRenderState(D3DRENDERSTATE_SRCBLEND, D3DBLEND_SRCALPHA);
SetRenderState(D3DRENDERSTATE_DESTBLEND, D3DBLEND_INVSRCALPHA);
//色設定
SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_MODULATE);
//透明設定
SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_MODULATE);
//頂点色
RGBA(0.5f, 0.5f, 0.5f, 1.0f);

上記の設定で描画すると綺麗に画像の円の周りが透過されて
頂点色も画像に綺麗に反映されて少し暗く描画されます。

SetRenderState(D3DRENDERSTATE_SRCBLEND, D3DBLEND_SRCALPHA);
SetRenderState(D3DRENDERSTATE_DESTBLEND, D3DBLEND_SRCCOLOR);

ところがブレンドモードを上記に設定し合成方法を変えると
画像の円の周りが黒い半透明になって画像が綺麗に表示されません。
頂点色をRGBA(1.0f, 1.0f, 1.0f, 1.0f);とすれば画像が透過されますが頂点色を変えるとダメみたいです。
この上記のブレンド設定を保持したまま画像の円の周りを綺麗に透過させる方法はあるでしょうか?
(もし不可能なら上記のブレンド設定に似た結果のものでも大丈夫です)

SRC,DESTブレンドモード一覧
https://msdn.microsoft.com/ja-jp/library/cc324307.aspx
色、透明、設定 一覧
https://msdn.microsoft.com/ja-jp/library/cc324339.aspx

ISLe
記事: 2650
登録日時: 14年前
連絡を取る:

Re: この半透明の処理で思った通りに出力するにはどうしたらいいでしょうか?

#2

投稿記事 by ISLe » 9年前

DXライブラリの公式サイトで
『DXライブラリミニテクニック』
『乗算済みαのすすめ』
と辿った先にあるページに書かれていることを試してみてください。


閉鎖

“C言語何でも質問掲示板” へ戻る