GPU 블렌드 모드 설정
이 문서는 GameMaker에서 픽셀을 그릴 때 사용하는 블렌드 모드에 대해 설명합니다. 블렌드 모드는 소스 색상(그릴 픽셀의 색상)과 대상 색상(그릴 픽셀에 이미 있는 색상)을 결합하여 새로운 색상을 결정하는 방식입니다.
블렌드 모드 이해하기
각 색상 구성 요소는 0과 1 사이의 부동 소수점 값으로 저장됩니다. 새로운 색상은 소스 색상의 각 구성 요소에 특정 계수를 곱하고, 대상 색상의 각 구성 요소에 다른 계수를 곱한 후, 결과를 구성 요소별로 더하여 계산됩니다.
색상 구성 요소
- 소스 색상 (Source Color): Rs, Gs, Bs, As
- 대상 색상 (Destination Color): Rd, Gd, Bd, Ad
다음 표는 사용 가능한 상수와 그 설명을 보여줍니다.
상수 이름 | 설명 |
---|---|
bm_src_color | 소스 색상 |
bm_inv_src_color | 소스 색상의 반전 |
bm_dest_color | 대상 색상 |
bm_inv_dest_color | 대상 색상의 반전 |
bm_src_alpha | 소스 알파 |
bm_inv_src_alpha | 소스 알파의 반전 |
bm_dest_alpha | 대상 알파 |
bm_inv_dest_alpha | 대상 알파의 반전 |
bm_one | 1 (전체 불투명) |
bm_zero | 0 (완전 투명) |
bm_src_alpha_sat | 소스 알파의 포화 |
중요! HTML5에서 WebGL이 활성화되지 않은 경우 다음 모드는 올바르게 표시되지 않습니다: - bm_src_color - bm_inv_src_color - bm_dest_color - bm_inv_dest_color - bm_src_alpha_sat
함수 사용법
이 함수는 두 개의 개별 인수를 제공하거나 gpu_get_blendmode_ext()
함수에서 반환된 배열을 제공할 수 있습니다. 배열을 제공할 경우 다음 두 요소를 포함해야 합니다:
[0]
= 소스 블렌드 모드 (기본값: bm_src_alpha)[1]
= 대상 블렌드 모드 (기본값: bm_inv_src_alpha)
구문
gpu_set_blendmode_ext(src, dest);
인수 설명
인수 이름 | 타입 | 설명 |
---|---|---|
src | 상수 | 소스 블렌드 모드 상수 |
dest | 상수 | 대상 블렌드 모드 상수 |
예제
gpu_set_blendmode_ext(bm_src_alpha, bm_one);
draw_circle_colour(100, 100, 50, c_white, c_black, 0);
gpu_set_blendmode(bm_normal);
위의 예제는 검은색을 투명하게 만들어 흰색이 강하게 보이는 '글로우' 효과를 생성합니다. 원이 그려진 후 블렌드 모드는 기본 모드로 재설정되어 추가적인 혼합이 적용되지 않도록 합니다.
활용 예제
- 투명한 이미지 오버레이
gml gpu_set_blendmode_ext(bm_src_alpha, bm_inv_src_alpha); draw_sprite(spr_overlay, 0, x, y); gpu_set_blendmode(bm_normal);
- 색상 혼합 효과
gml gpu_set_blendmode_ext(bm_src_color, bm_dest_color); draw_rectangle(50, 50, 150, 150, c_red); gpu_set_blendmode(bm_normal);
- 알파 블렌딩을 통한 그림자 효과
gml gpu_set_blendmode_ext(bm_src_alpha, bm_one); draw_circle(200, 200, 40, c_black); gpu_set_blendmode(bm_normal);
이 문서는 GameMaker에서 GPU 블렌드 모드를 설정하고 활용하는 방법에 대한 기본적인 이해를 제공합니다.