[UE5/Troubleshooting] Memory Optimization

Jaeyoung Ko·2025년 2월 6일
0

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개의 댓글