色と色を掛け合わせて純「赤色」を作る方法
色と色を掛け合わせて純「赤色」を作る方法
SetDrawBlendModeを使う等して
二つの色を掛け合わせたら
赤色が作れるようにしたいのですがどうしたらいいでしょうか?
一色で赤色にする方法以外でお願いします。
ちなみに今、こんな感じにやってるんですがうまくいきません。
SetDrawBlendMode( DX_BLENDMODE_ALPHA, 128 );
DrawBox( 0, 340, 0, 420, GetColor( 128,0,0 ), TRUE );
DrawBox( 0, 340, 0, 420, GetColor( 128,0,0 ), TRUE );
SetDrawBlendMode( DX_BLENDMODE_NOBLEND, 0 );
二つの色を掛け合わせたら
赤色が作れるようにしたいのですがどうしたらいいでしょうか?
一色で赤色にする方法以外でお願いします。
ちなみに今、こんな感じにやってるんですがうまくいきません。
SetDrawBlendMode( DX_BLENDMODE_ALPHA, 128 );
DrawBox( 0, 340, 0, 420, GetColor( 128,0,0 ), TRUE );
DrawBox( 0, 340, 0, 420, GetColor( 128,0,0 ), TRUE );
SetDrawBlendMode( DX_BLENDMODE_NOBLEND, 0 );
Re:色と色を掛け合わせて純「赤色」を作る方法
掛け合わす、というのがどういう表現をしたいのか分かりませんが
提示処理で赤を表示したい場合、GetColor(255,0,0)になります。
提示処理で赤を表示したい場合、GetColor(255,0,0)になります。
Re:色と色を掛け合わせて純「赤色」を作る方法
一色で赤色にする方法は
確かにGetColor(255,0,0)で赤にする方法があるのですけど、
二色使って赤を作りたいのです。
色光の三原色的には
赤紫と黄色で赤になるので、
DrawBox( 0, 340, 0, 420, GetColor(255,255, 0), TRUE ); //黄色
DrawBox( 0, 340, 0, 420, GetColor(255, 0,255), TRUE ); //紫
を表示すると、
後の紫色のみ表示されます。
色を混ぜる方法はDXライブラリでは不可能なのでしょうか?
確かにGetColor(255,0,0)で赤にする方法があるのですけど、
二色使って赤を作りたいのです。
色光の三原色的には
赤紫と黄色で赤になるので、
DrawBox( 0, 340, 0, 420, GetColor(255,255, 0), TRUE ); //黄色
DrawBox( 0, 340, 0, 420, GetColor(255, 0,255), TRUE ); //紫
を表示すると、
後の紫色のみ表示されます。
色を混ぜる方法はDXライブラリでは不可能なのでしょうか?
Re:色と色を掛け合わせて純「赤色」を作る方法
[color=#d0b0c0" face="monospace]
>赤色が作れるようにしたいのですがどうしたらいいでしょうか?
>一色で赤色にする方法以外でお願いします。
[/color]
2つの異なる色を使って演算で赤を作りたい、ということですね。
[color=#d0d0ff" face="monospace]
DrawBox( 0, 0, 300, 300, GetColor( 255, 255, 0 ), TRUE );
SetDrawBlendMode( DX_BLENDMODE_SUB, 255 );
DrawBox( 150, 150, 450, 450, GetColor( 0, 255, 0 ), TRUE );
SetDrawBlendMode( DX_BLENDMODE_NOBLEND, 0 );
[/color]
とかどうですか?
>赤色が作れるようにしたいのですがどうしたらいいでしょうか?
>一色で赤色にする方法以外でお願いします。
[/color]
2つの異なる色を使って演算で赤を作りたい、ということですね。
[color=#d0d0ff" face="monospace]
DrawBox( 0, 0, 300, 300, GetColor( 255, 255, 0 ), TRUE );
SetDrawBlendMode( DX_BLENDMODE_SUB, 255 );
DrawBox( 150, 150, 450, 450, GetColor( 0, 255, 0 ), TRUE );
SetDrawBlendMode( DX_BLENDMODE_NOBLEND, 0 );
[/color]
とかどうですか?
Re:色と色を掛け合わせて純「赤色」を作る方法
加算合成を行えば(DX_BLENDMODE_ADD)可能かと思います。
加算合成は文字通り色成分を加算するので、書き込む色の成分を最大(255)にすれば純色に近づきやすくなります。
たとえば、SetDrawBlendMode 関数に DX_BLENDMODE_ADD, 255 を指定して、
赤色成分のみ 255 にした色で書き込めば、
他の色成分は変わらず、赤色成分は 255 になります。
(光の三原色による掛け合わせは加算合成で表現できます)
加算合成は文字通り色成分を加算するので、書き込む色の成分を最大(255)にすれば純色に近づきやすくなります。
たとえば、SetDrawBlendMode 関数に DX_BLENDMODE_ADD, 255 を指定して、
赤色成分のみ 255 にした色で書き込めば、
他の色成分は変わらず、赤色成分は 255 になります。
(光の三原色による掛け合わせは加算合成で表現できます)
Re:色と色を掛け合わせて純「赤色」を作る方法
[color=#d0b0c0" face="monospace]
>色光の三原色的には赤紫と黄色で赤になるので
[/color]
これがイメージに近いかもしれません。
[color=#d0d0ff" face="monospace]
DrawBox( 0, 0, 300, 300, GetColor( 228, 0, 128), TRUE );
SetDrawBlendMode( DX_BLENDMODE_MUL, 255 );
DrawBox( 150, 150, 450, 450, GetColor(255, 241, 0), TRUE );
SetDrawBlendMode( DX_BLENDMODE_NOBLEND, 0 );
[/color]
>色光の三原色的には赤紫と黄色で赤になるので
[/color]
これがイメージに近いかもしれません。
[color=#d0d0ff" face="monospace]
DrawBox( 0, 0, 300, 300, GetColor( 228, 0, 128), TRUE );
SetDrawBlendMode( DX_BLENDMODE_MUL, 255 );
DrawBox( 150, 150, 450, 450, GetColor(255, 241, 0), TRUE );
SetDrawBlendMode( DX_BLENDMODE_NOBLEND, 0 );
[/color]
Re:色と色を掛け合わせて純「赤色」を作る方法
この前知ったのですが、減算ブレンドはとても処理に時間がかかり、他のブレンドの10倍近い処理時間が必要なようです。
龍神録のファンタズムラストの光の演出が逆転するシーンで全て減算で計算したら、
スペックの良いPCでもゲームになりませんでした。
ですので、減算ブレンドをお使いの際はその辺お気をつけて・・。
龍神録のファンタズムラストの光の演出が逆転するシーンで全て減算で計算したら、
スペックの良いPCでもゲームになりませんでした。
ですので、減算ブレンドをお使いの際はその辺お気をつけて・・。
Re:色と色を掛け合わせて純「赤色」を作る方法
乗算ブレンドでいけました!
リファレンスのページでは
DX_BLENDMODE_MULA : 乗算ブレンド
と書いてあるのですが、使うときには
DX_BLENDMODE_MUL
と使い、「A」が抜けているのが気になりましたが
とりあえず
ねこさん、チルチルさん、Justyさん、御津凪さん、Dixq (管理人) さん
非常に素早く的確なアドバイスありがとうございました!
リファレンスのページでは
DX_BLENDMODE_MULA : 乗算ブレンド
と書いてあるのですが、使うときには
DX_BLENDMODE_MUL
と使い、「A」が抜けているのが気になりましたが
とりあえず
ねこさん、チルチルさん、Justyさん、御津凪さん、Dixq (管理人) さん
非常に素早く的確なアドバイスありがとうございました!
Re:色と色を掛け合わせて純「赤色」を作る方法
タイトルとは関係ないのですが
乗算ブレンドしたものをさらにαブレンドしたいのですがどうしたらいいでしょうか?
SetDrawBlendMode( DX_BLENDMODE_ALPHA, tesuto.brt );//カウントによって明るさをαブレンドする
SetDrawBlendMode( DX_BLENDMODE_MUL, 255 );
DrawBox( 500, 330, 580, 430, GetColor( 255,0,0 ), TRUE );
SetDrawBlendMode( DX_BLENDMODE_NOBLEND, 0 );//ブレンドモードをリセットする。
こんな感じにしてるんですけど、乗算ブレンドは大丈夫なのですがαブレンドは
うまくできてません。アドバイスお願いします
乗算ブレンドしたものをさらにαブレンドしたいのですがどうしたらいいでしょうか?
SetDrawBlendMode( DX_BLENDMODE_ALPHA, tesuto.brt );//カウントによって明るさをαブレンドする
SetDrawBlendMode( DX_BLENDMODE_MUL, 255 );
DrawBox( 500, 330, 580, 430, GetColor( 255,0,0 ), TRUE );
SetDrawBlendMode( DX_BLENDMODE_NOBLEND, 0 );//ブレンドモードをリセットする。
こんな感じにしてるんですけど、乗算ブレンドは大丈夫なのですがαブレンドは
うまくできてません。アドバイスお願いします
Re:色と色を掛け合わせて純「赤色」を作る方法
SetDrawBlendModeは1種しか設定できなかったはずです。
そのため、2回目の乗算設定で透明ブレンド設定は無効になっています。
255にしているパラメータをtesuto.brtにすればいいとは思いますが
乗算で指定したことがないので思ったように動くかは確認してみて下さい。
そのため、2回目の乗算設定で透明ブレンド設定は無効になっています。
255にしているパラメータをtesuto.brtにすればいいとは思いますが
乗算で指定したことがないので思ったように動くかは確認してみて下さい。
Re:色と色を掛け合わせて純「赤色」を作る方法
[color=#d0b0c0" face="monospace]
>やっぱり一種類しかブレンドできないんですね
[/color]
ちょっとやりたいことを正しく理解している自身はないのですが
[color=#d0d0ff" face="monospace]
SetDrawBlendMode(DX_BLENDMODE_MULA, tesuto.brt);
[/color]
ではだめですか?
>やっぱり一種類しかブレンドできないんですね
[/color]
ちょっとやりたいことを正しく理解している自身はないのですが
[color=#d0d0ff" face="monospace]
SetDrawBlendMode(DX_BLENDMODE_MULA, tesuto.brt);
[/color]
ではだめですか?