뮤터블(Mutable) 인스턴스는 텍스처를 점진적으로 생성할 수 있습니다. 그러면 다음과 같은 영향이 생깁니다.
- 오브젝트의 렌더링을 훨씬 빨리 준비할 수 있지만, 퀄리티는 저하됩니다.
- 오브젝트의 메모리 사용량이 감소합니다. 불필요하게 큰 텍스처 밉맵을 생성하지 않아 CPU나 GPU 메모리를 사용하지 않기 때문입니다.
- 총 오브젝트 생성 시간이 증가합니다. 밉맵이 업데이트될 때마다 일부 작업이 반복되기 때문입니다.
- 표준 언리얼 엔진 텍스처 스트리밍과 마찬가지로 텍스처 밉맵을 업데이트할 때 변화가 확연하게 보입니다.
- 뮤터블 런타임이 더 자주 사용되어 바쁘므로 다른 오브젝트의 업데이트가 지연될 수 있습니다.
일반적으로 권장하는 동작이자 디폴트 동작은 게임 내에서 텍스처 스트리밍을 켜고 플레이어가 오브젝트를 커스터마이징하는 도중에는 텍스처 스트리밍을 꺼서 밉맵 업데이트 시 텍스처가 튀는 현상을 방지하는 것입니다.
뮤터블은 없음(None) 으로 설정된 텍스처 압축 전략(Texture Compression Strategy) 을 사용하는 상태의 텍스처 스트리밍을 토글합니다. 이는 휴리스틱 기능으로, 낮은 업데이트 지연시간을 우선하는 커스터마이징 가능 오브젝트 상태에서만 미압축 텍스처를 사용하며 로비에서 피부색을 변경하는 등의 상황에서는 등 튀는 현상이 허용되지 않는다고 가정합니다.
또한, 글로벌 뮤터블 텍스처 스트리밍은 mutable.EnableMutableProgressiveMipStreaming CVar를 사용하여 토글할 수도 있습니다.
런타임에는 다음 메서드를 사용하여 제어합니다. UCustomizableObjectSystem::SetProgressiveMipStreamingEnabled(bool bIsEnabled)