トップページ > 記事閲覧
MakeScreenで作られた画像を徐々に透明にしたい
名前:たろう 日時: 2021/12/13 11:02

いつもすみません、たろうです。 MakeScreenで作られた画像を徐々に透明にしたいと思っています。 毎フレームクリアしてDX_BLENDMODE_ALPHAの値を減らして描き直すなど いかにも無駄が多そうな処理は思い付くのですが、 出来れば直接画像のアルファ値を増やすような より効率的な方法がありましたら、教えていただけると助かります。 宜しくお願いいたします。
メンテ

Page: 1 |

Re: MakeScreenで作られた画像を徐々に透明にしたい ( No.1 )
名前:管理人 日時:2021/12/14 05:50

試してみないとわかりませんが、アルファ値を減らす( 透明度を増す )ブレンドモードを 新たに追加することで実現可能かもしれません ただ、それをする前にお尋ねしたいのですが、MakeScreen で作られた画像を DrawGraph などで 描画する際に SetDrawBlendMode( DX_BLENDMODE_ALPHA, 255 ); の第二引数の値を少しづつ減らしていく …では問題があるのでしょうか? ( 画像のアルファ値を減らして透明度を上げるのではなく、描画時の透明度設定で透明度を上げる ) 若しくは同じ大きさの画像を MakeScreen でもう一つ作成して、その画像に対して SetDrawBlendMode( DX_BLENDMODE_ALPHA, 255 ); の第2引数を 255 より低くして描画することで 透明度を上げることができます ( ただ、MakeScreen で作成した画像に対する半透明描画には『乗算済みアルファ』を使用する必要が ありますので、よろしければこちらの『乗算済みアルファ』に関する説明ページをご覧ください m(_ _)m <乗算済みアルファのすすめ> https://dxlib.xsrv.jp/lecture/PremulAlpha/PremulAlpha.html )
メンテ
Re: MakeScreenで作られた画像を徐々に透明にしたい ( No.2 )
名前:たろう 日時:2021/12/14 11:41

いつも、ありがとうございます 床にMakeScreenで作ったカラの画像を方眼状に敷き詰めて、そこに破壊されて落ちた部品などを貼り付けるようにしているのですが スクロールさせる場合は、端に行くほど薄くしないと無限にMakeScreenの画像を用意しないといけないので、端に近づくにつれ 薄くして、完全に消えたら反対側に移動するという仕組みで使用します。 >同じ大きさの画像を MakeScreen でもう一つ作成して、その画像に対して >SetDrawBlendMode( DX_BLENDMODE_ALPHA, 255 ); の第2引数を 255 より低くして描画する という方法だと倍のメモリを使用するので無駄が多いような気がして質問させていただきました。 その後、アルファ値を段階的に下げた複数の画像を用意して、DX_GRAPH_BLEND_RGBA_SELECT_MIX で順に合成する事でだんだん薄くしていく方法を思いつきました。 もし新たなブレンドモードを追加していただいたとしても、 速度的には、これと似たような処理になるのではないかと思うのですが、どうでしょうか? 宜しくお願いいたします<(_ _)>
メンテ
Re: MakeScreenで作られた画像を徐々に透明にしたい ( No.3 )
名前:管理人 日時:2021/12/14 22:52

> という方法だと倍のメモリを使用するので無駄が多いような気がして質問させていただきました。 なるほど、了解です 因みに、確かに余計にメモリを必要としますが、余程大きな画像か、若しくは数が多かったりしない限りは 最近の PC であれば問題ないかと思います > その後、アルファ値を段階的に下げた複数の画像を用意して、DX_GRAPH_BLEND_RGBA_SELECT_MIX > で順に合成する事でだんだん薄くしていく方法を思いつきました。 >  > もし新たなブレンドモードを追加していただいたとしても、 > 速度的には、これと似たような処理になるのではないかと思うのですが、どうでしょうか? はい、速度的にはほぼ同じか、もしかしたらたろうさんご提案の方法の方が速いかもしれません
メンテ
Re: MakeScreenで作られた画像を徐々に透明にしたい ( No.4 )
名前:たろう(解決) 日時:2021/12/14 23:51

いつもありがとうございます DX_GRAPH_BLEND_RGBA_SELECT_MIXを使用する方向で すすめようとおもいます。 お手数をおかけしてしまいましたが 方針も決まり、大変助かりました。 ありがとうございました<(_ _)>
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存