GPU 텍스처 Mip 필터 모드 가져오기
이 문서는 gpu_get_tex_mip_filter_ext
함수에 대해 설명합니다. 이 함수를 사용하면 특정 셰이더 샘플러에 대한 현재 mip 필터 모드를 가져올 수 있습니다. 이 함수는 shader_get_sampler_index()
함수로 반환된 셰이더 샘플러 핸들을 인자로 받아, 아래에 나열된 모드 값 상수 중 하나를 반환합니다.
문법
gpu_get_tex_mip_filter_ext(sampler_index);
인자 설명
인자 이름 | 타입 | 설명 |
---|---|---|
sampler_index | 셰이더 샘플러 핸들 | 가져올 셰이더 샘플러 |
반환값
- Mipmapping 필터 상수 (아래에 나열됨):
상수 | 설명 |
---|---|
tf_point | mipmap 레벨 간의 블렌딩이 비활성화되어 있어, 텍스처 전환이 눈에 띄게 보일 수 있지만 성능이 가장 좋습니다. |
tf_linear | mipmap 레벨 간의 블렌딩이 활성화되어 있어 텍스처 전환이 부드러워지지만 성능에 약간의 영향을 미칩니다. |
tf_anisotropic | 비등방 필터링이 활성화되어 있어 텍스처 전환 품질이 크게 개선되며, 다른 필터링 모드에서 보이는 흐림을 줄일 수 있지만 성능에 가장 큰 영향을 미칩니다. |
예제 코드
다음 코드는 주어진 셰이더 텍스처 샘플러에 대해 mip 필터 모드를 tf_point
로 설정합니다(이미 설정되어 있지 않은 경우).
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_mip_filter_ext(_sampleIndex) != tf_point) {
gpu_set_tex_mip_filter_ext(_sampleIndex, tf_point);
}
texture_set_stage(_sampleIndex, _spriteTex);
shader_reset();
활용 예제
- 텍스처 전환 최적화: 성능을 극대화하기 위해 mipmapping을 비활성화하고 텍스처 전환을 빠르게 처리할 수 있습니다.
gml gpu_set_tex_mip_filter_ext(_sampleIndex, tf_point);
- 부드러운 텍스처 전환: 텍스처의 부드러운 전환이 필요할 때는
tf_linear
를 사용하여 성능과 품질의 균형을 맞출 수 있습니다.gml gpu_set_tex_mip_filter_ext(_sampleIndex, tf_linear);
- 고품질 텍스처 렌더링: 비등방 필터링을 사용하여 텍스처 품질을 극대화할 수 있습니다. 그러나 성능 저하를 감수해야 합니다.
gml gpu_set_tex_mip_filter_ext(_sampleIndex, tf_anisotropic);
- 셰이더에 따라 다르게 설정: 다양한 셰이더에 대해 mip 필터 모드를 다르게 설정하여 각기 다른 시각적 효과를 얻을 수 있습니다.
gml var _sampleIndex1 = shader_get_sampler_index(shd_Effect1, "s_Texture"); var _sampleIndex2 = shader_get_sampler_index(shd_Effect2, "s_Texture"); gpu_set_tex_mip_filter_ext(_sampleIndex1, tf_linear); gpu_set_tex_mip_filter_ext(_sampleIndex2, tf_anisotropic);
이 문서에서는 gpu_get_tex_mip_filter_ext
함수의 사용법과 다양한 활용 예제를 설명하였습니다.