[UE5/Troubleshooting] Memory Optimization

Jaeyoung Ko·2025년 2월 6일

1. 배경

Level과 관련한 작업을 하다보면, 그래픽 리소스를 많이 사용하다 보니,

텍스처 스트리밍 풀이 xxxx MB 예산을 초과했습니다

혹은

TEXTURE STREAMING POOL OVER BUDGET

라는 문구가 종종 뜨는 일이 발생한다.


이 문구는 메모리에서 관리할 수 있는 텍스처 양을 초과했을 때 발생하는 경고문이다.

즉, 너무 많은 고해상도의 texture가 로드되어, UE에 할당된 VRAM보다 더 많은 texture 로드하려다 보니 문제가 발생하는 것이다.




cf. Texture Streaming이란?

Texture Streaming은 텍스처를 동적으로 로드하고 내보내 게임 성능을 향상시키는 방법으로 이 과정에서 Mip mapping Optimization 기법을 사용하여, 텍스처의 해상도를 동적으로 높이거나 낮춘다.




2. Solution?

이 문제를 해결하기 위해서는,

1) 텍스처 스트리밍 풀 크기를 늘리거나,

2) 텍스처 해상도를 낮추거나,

3) 불필요한 텍스처를 제거해야 한다.






Sol 1) pool size 증가


UE 콘솔 로그창에

r.Streaming.PoolSize 3000

를 입력하는 것으로 임시로 풀 사이즈를 늘려 해결가능하다. 다만 일시적이므로, 재시작 시 초기화된다.

영구적으로 늘리려면,

Config/DefaultEngine.ini 파일을 수정하여

r.Streaming.PoolSize=3000 을 입력하고 저장해준다.






Sol 2) Texture Resolution의 최적화


보다 근본적으로 메모리 로드 요청의 부하를 줄이기 위해 텍스처의 해상도를 줄이는 방법이다.

Texture 에셋을 눌러 Texture Editor에서 최대 텍스처 크기를 줄여준다.

이미지에서 알 수 있듯, 현재 필자의 에셋은 최대 텍스처 크기가 0으로 텍스처 크기 제한이 없이 설정되어 있다.

이 값은 적당히 2048 내지는 1024로 바꿔주도록 하겠다.

(필자는 1024로 적용했다.)


TIP! 한꺼번에 다중 선택하여 변경하기

위 이미지처럼 다중 선택해서 변경하는 것을 추천!


profile
안녕하세요, 고재영입니다. 언제나 즐겁게 살려고 노력합니다.

0개의 댓글