Unity 매뉴얼: 밉맵 스트리밍 시스템 API
개요
이 문서는 Unity의 밉맵 스트리밍 시스템 API에 대한 정보를 제공합니다. 이 API를 사용하면 게임에서 텍스처의 로딩 및 관리를 제어하여 더 나은 성능과 품질을 달성할 수 있습니다. 밉맵 스트리밍 시스템은 특정 상황에서 오버라이드를 통해 사용자가 원하는 대로 동작을 조정할 수 있도록 해줍니다.
밉맵 스트리밍 시스템 제어
텍스처 설정
밉맵 스트리밍을 활성화하고 제어하기 위해 사용할 수 있는 몇 가지 프로퍼티가 있습니다.
프로퍼티 이름 | 설명 |
---|---|
TextureImporter.streamingMipmaps | 텍스처의 밉맵 스트리밍을 활성화합니다. |
TextureImporter.streamingMipmapsPriority | 밉맵 스트리밍 우선 순위를 설정합니다. |
IHVImageFormatImporter.streamingMipmaps | IHV 이미지 포맷의 밉맵 스트리밍을 제어합니다. |
IHVImageFormatImporter.streamingMipmapsPriority | IHV 이미지 포맷의 밉맵 스트리밍 우선 순위를 설정합니다. |
메모리 관리
밉맵 스트리밍 시스템은 메모리 예산(Memory Budget)에 맞춰 텍스처의 밉 레벨을 자동으로 줄입니다. 이를 통해 시스템 성능을 최적화할 수 있습니다.
프로퍼티 이름 | 설명 |
---|---|
QualitySettings.streamingMipmapsActive | 밉맵 스트리밍 활성화 여부 설정합니다. |
QualitySettings.streamingMipmapsMemoryBudget | 밉맵 스트리밍을 위한 메모리 예산 설정합니다 (기본값: 512MB). |
QualitySettings.streamingMipmapsRenderersPerFrame | 매 프레임 당 렌더러 수 제한 (기본값: 512). |
QualitySettings.streamingMipmapsMaxLevelReduction | 최대 레벨 감소값 설정 (기본값: 2). |
QualitySettings.streamingMipmapsMaxFileIORequests | 최대 파일 I/O 요청 수 설정 (기본값: 1024). |
카메라 제어
카메라 위치 이동 시 필요한 텍스처를 미리 로드하기 위해 StreamingController.SetPreloading
메서드를 사용할 수 있습니다.
메서드 이름 | 설명 |
---|---|
void StreamingController.SetPreloading(float timeoutSeconds=0.0f, bool activateCameraOnTimeout=false, Camera disableCameraCuttingFrom=null) | 사전 로딩을 설정하고 카메라 활성화 또는 비활성화를 조정합니다. |
특정 밉 레벨 로딩
특정 텍스처에 대해 요청한 밉 레벨을 관리할 수 있습니다.
프로퍼티 이름 | 설명 |
---|---|
Texture2D.requestedMipmapLevel | 요청한 밉 레벨을 설정합니다. |
Texture2D.IsRequestedMipmapLevelLoaded | 요청한 밉 레벨이 로드되었는지 확인합니다. |
Texture2D.ClearRequestedMipmapLevel | 요청한 밉 레벨을 재설정합니다. |
디버깅 및 프로파일링
밉맵 스트리밍 시스템을 디버깅하고 프로파일링하기 위해 사용할 수 있는 여러 메서드가 있습니다.
메서드 이름 | 설명 |
---|---|
Texture.SetStreamingTextureMaterialDebugProperties | 머티리얼의 텍스처 스트리밍 디버그 속성을 설정합니다. |
Texture.currentTextureMemory | 현재 텍스처 메모리를 조회합니다. |
Texture.totalTextureMemory | 총 텍스처 메모리를 조회합니다. |
Texture.streamingMipmapUploadCount | 밉맵 업로드 카운트를 조회합니다. |
활용 예제
예제 1: 텍스처의 밉 맵 스트리밍 활성화
TextureImporter textureImporter = AssetImporter.GetAtPath("Assets/MyTexture.png") as TextureImporter;
textureImporter.streamingMipmaps = true;
textureImporter.SaveAndReimport();
예제 2: 특정 카메라에 대해 밉맵 스트리밍 사전 로딩 수행
void Start()
{
var streamingController = GetComponent<StreamingController>();
streamingController.SetPreloading(5.0f, true, Camera.main);
}
결론
이 문서는 Unity의 밉맵 스트리밍 시스템 API에 대한 기본적인 이해를 제공합니다. 이를 통해 성능 최적화 및 사용자 경험 향상을 위한 다양한 설정과 조정을 할 수 있습니다. 추가적인 정보를 위해 Unity 공식 문서를 참고해 주세요.