본문 바로가기
여러 분석/[ 단어 정의 ]

텍스처 관련 : Mip(밉), 밉맵(Mipmap)에 대하여

by 류 진 2023. 10. 23.
728x90

밉맵 : Mipmap

3D 그래픽스에서 텍스처를 씌우는 과정에서 렌더링 속도를 향상시키기 위한 목적으로, 기본 텍스처와 이를 연속적으로 미리 축소시킨 텍스처들로 이루어진 비트맵 이미지의 집합이다. 밉맵스(Mipmaps, MIP Maps)라고도 한다.

MIP은 라틴어로 multum in parvo(적은 공간에 더 많이)의 머릿글자를 딴 것이다.

 

밉맵은 LOD(Load of Detail)에 의해서 결정되는데, 가까이 갈수록 비율이 큰 텍스처를 세팅하는 방식이다.

스케일링을 해야 하기 때문에 텍스처의 크기는 2의 배수로 세팅을 해야 한다. (2×2), ... , (256×256) (512×512) (1024×1024) 등등등


밉, 밉맵의 동작 원리

밉은 밉맵이라는 집합에 존재한다.

밉맵에는 점진적으로 더 작고 더 낮은 해상도 버전의 단일 텍스처가 포함된다.

출처 : Unity Documentation

 

밉맵 집합의 각각의 비트맵 이미지는 기본 텍스처를 일정한 수준만큼 '미리' 축소한 것이다.

512×512 텍스처가 있다면 내부에서는 (256×256, 128×128, 64×64, ... , 2×2)의 2의 거듭제곱의 텍스처를 만들어서 메모리에 올려놓는다.

 

텍스처가 원래 크기 이상으로 보일 경우 기본 텍스처를 그대로 쓸 수 있지만, 원래보다 멀거나 작게 보일 경우 축소된 텍스처를 렌더링에 대신(보간 과정을 거쳐서) 사용한다.


밉맵을 왜 쓰는가?

커다란 원본 텍스처만 사용한다면 카메라에서 멀리 있는 텍스처의 경우, 텍스처의 정보를 띄엄띄엄 읽게 되어서 보기에도 좋지 않고, 메모리 캐시의 효율도 급격하게 떨어진다.

 

따라서, 텍스처 단계에서 거리가 멀어지는 양에 따라, 밉맵에 저장된 밉들을 적용시켜, 렌더링 과정에서 일어날 수 있는 손실과 실시간 렌더링의 부하를 줄일 수 있다.

 

이렇게 사용하면 렌더링에 사용되는 텍스처 픽셀(텍셀)의 수가 훨씬 줄어들기 때문에 렌더링 속도를 높일 수 있다.

 

또한, 보간을 통해 거리가 멀어질수록 더 작은 버전의 밉을 사용하기 때문에 텍스처 픽셀(텍셀)의 수를 줄이므로 자동으로 안티에일리어싱 처리가 되어있다고 볼 수 있다.

 

따라서 텍스처 단계에서 다운스케일링을 통한 안티에일리어싱을 해줄 필요가 있는데, 이것을 각 프래그먼트마다 하는 대신에 미리 해두는 것이 밉매핑, 그 텍스처 모음이 밉맵이다.

안티에일리어싱에 대한 정보는 여기를 눌러 참조.

 

좌측은 일그러짐 현상이 보이는 반면, 밉맵이 적용된 부분은 일그러짐 현상이 줄어든 것을 볼 수 있다.


밉맵을 아주 간단하게 설명하자면

임포트시킨 텍스처를 내부에서 미리 축소된 데이터를 가지게 하고,
디테일을 표현해야 하는 거리(LOD, Level Of Detail)에 따라서 텍스처를 세팅해 주기 위한 정보
LOD : 카메라와 메쉬간의 거리에 따라서 메쉬의 정밀도를 정하는 기법.

카메라와 메쉬 거리가 가까울수록 더 높은 텍스처를 보여주고
카메라와의 거리가 멀어질수록 더 낮은 텍스처를 보여준다.

로 설명할 수 있겟다.