[UE_WorldPartition] Streaming Generation

윤정민·2026년 7월 11일

WorldPartition

목록 보기
2/3
post-thumbnail

1편에서 다룬 ActorDesc를 어떻게 Cell에 배치하는지 알아보겠다.
1편: https://velog.io/@jm450_/UEWorldPartition-ActorDesc

쿠킹 시 or 에디터에서 실행 시 해당로직이 실행된다.
해당 문서에서는 PIE에서 실행될 때를 다룬다.

1. GenerateStreaming 호출

PIE가 호출되면서 GenerateStreaming 함수가 호출된다.

컨테이너 컬렉션을 구성한 뒤 GenerateContainerStreaming()으로 넘긴다.

이후 두 가지 큰 작업이 순서대로 일어난다

  • Preparation Phase(클러스터/ActorSet 준비)
  • RuntimeHash 스트리밍 생성(셀 배치).

2. Preparation Phase

해당 단계에서는 ActorDesc를 클러스터링 하는 과정을 거친다.

2.1. 클러스터링 조건

ActorDesc로 넣어둔 References Actor들을 클러스터링 한다.

2.2. 클러스터링 알고리즘

참조를 양방향 간선으로 만든 무방향 그래프 구성하고 명시적 스택 기반 반복 DFS로 연결 요소 수집한다.

지금까지 내용을 정리하자면 아래 그림과 같다.

2.3. 셀 배치

이후 ActorSetInstance 를 통해 ActorSet 단위로 Bound등을 검사해서 그리드 셀에 배치한다.

셀에 배치하는 규칙은 런타임 해시 규칙에 따라 다르다.
virtual bool GenerateStreaming 를 따라가면 셀배치 로직을 확인할 수 있다.

UWorldPartitionRuntimeSpatialHash 클래스를 보면 CellSize크기로 나눠진 cell에 배치가능한지 불가능하다면 Level을 올리며 배치가능한 Cell을 찾고 있다 Level이 1오를 수 록 CellSize는 2배가 된다

profile
그냥 하자

0개의 댓글