gpu_get_tex_min_mip_ext 함수 설명
gpu_get_tex_min_mip_ext
함수는 특정 셰이더 샘플러에 대해 현재 사용 중인 최소 mipmap 레벨을 가져오는 기능을 제공합니다. 이 함수는 shader_get_sampler_index()
함수로 반환된 셰이더 샘플러의 핸들을 인수로 받아들입니다. 반환 값은 다음과 같습니다:
- 0: 전체 해상도
- 1: 첫 번째 mipmap
- 2: 두 번째 mipmap
- 등등...
문법
gpu_get_tex_min_mip_ext(sampler_index);
인수 설명
인수 이름 | 타입 | 설명 |
---|---|---|
sampler_index | Shader Sampler Handle | 가져올 셰이더 샘플러의 핸들 |
반환 값
- 실수형 (기본값: 0)
예제 코드
아래 코드는 주어진 셰이더 텍스처 샘플러의 최소 mipmap 레벨을 0으로 설정하는 예제입니다. 만약 이미 0으로 설정되어 있지 않다면, 이를 0으로 설정합니다.
var _sampleIndex = shader_get_sampler_index(shd_Glass, "s_Background");
var _spriteTex = sprite_get_texture(sprite_index, 0);
shader_set(shd_Glass);
if (gpu_get_tex_min_mip_ext(_sampleIndex) != 0) {
gpu_set_tex_min_mip_ext(_sampleIndex, 0);
}
texture_set_stage(_sampleIndex, _spriteTex);
shader_reset();
활용 예제
- 최소 mipmap 레벨 확인 및 설정
gml var _sampleIndex = shader_get_sampler_index(shd_Texture, "s_Texture"); if (gpu_get_tex_min_mip_ext(_sampleIndex) < 2) { gpu_set_tex_min_mip_ext(_sampleIndex, 2); }
- 다양한 텍스처에 대해 mipmap 레벨 조정
gml var _sampleIndex1 = shader_get_sampler_index(shd_Texture1, "s_Texture1"); var _sampleIndex2 = shader_get_sampler_index(shd_Texture2, "s_Texture2"); gpu_set_tex_min_mip_ext(_sampleIndex1, 1); gpu_set_tex_min_mip_ext(_sampleIndex2, 0);
- 셰이더 적용 후 mipmap 레벨 확인
gml shader_set(shd_Effect); var _currentMipLevel = gpu_get_tex_min_mip_ext(shader_get_sampler_index(shd_Effect, "s_EffectTexture")); if (_currentMipLevel != 0) { gpu_set_tex_min_mip_ext(shader_get_sampler_index(shd_Effect, "s_EffectTexture"), 0); } shader_reset();
- 다양한 해상도에 따른 mipmap 레벨 조정
gml var _resolution = get_screen_resolution(); if (_resolution > 1080) { gpu_set_tex_min_mip_ext(shader_get_sampler_index(shd_HighRes, "s_HighResTexture"), 0); } else { gpu_set_tex_min_mip_ext(shader_get_sampler_index(shd_LowRes, "s_LowResTexture"), 1); }
이 함수는 텍스처의 품질을 조정하고 성능을 최적화하는 데 유용합니다.