PART 4 - 강의 2/5

HLOD 레이어 체인 구성

거리별 단계적 LOD 전환 시스템 설계

01

레이어 체인 개념

다단계 HLOD로 원거리까지 커버

HLOD 레이어 체인은 부모-자식 관계로 여러 HLOD 레이어를 연결하여, 거리에 따라 점진적으로 단순화된 표현을 사용합니다.

HLOD Layer Chain (Buildings) 구성:

[HLOD_Buildings_LOD0]
     │ Type: Instancing
     │ CellSize: 12800 (128m)
     │ LoadingRange: 25600 (256m)
     ▼
[HLOD_Buildings_LOD1] ← Parent Layer
     │ Type: MergedMesh
     │ CellSize: 25600 (256m)
     │ LoadingRange: 51200 (512m)
     ▼
[HLOD_Buildings_LOD2] ← Parent Layer
     Type: SimplifiedMesh
     CellSize: 51200 (512m)
     LoadingRange: 102400 (1km)

거리별 표시:
0~256m     : 원본 액터
256~512m   : HLOD LOD0 (Instancing)
512m~1km   : HLOD LOD1 (Merged)
1km+       : HLOD LOD2 (Simplified)
02

HLOD Layer Asset 생성

Content Browser에서 레이어 설정

HLOD Layer 생성 방법 Content Browser에서 HLOD Layer 생성: 1. Content Browser > Right-Click 2. Miscellaneous > HLOD Layer (또는 World Partition > HLOD Layer) 3. 이름 지정: "HLOD_Buildings_LOD0" 기본 설정 항목: ├── Layer Type │ └── Instancing / MergedMesh / SimplifiedMesh / ApproximatedMesh │ ├── Cell Size (cm) │ └── 이 레이어가 커버하는 셀 크기 │ ├── Loading Range (cm) │ └── 이 HLOD가 표시되는 최대 거리 │ ├── Parent Layer (선택) │ └── 이 레이어의 부모 HLOD Layer Asset │ └── Generation Settings ├── Generate Nanite Enabled Mesh ├── Bake Materials └── Texture Size
03

체인 구성 예시: 도시 환경

City Sample 스타일 HLOD 설정

City Environment HLOD Chain // 건물용 HLOD Chain HLOD_City_Buildings_LOD0 ├── Type: Instancing ├── CellSize: 12800 ├── LoadingRange: 25600 └── ParentLayer: HLOD_City_Buildings_LOD1 HLOD_City_Buildings_LOD1 ├── Type: MergedMesh ├── CellSize: 25600 ├── LoadingRange: 51200 ├── BakeMaterials: true ├── TextureSize: 1024 └── ParentLayer: HLOD_City_Buildings_LOD2 HLOD_City_Buildings_LOD2 ├── Type: SimplifiedMesh ├── CellSize: 51200 ├── LoadingRange: 102400 ├── TargetTriangleCount: 2000 └── ParentLayer: None (최종 레이어) // 폴리지용 별도 HLOD HLOD_City_Foliage ├── Type: ApproximatedMesh ├── CellSize: 25600 ├── LoadingRange: 76800 ├── VoxelResolution: 128 └── GenerateNanite: true
설계 팁

건물과 폴리지는 별도의 HLOD 체인으로 분리하세요. 각각 다른 최적화 전략이 필요하며, 로딩 범위도 다르게 설정할 수 있습니다.

04

액터에 HLOD Layer 할당

에디터에서 HLOD Layer 지정

Editor 액터에 HLOD Layer 할당: 방법 1 - Details 패널: 1. 액터 선택 2. Details > World Partition 카테고리 3. "HLOD Layer" 프로퍼티에서 레이어 선택 방법 2 - 다중 선택: 1. 여러 액터 선택 (Shift+Click) 2. Details > World Partition > HLOD Layer 3. 동일한 레이어 일괄 할당 방법 3 - Data Layer와 연계: 특정 Data Layer의 모든 액터에 동일한 HLOD Layer를 설정하면 콘텐츠 관리가 용이해집니다.
C++ - HLOD Layer 설정 // 액터 클래스에서 기본 HLOD Layer 지정 UCLASS() class MYGAME_API AMyBuildingActor : public AActor { GENERATED_BODY() public: AMyBuildingActor() { // 기본 HLOD Layer 설정 (에디터에서 오버라이드 가능) // 실제 할당은 에디터에서 수행 } // HLOD에 포함될지 여부 UPROPERTY(EditAnywhere, Category = "World Partition") bool bIncludeInHLODs = true; };
05

셀 크기와 로딩 범위 설계

성능과 품질의 균형

레이어 셀 크기 로딩 범위 비율
LOD0 128m 256m 2x
LOD1 256m 512m 2x
LOD2 512m 1024m 2x

셀 크기

HLOD가 생성되는 단위. 작을수록 정밀하지만 HLOD 수가 증가합니다.

로딩 범위

HLOD가 표시되는 거리. 셀 크기의 2배가 일반적인 시작점입니다.

설계 원칙

일반적으로 부모 레이어의 셀 크기는 자식의 2배로 설정합니다. 로딩 범위도 마찬가지로 2배씩 증가시키면 자연스러운 전환이 가능합니다.

SUMMARY

핵심 요약

  • Parent Layer 설정으로 HLOD 체인 구성
  • 거리가 멀어질수록 더 단순한 HLOD 타입 사용
  • 셀 크기 2배 증가가 일반적인 패턴
  • 건물과 폴리지는 별도 체인으로 분리
  • HLOD Layer는 Content Browser에서 Asset으로 생성
PRACTICE

도전 과제

배운 내용을 직접 실습해보세요

실습 1: 2단계 HLOD 체인 구성

HLOD Layer 0(Cell Size 12800, SimplifiedMesh)과 HLOD Layer 1(Cell Size 51200, ApproximateMesh)로 2단계 체인을 구성하세요. 거리에 따라 단계적으로 HLOD가 전환되는 것을 확인합니다.

실습 2: 셀 크기와 레이어 전환 거리 조절

HLOD 레이어별 CellSize와 LoadingRange를 다양하게 조합하며, 전환 시 팝인(pop-in) 현상이 최소화되는 최적값을 찾으세요. 카메라를 이동하며 전환 품질을 평가합니다.

심화 과제

건물(3단계 체인), 식생(2단계), 소품(1단계) 등 오브젝트 타입별로 다른 HLOD 체인 전략을 수립하고 적용하세요. 각 타입의 시각적 중요도와 성능 비용을 고려한 최적 구성을 도출합니다.