> あるいは「加算合成」で上書きするという方法でもいけるかもしれませんが、
> どちらにしろ「画像を二度以上上書きする」というスッキリしないやり方に思えます。
わりと一般的な方法だと思います。
どうしてもと言う場合はsoftya(ソフト屋)さんの仰る通りシェーダーを利用するのが手っ取り早いのではないでしょうか。
場合によっては DX_BLENDMODE_ALPHA_X4 か DX_BLENDMODE_ADD_X4 が使用できるかもしれません。
詳しくは以下のスレッドをご覧下さい。
> h t t p ://hpcgi2.nifty.com/natupaji/bbs/patio.cgi?mode=view&no=2142
//- 以下、テストコード -//
#include "DxLib.h"
int WINAPI WinMain( HINSTANCE, HINSTANCE, LPSTR, int )
{
ChangeWindowMode( TRUE );
SetWindowText( "DxLib:" DXLIB_VERSION_STR );
if ( DxLib_Init( ) == -1 ) return -1;
int white = GetColor( 255, 255, 255 );
int GraphHandle = LoadGraph( "test1.bmp" );
int bright = 0, step = 1;
SetDrawScreen( DX_SCREEN_BACK );
while ( ProcessMessage( ) == 0 && CheckHitKey( KEY_INPUT_ESCAPE ) == 0 ) {
bright += step;
if ( bright <= 0 || 255 <= bright ) step = -step;
ClearDrawScreen( );
DrawFormatString( 0, 0, white, "TEST" );
DrawGraph( 0, 0, GraphHandle, TRUE );
SetDrawBlendMode( DX_BLENDMODE_ALPHA_X4, 255 );
SetDrawBright( bright, bright, bright );
DrawGraph( 160, 0, GraphHandle, TRUE );
SetDrawBright( 255, 255, 255 );
SetDrawBlendMode( DX_BLENDMODE_NOBLEND, 255 );
ScreenFlip( );
}
DxLib_End( );
return 0;
}