블렌드 모드 가이드
개요
게임메이커를 사용하고 있다면 블렌드 모드에 대해 무언가 들어본 적 있을 것입니다. 블렌드 모드는 어떤 물체가 어떻게 그려지는지를 변경해 흥미롭고 특정한 그래픽 효과를 주는 방법입니다. 그러나 블렌드 모드가 어떻게 작동하는지, 어떻게 사용하는지 알고 있습니까? 이 문서에서는 블렌드 모드의 비밀을 풀고 그것을 최대한 활용하는 방법을 설명합니다.
블렌드 모드는 기본적으로 게임에게 특정한 물체를 이미 그려진 다른 물체와 혼합하여 그리도록 지시합니다. 화면에 그리는 모든 것은 RGBA (Red, Green, Blue, Alpha) 네 가지 구성 요소로 이루어져 있으며, 기본적으로는 bm_normal 모드를 사용하여 그려집니다. 이 기본 블렌드 모드는 모든 픽셀을 색상과 알파 값이 본질적으로 변경되지 않은 상태로 그립니다.
블렌드 모드 사용 방법
게임메이커가 픽셀을 그릴 때, "소스 색상" (그릴 색상)과 "대상 색상" (이미 그려져 있는 색상)이 있습니다. 예를 들어, 노란색 픽셀 위에 분홍색 픽셀을 그릴 경우, 분홍색은 소스가 되고 노란색은 대상이 됩니다. 최종 색상은 블렌드 모드에 따라 계산됩니다.
최종 색상 계산
소스 색상과 대상 색상은 각각 0과 1 사이의 부동 소수점 값으로 구성된 RGBA 값을 가집니다. 최종 픽셀 색상은 소스와 대상을 설정된 공식에 따라 결합하여 계산됩니다.
최종 색상 = (소스 * 팩터) + (대상 * 팩터)
기본 방정식은 bm_add인데, 이는 두 값을 더한 후 최종 색상을 만듭니다.
기본 블렌드 모드
gpu_set_blendmode 함수로 블렌드 모드를 적용합니다. 예를 들어, 스프라이트를 그리기 전에 호출하고, 그린 후에는 리셋할 수 있습니다.
gpu_set_blendmode(bm_add);
draw_self();
gpu_set_blendmode(bm_normal);
이 코드는 인스턴스 스프라이트를 덧셈 블렌드 모드로 그립니다. 다양한 블렌드 모드의 예는 다음과 같습니다:
| 상수 | 설명 | 확장 블렌드 모드 | 블렌드 방정식 |
|---|---|---|---|
| bm_normal | 기본 블렌딩 | (bm_src_alpha, bm_inv_src_alpha) | bm_add |
| bm_add | 덧셈 블렌딩 | (bm_src_alpha, bm_one) | bm_add |
| bm_subtract | 빼기 블렌딩 | (bm_src_alpha, bm_one) | bm_subtract |
| bm_reverse_subtract | 역 빼기 블렌딩 | (bm_src_alpha, bm_one) | bm_reverse_subtract |
| bm_min | 최소 값 블렌딩 | (bm_one, bm_one) | bm_min |
| bm_max | 최대 값 블렌딩 | (bm_src_alpha, bm_inv_src_colour) | bm_eq_add |
고급 블렌드 모드
gpu_set_blendmode_ext 함수를 사용하면 소스와 대상 색상의 팩터를 따로 설정할 수 있습니다. 이렇게 하면 블렌딩 옵션이 훨씬 더 다양해집니다.
블렌드 계수 사용 예제
gpu_set_blendmode_ext(bm_dest_colour, bm_zero);
draw_self();
gpu_set_blendmode(bm_normal);
이 코드는 소스 색상에 대상 색상을 곱하고 대상 색상은 0으로 설정하여 소스 색상에 영향을 미칩니다.
자주 사용되는 블렌드 방정식
블렌드 방정식은 소스 색상과 대상 색상이 어떻게 혼합되는지 제어합니다. 기본적으로 두 값을 더하는 bm_eq_add입니다.
블렌드 방정식 사용 예제
gpu_set_blendequation(bm_eq_subtract);
이 방정식은 소스 색상의 값을 대상 색상에서 빼는 기능을 수행합니다.
결론
블렌드 모드를 사용하는 방법, 각 모드의 작동 방식 및 고급 기능을 이해함으로써 게임에서 훨씬 더 매력적인 비주얼 효과를 얻을 수 있습니다. 다양한 블렌드 모드를 실험해보면 독특하고 흥미로운 효과들을 창출할 수 있습니다.