GPU 텍스처 필터링 설정
gpu_set_texfilter_ext
함수는 GameMaker에서 셰이더를 사용할 때 단일 샘플러 "슬롯"에 대한 선형 보간을 설정하는 데 사용됩니다. 이 기능이 활성화되면(참) 샘플러 텍스처가 부드럽게 처리되며, 비활성화되면(거짓) 이미지는 가장 가까운 픽셀을 기준으로 그려집니다. 기본값은 게임의 글로벌 게임 옵션에 의해 설정되거나 gpu_set_texfilter()
함수를 사용하여 설정됩니다.
주의: 이 설정은gpu_set_texfilter()
함수를 호출할 때 설정된 값에 의해 덮어씌워집니다.
주의: HTML5 타겟에서는 이 함수가 WebGL이 활성화된 경우에만 작동합니다.
문법
gpu_set_texfilter_ext(sampler_id, enable);
인수 설명
인수 이름 | 타입 | 설명 |
---|---|---|
sampler_id | 정수 | 셰이더에서의 샘플러 ID |
enable | 불리언 | 텍스처 필터링 활성화 또는 비활성화 (참/거짓) |
반환 값
- 없음
예제 코드
var s_tex = shader_get_sampler_index(shader_glass, "s_NoiseSampler");
if (gpu_get_texfilter_ext(s_tex)) {
gpu_set_texfilter_ext(s_tex, false);
} else {
gpu_set_texfilter_ext(s_tex, true);
}
위 코드는 특정 샘플러 ID(로컬 변수에 저장된)를 위한 텍스처 필터링이 켜져 있는지 확인하고, 그에 따라 상태를 전환합니다.
활용 예제
예제 1: 텍스처 필터링 상태 확인 및 전환
var s_tex = shader_get_sampler_index(shader_effect, "s_TextureSampler");
if (!gpu_get_texfilter_ext(s_tex)) {
gpu_set_texfilter_ext(s_tex, true); // 필터링 활성화
}
예제 2: 여러 샘플러에 대해 필터링 설정
var s_tex1 = shader_get_sampler_index(shader_effect, "s_Texture1");
var s_tex2 = shader_get_sampler_index(shader_effect, "s_Texture2");
gpu_set_texfilter_ext(s_tex1, true); // 첫 번째 텍스처 필터링 활성화
gpu_set_texfilter_ext(s_tex2, false); // 두 번째 텍스처 필터링 비활성화
예제 3: 조건에 따른 필터링 설정
if (some_condition) {
gpu_set_texfilter_ext(s_tex, true); // 조건이 참일 때 필터링 활성화
} else {
gpu_set_texfilter_ext(s_tex, false); // 조건이 거짓일 때 필터링 비활성화
}
예제 4: 게임 옵션에 따라 필터링 설정
if (global.texture_filtering_enabled) {
gpu_set_texfilter_ext(s_tex, true); // 글로벌 옵션에 따라 필터링 활성화
} else {
gpu_set_texfilter_ext(s_tex, false); // 비활성화
}