Life style/TIL

렌더링 속도의 향상을 위한 MIP maps: 밉맵

jaewpark 2024. 5. 13. 10:33

3차원 그래픽스 텍스처 매핑 분야에서 렌더링 속도를 향상시키기 위한 목적으로 기본 텍스처와 이를 연속적으로 미리 축소시킨 텍스처들로 이루어진 비트맵 이미지의 집합이다. 

 

라인터 multium in parvo의 약자로, "많은 것을 작은 공간에 넣음"이라는 뜻이다.

32비트 시스템에서 각각의 색이 8비트값으로 이뤄지면 1/4공간이 낭비하게 된다. 미사용 공간을 활용하기 위해 이미지의 1/4 크기의 복사본을 넣으면서 반복하여 넣게 된다.

 

텍스처 크기가 256x256 픽셀이라고 할 때, 만들어지는 이미지는 128x128, 64x64, 32x32 ... 여덟 개의 이미지로 구성된다.

이 텍스처를 40x40 크기로 렌더링할 경우 64x64 크기와 32x32 크기 밉맵 이미지를 적절한 방법으로 보간해서 최종 이미지를 얻을 수 있다.

 

출철: Unity documentation

 

밉맵 집합을 저장하는 데 필요한 용량은 원래 텍스처의 용량의 1/4 + 1/16 + 1/256 ... = 1/3이다.

큰 용량을 필요로 하지 않는다는 것이 이 방법의 장점이지만, 많은 경우 확대 및 축소가 방향과 관계 없이 이루어지지 않고 한 방향이 다른 방향보다 더 많이 확대 및 축소가 된다. 이런 경우 적절한 해상도의 이미지를 사용하게 되는데, 해상도가 높다면 캐시 효율이 떨어지고 안티 앨리어싱이 한 방향으로 많이 일어나지만 최종 이미지의 품질이 높으며, 해상도가 낮다면 캐시 효율은 높아지지만 이미지가 너무 흐릿해져서 구별하기 힘들수 있다.

 

> 안티앨리어싱: 고해상도 이지미를 낮은 해상도로 표현할 때 왜곡 아티팩트를 최소화하는 기술

 

밉맵은 GPU가 전체 해상도보다 낮은 해상도로 텍스처를 렌더링하는 상황에서 작업 속도를 높이고 아티팩트를 줄일 수 있다.

원본 텍스처의 캐시되고 다운 샘플링된 버전이기에 떄로는 유용하지 않은 경우도 존재한다. 디스크와 메모리에서 텍스처의 33% 증가시키기 때문이다. 또한, 텍스처가 전체 해상도로만 렌더링되는 경우에 이점이 없게 된다.