PART 4 - 강의 1/5

HLOD 타입별 상세

5가지 HLOD 타입의 특성과 활용 방법

01

HLOD 타입 개요

용도별 최적의 HLOD 선택

World Partition HLOD는 원거리 오브젝트를 효율적으로 표현하기 위한 시스템입니다. 5가지 타입 중 콘텐츠 특성에 맞는 것을 선택해야 합니다.

HLOD 타입 용도 특징
Instancing 폴리지, 임포스터 동일 메시를 ISM으로 대체, 최저 LOD 사용
Merged Mesh 빌딩, 프롭 여러 메시를 단일 프록시로 병합
Simplified Mesh 복잡한 구조물 병합 후 메시 단순화 수행
Approximated Mesh 폴리지 (Nanite) Nanite 트리에 적합한 근사 메시 생성
Custom (5.7+) 사용자 정의 커스텀 HLOD 표현 직접 제공
02

Instancing HLOD

Instanced Static Mesh 기반 최적화

Instancing HLOD는 동일한 메시를 여러 개 사용하는 경우 가장 효율적입니다. 폴리지, 반복되는 프롭 등에 적합합니다.

특징 Instancing HLOD 동작 방식: 1. 셀 내 동일 메시들을 수집 2. 각 메시의 최저 LOD 선택 3. Instanced Static Mesh Component로 변환 4. 드로우 콜 대폭 감소 적용 예시: - 나무, 풀, 돌 등 자연 환경 요소 - 가로등, 벤치 등 반복 배치 프롭 - 군중 임포스터
최적화 팁

Instancing은 드로우 콜을 크게 줄이지만, 각 인스턴스가 개별 LOD를 가질 수 없습니다. 따라서 원본 메시의 LOD 설정이 중요합니다.

03

Merged Mesh HLOD

여러 메시를 단일 프록시로 병합

Merged Mesh 설정 // HLOD Layer 설정 (Content Browser에서 생성) // Right-Click > World Partition > HLOD Layer HLOD Layer Settings: ├── Layer Type: Merged Mesh ├── Cell Size: 25600 (256m) ├── Loading Range: 51200 (512m) │ ├── Merge Settings │ ├── Merge Distance: 50.0 │ ├── Pivot Point at Zero: true │ └── Merge Physics Data: false │ └── Material Settings ├── Bake Materials: true ├── Texture Width: 1024 └── Texture Height: 1024

장점

여러 드로우 콜을 하나로 통합. 복잡한 건물군을 단일 메시로 표현 가능.

단점

머티리얼 베이킹으로 텍스처 품질 저하 가능. 큰 영역은 텍스처 해상도 부족.

04

Simplified Mesh HLOD

메시 병합 + 폴리곤 단순화

Simplified Mesh 설정 // Simplified Mesh는 Merged 후 폴리곤 수를 줄임 HLOD Layer Settings: ├── Layer Type: Simplified Mesh │ ├── Simplification Settings │ ├── Max Deviation: 10.0 │ ├── Target Triangle Count: 1000 │ ├── Preserve UV Seams: true │ └── Hard Angle Threshold: 80.0 │ └── Material Settings ├── Bake Materials: true ├── Texture Width: 512 └── Texture Height: 512

Simplified Mesh는 복잡한 지오메트리를 가진 구조물에 적합합니다. 원거리에서는 단순화된 실루엣으로 충분한 경우 사용합니다.

폴리곤 감소 과정:

Original Mesh (50,000 tris)
        ↓
    Merged Mesh (120,000 tris - 여러 메시 병합)
        ↓
    Simplified Mesh (5,000 tris)
        ↓
    원거리 렌더링에 사용
05

Approximated Mesh HLOD

Nanite 폴리지를 위한 근사 메시

Approximated Mesh는 Nanite 지원 폴리지에 최적화된 HLOD 타입입니다. 복셀화를 통해 형태를 근사합니다.

Approximated Mesh 설정 // Foliage HLOD Layer HLOD Layer Settings: ├── Layer Type: Approximated Mesh │ ├── Approximation Settings │ ├── Voxelization Resolution: 128 │ ├── Hole Filling: Normal │ └── Generate Nanite Enabled Mesh: true │ └── Nanite Settings ├── Fallback Percent Triangles: 100.0 └── Fallback Relative Error: 0.01
주의사항

Non-Nanite 폴리지가 Approximated HLOD에 포함되면 그림자 아티팩트가 발생할 수 있습니다. 또한 Approximated Layer의 Roughness, Metallic, Specular 값을 확인하세요.

06

Custom HLOD (UE 5.7+)

사용자 정의 HLOD 표현

C++ - Custom HLOD Actor // UE 5.7에서 추가된 Custom HLOD UCLASS() class MYGAME_API AWorldPartitionCustomHLODActor : public AActor { GENERATED_BODY() public: // 커스텀 HLOD로 사용할 Static Mesh Component UPROPERTY(VisibleAnywhere) TObjectPtr<UStaticMeshComponent> CustomHLODMesh; // LinkedLayer 프로퍼티로 가시성 제어 // LinkedLayer의 액터가 언로드될 때 Custom HLOD가 표시됨 UPROPERTY(EditAnywhere, Category = "HLOD") TObjectPtr<UHLODLayer> LinkedLayer; }; // 사용 시나리오: // 1. 아티스트가 직접 제작한 LOD 메시 사용 // 2. 자동 생성 품질이 불충분한 특수 구조물 // 3. 심볼릭한 랜드마크 표현

Custom HLOD는 자동 생성으로는 충분하지 않은 경우 아티스트가 직접 제작한 메시를 HLOD로 사용할 수 있게 합니다.

SUMMARY

핵심 요약

  • Instancing: 반복 배치 오브젝트, 드로우 콜 최적화
  • Merged Mesh: 여러 메시를 단일 프록시로 통합
  • Simplified Mesh: 병합 + 폴리곤 단순화로 복잡한 구조물 처리
  • Approximated Mesh: Nanite 폴리지용 복셀 기반 근사
  • Custom HLOD (5.7+): 아티스트 제작 메시로 직접 제어
PRACTICE

도전 과제

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

실습 1: Instancing HLOD 생성

반복되는 폴리지나 건물 세트에 Instancing HLOD를 설정하세요. World Partition HLOD 설정에서 HLODLayer를 생성하고 타입을 Instancing으로 지정한 후, HLOD 빌드를 실행하여 결과를 확인합니다.

실습 2: Merged Mesh HLOD 생성

여러 스태틱 메시를 하나의 메시로 합치는 Merged Mesh HLOD를 생성하세요. HLODLayer 설정에서 Mesh Merge 옵션을 구성하고, 생성된 HLOD 메시의 폴리곤 수와 텍스처 아틀라스를 확인합니다.

심화 과제

동일한 구역에 대해 Instancing, MergedMesh, SimplifiedMesh, ApproximateMesh HLOD를 각각 생성하고, 드로우콜 수, 메모리 사용량, 시각적 품질을 비교 분석하여 최적 전략을 도출하세요.