월드 파티션 레벨 제작시 FastGeo 사용시 생기는 레벨에 배치된 에셋의 메테리얼 이슈

FastGeo 사용 시 Data Layer 로드 후 RVT 메테리얼(추정?) 영구 깨짐 현상

<br/>

환경

  • Engine: Unreal Engine 5.7.3
  • World Partition + Data Layer 기반 레벨 스트리밍
  • Runtime Virtual Texture(RVT) 및 Virtual Texturing 전면 사용 ( 이것은 저희쪽에 추정이긴 합니다. 현상 확인후 원인 추적은 아직 진행을 못하였습니다. 다만 해당되는 에셋들의 메테리얼을 몇개를 조사한결과 VT 를 사용하는 메테리얼로 연결된것만 확인 한 상황입니다.)
  • Transformer Stack: WorldPartitionRuntimeCellTransformerISM, FastGeoWorldPartitionRuntimeCellTransformer

<br/>

현상

FastGeoWorldPartitionRuntimeCellTransformer가 활성화된 상태에서 SetDataLayerRuntimeState로 Data Layer를 Activated하면, 해당 레이어에 포함된 에셋의 메테리얼이 영구적으로 깨집니다.

  • 셰이더 컴파일 중의 일시적인 현상이 아니며, 시간이 지나도 복구되지 않음
  • 메테리얼이 하얗게 타거나(Overexposed) 회색(Default Material)으로 유지됨
  • RVT/Virtual Texturing이 적용된 메테리얼에서 특히 두드러짐
  • FastGeo 트랜스포머 스택을 비활성화하면 문제가 발생하지 않음

<br/>

재현 경로

  1. 월드 파티션 메인 레벨에 RVT가 적용된 에셋을 포함한 Level Instance를 배치하고 Data Layer에 할당
  2. FastGeoWorldPartitionRuntimeCellTransformer를 런타임 셀 트랜스포머 스택에 추가
  3. 런타임에서 SetDataLayerRuntimeState로 해당 레이어를 Activated로 변경
  4. 스트리밍된 에셋의 메테리얼이 깨진 상태로 렌더링되며, 이후 정상화되지 않음

<br/>

문의 사항

  1. UE 5.7.3 기준으로 FastGeo와 RVT/Virtual Texturing 간의 알려진 호환성 이슈 또는 관련 픽스가 있습니까?
  2. FastGeo가 셀을 변환(Transform)하고 스트리밍하는 과정에서 가상 텍스처 캐시를 오염시키거나 정상적으로 초기화하지 못하는 경우가 발생할 수 있습니까?
  3. 이 문제와 관련하여 조정이 필요한 r.FastGeo 콘솔 변수나 RVT 설정 가이드라인이 있다면 공유 부탁드립니다.

<br/>

[Attachment Removed]

안녕하세요.

질문해주신 현상에 대해서 확인 후 답변드리겠습니다.

감사합니다.

[Attachment Removed]

안녕하세요. 확인 해주셔서 미리 감사드립니다.

이후 저희가 파악한 내용에 대해서 추가로 말씀드리겠습니다.

우선 스태틱 액터가 사용하고 있는 메테리얼의 instanced 사용 가능 플래그가 꺼져 있어서 문제가 되있는거가 하나의 이유 여서 이거는 해당 메테리얼들의 플래그를 키는걸로 해결했습니다.

다만 RVT 관련 이슈는 정확히 원인으로서만 파악을 하였고 해당 RVT 를 사용하는 액터들은 어떤식으로 처리를 해야 하는지 알고 싶습니다.

감사합니다.

[Attachment Removed]

안녕하세요, 문의 주신 내용 확인하였습니다.

질문에서 알려주신 방식으로 5.7 환경을 구성하여 테스트했습니다. 추가로 말씀해주신 것처럼 머티리얼의 “Used with Instanced Static Meshes” 옵션을 끈 상태에서는 머티리얼이 깨지는 것을 확인했습니다. 다만 FastGeo.EnableTransformerDebugMode를 사용하여 Data Layer 온오프 테스트를 해보면 Data Layer 활성화 시 FastGeo 변환이 정상 동작했지만 머티리얼 깨짐 현상은 재현되지 않았습니다. 관련 영상과 테스트를 진행했던 샘플 프로젝트를 함께 첨부했습니다. 샘플 프로젝트와 현재 진행 중이신 프로젝트의 세팅 차이가 있다면 알려주시면 원인 파악에 도움이 될 것 같습니다.

현재 FastGeo Streaming은 Experimental 상태의 플러그인이기 때문에 기존 엔진 기능과의 호환이 완전하지 않은 부분이 있을 수 있습니다. 동일한 이슈는 아니지만 FastGeo 사용 시 Mesh Paint와 관련된 문제점이 보고된 사례가 있었습니다.

RVT와의 조합에서도 유사한 호환성 이슈가 있을 가능성이 있지만 저희 환경에서 재현이 되지 않아 정확한 원인을 특정하기 어렵다는 점 양해 부탁드립니다.

현재 발생하고 있는 이슈가 단순 FastGeo 이슈가 아니고 VT 풀 부족 문제나 PSO 관련 이슈일 가능성도 있다고 생각됩니다. 아래 명령어들로 실제 문제가 있는지 확인해 보시면 도움이 될 것 같습니다.

아래 명령어들로 VT 풀 부족 문제가 있는지 확인이 가능합니다.

r.VT.Residency.Show 1

r.VT.Residency.Notify 1

r.VT.DumpPoolUsage

r.VT.Borders 1

PSO 관련 문제는 아래 명령어를 사용해 보시면 도움이 될 것 같습니다.

r.PSOPrecache.ProxyCreationDelayStrategy 1

r.ShaderPipelineCache.PrintNewPSODescriptors 2

r.DumpPipelineCache

r.PSOPrecache.Validation(ReadOnly 변수라서 DefaultEngine.ini에서 설정)

감사합니다.

[Attachment Removed]

안녕하세요. 답변해주신 내용에 따라 RVT 관련 FastGeo 에서 머티리얼 깨짐 현상을 내부에서 계속 체크한 후에 나온 결과로서 공유드리겠습니다.

답변에 적어주셨던 Console Variable 값에 따라 레벨별 체크를 진행한후에 결국 특정한 것은 RVT 관련 머티리얼이 연결된 스태틱 액터들이 관련 머티리얼만 사용하구 그외에 RVT 에 필요한 설정이 레벨에 없엇던것을 확인하엿습니다. ​RVT Volume 및 LandScape 에 해당 머티리얼 연결 부재 등이였습니다.

해당 레벨에 관련 설정을 재 설정후 문제없음이 확인되었습니다.

감사합니다.​

[Attachment Removed]