texture_set_stage 함수 설명
texture_set_stage
함수는 주어진 스테이지 "슬롯"에 사용할 텍스처를 설정하는 기능을 제공합니다. 사용 가능한 스테이지 "슬롯"의 수는 컴파일하는 플랫폼에 따라 다르며, Windows, Mac 및 Linux에서는 최대 8개까지 사용할 수 있지만, 저사양 Android 기기에서는 이 숫자가 2개로 줄어들 수 있습니다. 또한, 첫 번째 스테이지 슬롯(1)은 항상 GameMaker에 의해 자동으로 사용됩니다. 이 함수는 실행 중인 셰이더의 맥락에서만 작동합니다. 자세한 내용은 셰이더 섹션을 참조하세요.
문법
texture_set_stage(stage, tex);
인수 설명
인수 | 타입 | 설명 |
---|---|---|
stage | Shader Sampler Handle 또는 Real | 사용할 텍스처 "슬롯" |
tex | Texture | 사용할 텍스처 |
반환값
N/A
예제
아래 코드는 GlassShader
라는 셰이더 내에서 샘플러의 핸들을 가져오고, 주어진 스프라이트 텍스처를 해당 셰이더 상수로 설정하는 방법을 보여줍니다.
glassshader_bgsampler = shader_get_sampler_index(GlassShader, "s_BackgroundSampler");
spr = sprite_get_texture(sprite_index, 0);
shader_set(GlassShader);
texture_set_stage(glassshader_bgsampler, spr);
shader_reset();
활용 예제
1. 다중 텍스처 사용
여러 텍스처를 사용하여 다양한 효과를 적용할 수 있습니다.
// 첫 번째 텍스처 설정
texture_set_stage(shader_get_sampler_index(MyShader, "s_Texture1"), texture1);
// 두 번째 텍스처 설정
texture_set_stage(shader_get_sampler_index(MyShader, "s_Texture2"), texture2);
2. 셰이더 효과 적용
특정 셰이더 효과를 적용하기 위해 텍스처를 설정하는 예제입니다.
shader_set(MyShader);
texture_set_stage(shader_get_sampler_index(MyShader, "s_MainTexture"), mainTexture);
texture_set_stage(shader_get_sampler_index(MyShader, "s_OverlayTexture"), overlayTexture);
shader_reset();
3. 조건부 텍스처 변경
게임의 상태에 따라 텍스처를 변경하는 방법입니다.
if (isNight) {
texture_set_stage(shader_get_sampler_index(NightShader, "s_NightTexture"), nightTexture);
} else {
texture_set_stage(shader_get_sampler_index(DayShader, "s_DayTexture"), dayTexture);
}
4. 애니메이션 효과
애니메이션을 위해 텍스처를 주기적으로 변경하는 예제입니다.
texture_set_stage(shader_get_sampler_index(AnimationShader, "s_AnimationTexture"), animationTextures[currentFrame]);
currentFrame = (currentFrame + 1) % totalFrames;
이와 같은 방식으로 texture_set_stage
함수를 활용하여 다양한 그래픽 효과를 구현할 수 있습니다.