DX라이브러리2014. 12. 23. 12:05

2.4 가산블렌딩


빛은 중첩될 수록 하얗게 된다. 빛의 삼원색을 모두 섞으면 흰색이 된다. 역으로 빛이 전혀 없다면 어둡게(검게)된다. 즉, 빛을 섞는 가산블렌딩을 거치게 되면 좀더 빛나는듯한 효과를 갖게 되며 겹칠수록 밝아지기 때문에 빛의 표현을 가능하게 한다. 다음 스크린샷의 레이져 같은 부분이 이 기능을 사용한 것이라고 보면 되겠다.



이는 한줄기의 무지게빛 선으로 보이겠지만 사실은 다음과 같은 이미지를 가산블렌딩한것이다.



그렇다면 다음 이미지를 통하여 가산블렌딩과 알파블렌딩의 차이를 알아보자.



가산블렌딩 역시 SetDrawBlendMode함수를 사용한다. 기능관련 요약은 2.3섹션에 다루었으니 해당 섹션을 참고한다. 단, 두번째 인수에서 블렌드 모드의 옵션에 차이가 있다. 이전 섹션에선 DX_BLENDMODE_ALPHA를 사용했으나 당 섹션에선 DX_BLENDMODE_ADD를 사용한다. 또한 두번째 인수는 0에서 가산하지 않는다 부터 255 모두 가산한다의 단계로 설정 가능하다.


사용예제

#include <DxLib.h>


int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){

        ChangeWindowMode(TRUE), DxLib_Init(), SetDrawScreen( DX_SCREEN_BACK );


        int Handle;

        Handle = LoadGraph( "image/bullet_00.png" );


        while( ScreenFlip()==0 && ProcessMessage()==0 && ClearDrawScreen()==0 ){


                SetDrawBlendMode( DX_BLENDMODE_ALPHA, 128 );   //알파블렌딩 128/255

                DrawGraph( 100, 200, Handle, TRUE );

                DrawGraph( 120, 200, Handle, TRUE );

                DrawGraph( 140, 200, Handle, TRUE );

                DrawGraph( 160, 200, Handle, TRUE );

                DrawGraph( 180, 200, Handle, TRUE );

                DrawGraph( 200, 200, Handle, TRUE );

                SetDrawBlendMode( DX_BLENDMODE_NOBLEND,  0 );


                SetDrawBlendMode( DX_BLENDMODE_ADD,  255 );             //가산블렌딩 255/255

                DrawGraph( 300, 200, Handle, TRUE );

                DrawGraph( 320, 200, Handle, TRUE );

                DrawGraph( 340, 200, Handle, TRUE );

                DrawGraph( 360, 200, Handle, TRUE );

                DrawGraph( 380, 200, Handle, TRUE );

                DrawGraph( 400, 200, Handle, TRUE );

                SetDrawBlendMode( DX_BLENDMODE_NOBLEND,  0 );


        }


        DxLib_End();

        return 0;


실행결과



왼쪽이 알파블렌딩이며 오른쪽이 가산블렌딩이다.

'DX라이브러리' 카테고리의 다른 글

2.6 랜덤값을 얻어보자  (0) 2014.12.23
2.5 텍스트 표현  (0) 2014.12.23
2.3 알파블렌딩  (0) 2014.12.23
2.2 이미지 회전, 확대축소  (0) 2014.12.22
2.1 이미지 처리 : 응용편  (0) 2014.12.22
Posted by 캡슐리어