Mipmapping (미파맵핑)
이 문서에서는 미파맵핑과 관련된 모든 함수에 대해 설명합니다. 미파맵핑 기능을 사용하기 전에, Texture Group Editor에서 필요한 텍스처 페이지에 대해 미파맵핑을 활성화해야 하며, 런타임에서 gpu_set_tex_mip_enable
을 사용하여 미파맵핑을 활성화해야 합니다.
미파맵핑이란?
미파맵핑은 적절한 거리 수준에서 그리기 위해 낮은 해상도의 텍스처를 생성하는 기술입니다. 여러 개의 미파맵 "레벨"이 존재하며, 레벨 0은 원본 텍스처, 레벨 1은 레벨 0의 절반 크기, 레벨 2는 레벨 1의 절반 크기입니다. 이처럼 각 미파맵 레벨은 이전 미파맵 레벨의 2x2 블록에서 샘플링하여 생성됩니다. 결과적으로 텍스처 크기는 절반으로 줄어듭니다.
미파맵핑은 텍스처 페이지에서 여러 스프라이트가 가까이 있을 경우 블리딩 문제를 일으킬 수 있습니다. 이때 Texture Group의 border size 옵션이 중요해지며, 이는 텍스처 페이지의 각 스프라이트 사이에 주어진 크기의 간격을 생성합니다. 예를 들어, 8의 경계 크기를 설정하면 미파맵이 16번째 레벨까지 확대될 때 블리딩이 발생하지 않습니다.
아래 이미지는 미파맵핑이 프로젝트 렌더링에 미치는 차이를 보여줍니다:

함수 참조
미파맵핑을 프로젝트나 텍스처 페이지에 활성화한 후, 다음 함수를 사용하여 프로젝트 실행 시 외관을 변경할 수 있는 값을 가져오거나 설정할 수 있습니다.
함수 | 설명 |
---|---|
gpu_get_tex_mip_filter |
미파맵 필터를 가져옵니다. |
gpu_get_tex_mip_bias |
미파맵 바이어스를 가져옵니다. |
gpu_get_tex_min_mip |
최소 미파맵 레벨을 가져옵니다. |
gpu_get_tex_max_mip |
최대 미파맵 레벨을 가져옵니다. |
gpu_get_tex_max_aniso |
최대 비등방성 필터링을 가져옵니다. |
gpu_get_tex_mip_enable |
미파맵핑 활성화 상태를 가져옵니다. |
gpu_set_tex_mip_filter |
미파맵 필터를 설정합니다. |
gpu_set_tex_mip_bias |
미파맵 바이어스를 설정합니다. |
gpu_set_tex_min_mip |
최소 미파맵 레벨을 설정합니다. |
gpu_set_tex_max_mip |
최대 미파맵 레벨을 설정합니다. |
gpu_set_tex_max_aniso |
최대 비등방성 필터링을 설정합니다. |
gpu_set_tex_mip_enable |
미파맵핑 활성화 상태를 설정합니다. |
활용 예제
다음은 미파맵핑을 활용하는 몇 가지 예제입니다:
// 미파맵핑 활성화
gpu_set_tex_mip_enable(true);
// 미파맵 필터 설정
gpu_set_tex_mip_filter(1);
// 최소 미파맵 레벨 설정
gpu_set_tex_min_mip(0);
// 최대 미파맵 레벨 설정
gpu_set_tex_max_mip(4);
// 비등방성 필터링 설정
gpu_set_tex_max_aniso(16);
// 현재 미파맵 필터 가져오기
var mip_filter = gpu_get_tex_mip_filter();
// 현재 미파맵 바이어스 가져오기
var mip_bias = gpu_get_tex_mip_bias();
// 미파맵핑 비활성화
gpu_set_tex_mip_enable(false);
이와 같이 미파맵핑을 활용하여 텍스처의 품질을 조절하고, 성능을 최적화할 수 있습니다.