컴퓨터 스펙
CPU : Intel i5 - 12500
RAM : 32GB
GPU : RX 6600
문제 상황
레벨 에셋을 구매하여 사용하였는데 위와 같은 스펙의 컴퓨터에서 프레임 드랍이 심하게 생겼다.
stat FPS, sta UNIT 커맨드로 프레임과 GPU Time 을 확인했더니 Draw 와 GPU Time 에서 비용이 크게 발생하는 것을 확인했다.
정확하게 어느 부분에서 비용이 발생하는지 확인하기 위해 언리얼 에디터에서 제공하는 GPU 시각화 툴을 활용하였다.
단축키 : Shift + Ctrl + ,
확인 결과 ShadowDepths 의 RenderVirtualShadowMaps 에서 시간이 크게 걸리는 것을 발견했다.
19.85ms 의 비용이 발생한다.
RenderVirtualShadowMaps 에서 VSM 은 기존 그림자 매핑 기법 보다 더 섬세한 그림자를 표현하는 기법이다.
필요할 때에 동적으로 그림자 데이터를 생성하는 기법으로 사실적인 그림자 표현이 적합할 때 유용하게 사용가능하다.
프로젝트에서는 어두운 분위기이고 사실적인 그림자 표현이 불필요하기 때문에 VSM 에서 발생하는 비용을 줄이기로 했다.
레벨에 배치된 메쉬들의 Dynamic Shadow 를 비활성화하여 VSM 의 사용량을 줄인다.
구매한 레벨 에셋은 폴리지를 사용하였기 때문에 폴리지 모드에서 현재 폴리지 인스턴스에 사용 중인 모든 메쉬들의 Dynamic Shadow 를 비활성화 하였다.
결과
VSM 사용 비용이 최소한으로 줄어들었다.
19.85 -> 1.19 로 줄였다.
최적화 후 FPS 및 GPU Time 확인
평균 20 프레임에서 50 프레임까지 성능을 올렸고 Draw 와 GPU Time 도 대폭 줄어들었다.
'프로젝트 > Pollute' 카테고리의 다른 글
괴물 플레이어 캐릭터 (0) | 2025.01.11 |
---|---|
사람 플레이어 캐릭터 (0) | 2025.01.11 |
피직스 머터리얼을 이용한 사운드 변경 (0) | 2025.01.03 |
컨트롤러 플레이어 캐릭터 빙의 변경 - (사람, 몬스터, 관전자) (0) | 2025.01.03 |
플레이어 블렌드 스페이스 변경 & 속도 동기화 - 스테미나 (1) | 2024.12.13 |