gpu_set_tex_min_mip_ext 함수 설명
gpu_set_tex_min_mip_ext
함수는 특정 셰이더 샘플러에 대해 현재 사용되는 최소 미ipmap 레벨을 설정하는 기능을 제공합니다. 이 함수를 사용하면 텍스처의 해상도를 조정하여 성능을 최적화할 수 있습니다.
함수 구문
gpu_set_tex_min_mip_ext(sampler_index, minmip);
인수 설명
인수 이름 | 타입 | 설명 |
---|---|---|
sampler_index | Shader Sampler Handle | 셰이더 샘플러의 핸들 (shader_get_sampler_index() 함수로 반환됨) |
minmip | Real | 사용할 최소 미ipmap 레벨 (0은 전체 해상도, 1은 첫 번째 미ipmap, 2는 두 번째 미ipmap 등) |
반환값
- N/A (반환값 없음)
활용 예제
아래 코드는 특정 셰이더 텍스처 샘플러에 대해 최소 미ipmap 레벨을 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();
추가 활용 예제
- 다양한 미ipmap 레벨 설정하기
gml var _sampleIndex = shader_get_sampler_index(shd_Texture, "s_Texture"); gpu_set_tex_min_mip_ext(_sampleIndex, 1); // 첫 번째 미ipmap 사용
- 조건에 따라 미ipmap 레벨 변경하기
gml var _sampleIndex = shader_get_sampler_index(shd_Texture, "s_Texture"); if (some_condition) { gpu_set_tex_min_mip_ext(_sampleIndex, 2); // 두 번째 미ipmap 사용 } else { gpu_set_tex_min_mip_ext(_sampleIndex, 0); // 전체 해상도 사용 }
- 셰이더와 텍스처 설정하기
gml var _sampleIndex = shader_get_sampler_index(shd_Effect, "s_Effect"); var _texture = sprite_get_texture(sprite_index, 1); shader_set(shd_Effect); gpu_set_tex_min_mip_ext(_sampleIndex, 1); // 첫 번째 미ipmap 사용 texture_set_stage(_sampleIndex, _texture); shader_reset();
- 미ipmap 레벨을 동적으로 조정하기
gml var _sampleIndex = shader_get_sampler_index(shd_Dynamic, "s_Dynamic"); var _currentMip = gpu_get_tex_min_mip_ext(_sampleIndex); gpu_set_tex_min_mip_ext(_sampleIndex, _currentMip + 1); // 현재 미ipmap 레벨 증가
이러한 예제들은 gpu_set_tex_min_mip_ext
함수를 활용하여 텍스처의 해상도를 조정하고 성능을 최적화하는 방법을 보여줍니다.