GPU 블렌드 방정식 설정
GameMaker에서 픽셀을 그릴 때, 소스 색상(그릴 픽셀의 색상)과 대상 색상(그릴 픽셀에 이미 있는 색상)이 필요합니다. 이 두 색상은 최종 픽셀 값을 생성하기 위해 처리되어야 합니다. 소스와 대상 픽셀이 설정된 계수로 곱해진 후, 이 두 픽셀은 최종 픽셀 값을 생성하기 위해 혼합되어야 합니다. 기본적으로 이들은 더해지며, 최종 픽셀은 다음과 같이 형성됩니다:
(소스 * 계수) + (대상 * 계수)
이 함수는 소스와 대상의 최종 픽셀 계산 방식을 변경할 수 있으며, 다음 방정식 중에서 선택할 수 있습니다. 색상 구성 요소(RGB)와 알파 구성 요소를 별도로 설정하려면 gpu_set_blendequation_sepalpha
를 호출할 수 있습니다.
블렌드 모드를 최대한 활용하고, 이들이 어떻게 작동하며 최종 이미지에 미치는 영향을 이해하기 위해 다음 가이드를 읽는 것을 권장합니다: 블렌드 모드 사용 가이드.
문법
gpu_set_blendequation(equation);
인수 설명
인수 | 유형 | 설명 |
---|---|---|
equation | 블렌드 모드 방정식 상수 | 블렌드 모드 방정식 (위의 상수 참조) |
반환값
N/A
예제
gpu_set_blendmode_ext(bm_src_alpha, bm_one);
gpu_set_blendequation(bm_subtract);
draw_circle(100, 100, 50, 0);
gpu_set_blendmode(bm_normal);
위의 예제는 블렌드 모드 계수를 변경한 후 방정식을 설정하고, 원을 그린 다음 블렌드 모드 계수와 방정식을 초기화합니다(정상 블렌드 모드로 전환하여 이후 그려지는 것에 영향을 주지 않도록 함).
여기서 블렌딩은 다음과 같이 작동합니다: 소스 픽셀은 소스 알파와 곱해지고, 대상 픽셀은 1과 곱해져 원래 상태를 유지합니다. 그런 다음 소스를 대상에서 빼게 됩니다.
활용 예제
예제 1: 기본 블렌드 모드 사용
gpu_set_blendmode(bm_normal);
draw_rectangle(50, 50, 150, 150, c_red);
예제 2: 소스 알파 블렌드 모드
gpu_set_blendmode(bm_src_alpha);
draw_circle(200, 200, 40, c_blue);
예제 3: 색상 혼합
gpu_set_blendmode_ext(bm_src_alpha, bm_one_minus_src_alpha);
draw_sprite(sprite_index, 0, x, y);
예제 4: 알파 혼합 방정식 설정
gpu_set_blendequation(bm_add);
draw_circle(300, 300, 50, c_green);
예제 5: 복잡한 블렌드 효과
gpu_set_blendmode_ext(bm_one, bm_one_minus_src_alpha);
gpu_set_blendequation(bm_subtract);
draw_rectangle(100, 100, 200, 200, c_yellow);
이러한 예제들은 다양한 블렌드 모드와 방정식을 사용하여 그래픽을 그리는 방법을 보여줍니다.