Re: DX_BLENDMODE_MULAについて ( No.1 ) |
- 名前:管理人 日時:2022/07/02 00:09
> DX_BLENDMODE_MULAを試したいのですが、PMAバージョンが無いようです。
> これはアルファ値をそもそも使わないので不要ということでしょうか?
はい、『乗算済みアルファ』は画像のアルファ値の部分の透明度処理に関する仕組みなのですが、
乗算ブレンドは元々画像のアルファ値は関係のないブレンドモードなので、
『乗算済みアルファ用の乗算ブレンド』というものも存在しません
|
Re: DX_BLENDMODE_MULAについて ( No.2 ) |
- 名前:たろう(解決) 日時:2022/07/02 00:35
いつもありがとうございます
乗算済みアルファ関連は未だにわけが分からず使っていますので
しょうもない質問だったかもわかりませんが、
本当に助かりました。
ありがとうございましたm(_ _)m
|
Re: DX_BLENDMODE_MULAについて ( No.3 ) |
- 名前:たろう 日時:2022/07/03 19:20
解決をつけておいてすみません、
似たような話題なので・・・追加で質問させてください
DX_BLENDMODE_HALF_ADDもPMAバージョンが無いようですが、
これも同様でしょうか?
もしかすると、
DX_BLENDMODE_PMA_ALPHAとDX_BLENDMODE_PMA_ADDで
別々にブレンドするのとコスト的に同じだから不要
みたいな事を想像したのですがどうでしょう。
よろしくお願いいたしますm(_ _)m
|
Re: DX_BLENDMODE_MULAについて ( No.4 ) |
- 名前:管理人 日時:2022/07/04 02:33
> DX_BLENDMODE_HALF_ADDもPMAバージョンが無いようですが、
> これも同様でしょうか?
計算式を確認した限りではPMAバージョンも実装できそうですが、
仮に実装したとしても乗算済みアルファのメリットである
『不透明な部分と透明な部分の境界部分が綺麗に描画できる』や
『アルファチャンネル付きの描画可能画像へ描画を行った際にアルファ値の効果を正しく維持できる』
が無いもの( 乗算済みアルファ用ではない通常の画像を DX_BLENDMODE_HALF_ADD で描画した場合と同じもの )
となってしまいそうなので、誤解( 乗算済みアルファのメリットがあるものとの誤解 )を
避けるためにも実装はしないでおこうかと思います (・・;
> もしかすると、
> DX_BLENDMODE_PMA_ALPHAとDX_BLENDMODE_PMA_ADDで
> 別々にブレンドするのとコスト的に同じだから不要
> みたいな事を想像したのですがどうでしょう。
いえ、仮に DX_BLENDMODE_PMA_HALF_ADD を実装した場合は、DX_BLENDMODE_PMA_ALPHA と
DX_BLENDMODE_PMA_ADD で別々にブレンドして似た効果を得る場合よりも描画負荷は軽くなります
|
Re: DX_BLENDMODE_MULAについて ( No.5 ) |
- 名前:たろう 日時:2022/07/04 03:50
DX_BLENDMODE_HALF_ADD の件、事情のある旨お知らせいただきありがとうございます。
実装なしで大丈夫ですm(_ _)m
すみません、その上で追加で質問させていただきたいのですが
もし「透明部分はあるものの、半透明部分のない画像(アルファ値が0か255しかない)」
しか使わず、また、全ての拡大縮小はニアレストネイバーで行う場合は、
全てのブレンドモードはPMA有りも無しも結果は同じになる
という認識であっていますでしょうか?
(そうであればDX_BLENDMODE_HALF_ADDも用途を限って使えるかなと…)
またその場合、PMAなしを使ったほうが処理は軽くなるでしょうか?
次々とすみません、よろしくお願いいたしますm(_ _)m
|
Re: DX_BLENDMODE_MULAについて ( No.6 ) |
- 名前:管理人 日時:2022/07/05 02:07
> もし「透明部分はあるものの、半透明部分のない画像(アルファ値が0か255しかない)」
> しか使わず、また、全ての拡大縮小はニアレストネイバーで行う場合は、
> 全てのブレンドモードはPMA有りも無しも結果は同じになる
> という認識であっていますでしょうか?
> (そうであればDX_BLENDMODE_HALF_ADDも用途を限って使えるかなと…)
そちらの条件に加えて、SetDrawBlendMode を使用しての半透明描画も行わないのでしたら
PMA有りと無しで描画結果は全く同じになります
もし SetDrawBlendMode の第二引数で 0 と 255 以外の値を使用される場合は PMA有りと無しでは
描画結果が異なります
> またその場合、PMAなしを使ったほうが処理は軽くなるでしょうか?
いえ、PMA有りの方が処理が軽いです( PMA有りの方は R・G・Bの値にAの値を乗算する処理が省けるので… )
|
Re: DX_BLENDMODE_MULAについて ( No.7 ) |
- 名前:たろう 日時:2022/07/05 09:56
ありがとうございます、勉強になります
第二引数を半透明にすると結果が変わってしまうんですね。
全体的に一律で、変わるからでしょうか、気づきませんでしたm(_ _)m
SetDrawBlendModeの第二引数は半透明をつかう必要があるので
しつこく質問をすみません、
もし上記の条件に加えて、
描画対象となる方の画像に透明部分がなく(アルファ値255のみ)
そこに1〜254の半透明部分を含む画像を重ねて、
なおかつSetDrawBlendMode の第二引数も1〜254を使用する
とすると、結果は変わるでしょうか?
よろしくお願いいたいますm(_ _)m
|
Re: DX_BLENDMODE_MULAについて ( No.8 ) |
- 名前:管理人 日時:2022/07/06 23:17
> もし上記の条件に加えて、
すみません、『上記の条件』とは何でしょうか?
( 最初『「透明部分はあるものの、半透明部分のない画像(アルファ値が0か255しかない)」
しか使わず、また、全ての拡大縮小はニアレストネイバーで行う場合』かと思ったのですが、
『そこに1〜254の半透明部分を含む画像を重ねて』とあるので違うようなので… )
|
Re: DX_BLENDMODE_MULAについて ( No.9 ) |
- 名前:たろう(解決) 日時:2022/07/06 23:38
すみません、ちょっと変でした・・・
描画先となる方の画像に透明部分がなければ
上に被せる画像はどんなものであれ問題ないかも・・・と考えたのですが
今、よく考えたらそんな事は無いと気付きました。
もっと早く気付けばよかったのですが、
お手数をおかけしてしまいました
ありがとうございましたm(_ _)m
|