Unity의 밉맵 스트리밍 시스템
이 문서에서는 Unity의 밉맵 스트리밍 시스템에 대해 쉽게 설명하고, 다양한 활용 및 응용 예제를 제공합니다.
개요
밉맵 스트리밍 시스템은 현재 카메라 위치에 필요한 밉맵만 로드하도록 하여 메모리 사용을 줄이는 기술입니다. 이를 통해 CPU 리소스를 소모하고, GPU 메모리를 절약할 수 있습니다. Unity의 Viking Village
데모 프로젝트에서는 이러한 기술을 통해 텍스처 메모리를 25-30% 절감합니다.
시작하기
1. 밉맵 스트리밍 활성화하기
- Unity에서 품질 설정으로 이동합니다: Edit > Project Settings > Quality
Texture Streaming
체크박스를 활성화합니다.
이렇게 하면 모든 카메라에 대해 기본적으로 밉맵 스트리밍이 활성화됩니다.
2. 개별 텍스처 설정
- 텍스처 에셋을 선택하고 인스펙터 창에서 텍스처 임포트 설정을 확인합니다.
Advanced
설정으로 가서Mip Streaming
체크박스를 활성화합니다.
3. Android 개발자 설정
- 빌드 설정에서
Compression Method
를LZ4
또는LZ4HC
로 설정합니다.
밉맵 스트리밍 API
밉맵 스트리밍을 활성화하고 설정하는 다양한 방법과 관련된 API를 사용할 수 있습니다.
텍스처 우선순위 설정
Texture Import Settings
에서 Mip Streaming > Priority
를 설정하여 텍스처의 우선순위를 조정할 수 있습니다.
우선순위 값 | 설명 |
---|---|
-128에서 127 | 밉 레벨과 메모리 할당량 결정 |
0 | 기본 우선순위 |
양수 | 더 높은 우선순위 부여 |
라이트맵 스트리밍
밉맵 스트리밍 시스템을 사용하여 라이트맵의 밉 레벨을 스트리밍할 수 있습니다. 두 가지 제어 옵션인 Lightmap Streaming Enabled
와 Streaming Priority
를 통해 이 설정을 조정할 수 있습니다.
메모리 할당량 설정
Unity는 텍스처에 대해 설정한 메모리 할당량을 기준으로 밉 레벨을 자동으로 낮춥니다. 다음과 같은 설정 방법이 있습니다.
설정 항목 | 내용 |
---|---|
Memory Budget | 최대 메모리 사용량 설정 |
Max Level Reduction | 로드 시 사용하는 최대 밉맵 레벨 설정 |
카메라 설정
모든 카메라에서 밉맵 스트리밍을 활성화하려면 Quality Settings에서 Add All Cameras
를 설정합니다. 특정 카메라에서 비활성화하고 싶다면 Streaming Controller
컴포넌트를 추가하여 조정할 수 있습니다.
에디터 스트리밍 설정
에디터의 밉맵 스트리밍 설정을 제어하여 플레이 모드와 편집 모드에서 다르게 사용할 수 있습니다. 이는 최적화에 도움이 됩니다.
디버깅 방법
Unity에는 내장된 밉맵 스트리밍 디버깅 뷰 모드가 제공됩니다. 이를 통해 상태에 따라 색상이 변화하여 어떤 밉맵이 로드되고 있는지를 쉽게 식별할 수 있습니다.
색상 | 설명 |
---|---|
녹색 | 밉맵 개수가 감소한 텍스처 |
빨간색 | 리소스 부족으로 로드된 텍스처 |
파란색 | 스트리밍이 설정되지 않은 텍스처 |
활용 및 응용 예제
예제 1: 게임 성능 최적화
밉맵 스트리밍을 통해 텍스처 메모리가 부족할 때 품질을 최적화하여 성능을 향상시킬 수 있습니다.
예제 2: 다양한 해상도 지원
모바일 기기의 낮은 메모리 옵션에 밉맵 스트리밍을 적용하여 다양한 해상도를 지원할 수 있습니다.
예제 3: 라이트맵 최적화
라이트맵의 밉 레벨을 스트리밍하여 장면의 조명 품질을 높이고 메모리를 절약할 수 있습니다.
결론
Unity의 밉맵 스트리밍 시스템은 텍스처 메모리의 효율적인 사용을 통해 성능을 최적화할 수 있는 강력한 도구입니다. 적절한 설정과 활용을 통해 게임의 그래픽 품질을 유지하면서도 시스템 성능을 개선할 수 있습니다.