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を使用する方向で
すすめようとおもいます。
お手数をおかけしてしまいましたが
方針も決まり、大変助かりました。
ありがとうございました<(_ _)>
|