스토리텔링 개발자

[UE4] 파생 데이터 캐시(Derived Data Cache) 본문

개발/언리얼 엔진

[UE4] 파생 데이터 캐시(Derived Data Cache)

김디트 2021. 11. 1. 20:51
728x90

개요

파생 데이터 캐시란 무엇일까요?

 

에디터에서 새로운 레벨을 열고 실행할 때마다 '파생 데이터 캐시를 생성한다'는 메시지가 뜨곤 하는 게 퍼뜩 생각나는데요.

그렇다면 에셋을 사용하기 위해 쌓이는 일종의 캐시를 의미하는 것일까요?

 

 

 

파생 데이터와 파생 데이터 캐시(DDC)

파생 데이터(Derived Data)는 에셋을 사용하기 위해 생성되는 부가적인 데이터들입니다.

 

사실, 언리얼 에셋 사용을 위해선 이 파생 데이터가 반드시 필요합니다.

쉐이더의 경우를 예로 들어보겠습니다.

 

쉐이더의 경우 렌더링하려면 쉐이더 컴파일이 필요합니다.

그 컴파일 과정 후에 나온 데이터들이 있을 텐데요.

그게 바로 파생 데이터입니다.

 

파생 데이터는 그 크기가 큰데다가, 에셋 변화가 있을 시 언제든 새로 재생성될 수 있습니다.

그래서 체크인 되지 않고 캐싱 폴더에 임시 보관됩니다.

 

이 임시 보관되는 파일들을 파생 데이터 캐시(DDC)라고 합니다.

 

 

 

DDC 탐색

프로젝트 구성에 따라 여러 DDC 뭉치가 있을 수 있습니다.

그러므로 엔진 입장에서는 이 캐시들을 잘 탐색해야 할 필요성이 있을 것입니다.

캐시란 게 결국 빠르게 사용하기 위해 쌓아두는 거잖아요?

 

캐시를 탐색하는 과정은 아래와 같습니다.

 

  1. 빠른 캐시 순으로 데이터를 탐색합니다.
  2. 데이터를 발견하면 가장 빠른 로컬 캐시로 복사합니다.
  3. 데이터를 찾지 못했으면 먼저 데이터를 생성하고 캐시에 비동기 복사를 진행합니다.

 

 

 

공유 DDC

에셋의 양이 많아지면 DDC를 생성하는 데만 해도 꽤 많은 시간이 듭니다.

그럴 때는 공유 DDC를 설정하는 것이 좋습니다.

 

공유 DDC는 DDC 저장 위치를 공유해서 다른 사람이 생성한 DDC를 함께 사용하는 걸 뜻합니다.

이미 캐싱이 되어 있따면, DDC를 생성하느라 드는 불필요한 시간들을 줄일 수 있겠죠.

 

공유 DDC 설정 방법은 아래와 같습니다.

 

1. DefaultEngine.ini 파일에 [InstalledDerivedDataBackendGraph] 또는 [DerivedDataBackendGraph] 섹션을 선언합니다.

이 섹션은 원래 BaseEngine.ini 에 선언되어 있으며며, 기본적으로 에픽의 내부 DDC 공유 경로로 설정되어 있습니다.

즉 DefaultEngine.ini에 해당 섹션이 선언되어 있지 않다면 자동으로 로컬 DDC를 사용합니다.

 

2. 다른 네트워크 공유 경로로 설정하려면 재선언한 해당 섹션 아래의 경로를 다음과 같은 방식으로 변경해야 합니다.

  • Windows: (Path=\mystudio.net\DDC)
  • Mac: (Path=/Volumes/UE4DDC)

 

728x90
Comments