Shader Sampler Index 가져오기
이 문서는 shader_get_sampler_index 함수에 대해 설명합니다. 이 함수는 셰이더의 샘플러 핸들을 가져오는 데 사용됩니다. 셰이더 내에서 샘플러의 값을 직접 변경할 수 없기 때문에, 셰이더를 호출하기 전에 이 함수를 사용하여 샘플러 핸들을 설정해야 합니다.
함수 설명
- 함수 이름:
shader_get_sampler_index - 용도: 셰이더 샘플러의 핸들을 가져오기
- 구문:
shader_get_sampler_index(shader, uniform);
매개변수
| 매개변수 | 타입 | 설명 |
|---|---|---|
| shader | Shader | 사용할 셰이더의 핸들 |
| uniform | String | 핸들을 가져올 셰이더 샘플러의 이름 (문자열) |
반환값
- Shader Sampler Handle: 요청한 샘플러의 핸들
예제 코드
다음은 shader_get_sampler_index 함수를 사용하는 예제입니다.
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();
위의 코드는 "GlassShader"라는 셰이더 내의 샘플러 핸들을 가져오고, 해당 샘플러를 주어진 스프라이트 텍스처로 설정합니다.
활용 예제
- 다양한 텍스처 적용
gml texture1 = sprite_get_texture(sprite_index1, 0); texture2 = sprite_get_texture(sprite_index2, 0); shader_set(MyShader); texture_set_stage(shader_get_sampler_index(MyShader, "s_Texture1"), texture1); texture_set_stage(shader_get_sampler_index(MyShader, "s_Texture2"), texture2); shader_reset(); - 셰이더 효과 전환
gml if (condition) { shader_set(EffectShader); texture_set_stage(shader_get_sampler_index(EffectShader, "s_EffectTexture"), effectTexture); } else { shader_reset(); } - 다중 샘플러 사용
gml shader_set(MultiSamplerShader); for (var i = 0; i < numTextures; i++) { texture_set_stage(shader_get_sampler_index(MultiSamplerShader, "s_Texture" + string(i)), textures[i]); } shader_reset();
이러한 예제들은 shader_get_sampler_index 함수를 활용하여 다양한 셰이더 효과를 적용하는 방법을 보여줍니다.