본문 바로가기

유니티 최적화

[유니티 최적화] 앱 다운로드 크기 최적화 #8 ( Texture 최적화 2 )

  • Generate Mip Maps 옵션은 GPU에서 텍스쳐를 사용할때 Filtering을 하는 과정이 있는데 이때 미리 생성된 이미지를 사용해 성능을 높이는 방식이다. Mip Map은 같은 이미지를 1/2, 1/4, 1/8과 같은 작은 사이즈를 별도로 생성하게 되고 각 단계별로 Mip Map Level 이라고 표현한다.( Mip Map Level 1, Mip Map Level2 ..)
    Mip Maps이 생성된 텍스쳐는 필터링 성능이 향상 되게 된다. 

텍스쳐 임포트 설정창
Mip Map 예시
유니티에서 Mip Map을 생성 후 확인

 

  • 만약 필터 모드( Bilinear 로 설정된 화면 )를 No Filter로 설정한다면 Mip Maps 을 생성할 필요가 없다.
    Mip Maps을 생성하면 메모리가 약 33%늘게 된다.

  • 필터링은 텍스쳐가 텍스쳐의 해상도보다 화면에 작게 보일때 일어나는데,
    예를들어 텍스쳐 해상도는 512 x 512 인데 화면상에
    256x256 크기로 표시된다면 각 픽셀이 어떤색을 표시할지 결정하는 과정에서
    자연스럽게 표현 하기 위해서는 인접한 픽셀의 색을 섞어서( 보간해서 ) 보여주어야 한다.

    필터링(보간) 하지 않는다면 후보 픽셀의 색중에 가장 근접한 한개의 색으로 최종 픽셀의 색이 결정되게 되는데
    화면상에 이미지 사이즈가 변경됨에 따라서 매우 지글 거리는 현상을 확인 할 수 있다.
     
    만약 게임에 따라서 텍스쳐 보간 퀄리티를 더 높이고 싶다면 Trilinear 옵션 사용( Mip Map이 바뀌는 구간까지 보간 )
    기울임을 고려해서 퀄리티를 높이고 싶다면 Aniso Level을 통해서 설정 할 수 있다.

 

Filtering 예시

  • 화면전환이 많아서 크게 보일수도 있고 작게 보일 수도 있는 3D 오브젝트에 사용되는 텍스쳐 라면 Mip Map 을 생성하고 필터링이 필요 없는 이미지( UI 등 )는 Generate Mip Maps 옵션을 끄는 것으로 설정하는 것을 추천.

    도트 디자인 이라면 필터링을 끄는게 좋다.

    유니티에서는 Generate Mip Maps 설정을 끄면 Filter Mode 가 설정 되어 있더라도 필터링을 하지 않는다.