icon안동민 개발노트

지형과 환경 요소 최적화


 언리얼 엔진에서 지형과 환경 요소의 최적화는 게임의 전반적인 성능과 시각적 품질을 결정짓는 중요한 과정입니다.

 이 가이드에서는 다양한 최적화 기법과 전략을 상세히 살펴보겠습니다.

랜드스케이프 LOD 최적화

 1. LOD 설정 접근

  • Landscape Mode > Manage > LOD

 2. LOD 설정 최적화

Component Size: 32x32 (기본값, 조정 가능)
Number of LODs: 5-8 (지형 크기에 따라 조정)
LOD 0 Distribution: 1.0
LOD 1 Distribution: 0.5
LOD 2 Distribution: 0.25

 3. 테셀레이션 활용

Landscape Material > Details:
Tessellation: Enabled
Tesselation Fall-off: 0.5

폴리지 시스템 최적화

 1. 컬링 설정

Foliage Type > Details:
Cull Distance: 설정 (예 : 10000)
Enable Density Scaling: True

 2. LOD 활용

Foliage Type > LOD:
LOD 0: 100% 삼각형
LOD 1: 50% 삼각형
LOD 2: 25% 삼각형

 3. 인스턴싱 활용

  • Use HISMs (Hierarchical Instanced Static Meshes) 옵션 활성화

오클루전 컬링 활용

 1. 자동 오클루전 볼륨 생성

  • World Settings > Optimizing > Generate Occlusion Volumes

 2. 수동 오클루전 볼륨 배치

  • Place Actors > Volumes > Occlusion Volume

 3. 오클루전 설정 최적화

Project Settings > Rendering > Culling:
Max OcclusionPixels: 1.0
Min OcclusionQuerySize: 0.05

텍스처 및 머티리얼 최적화

 1. 텍스처 압축

Texture > Compression Settings:
TC_Default (일반)
TC_Normalmap (노멀맵)
TC_Masks (마스크)

 2. 머티리얼 복잡도 감소

  • 불필요한 노드 제거
  • 미리 계산된 텍스처 활용 (예 : 베이크된 라이팅 맵)

 3. 머티리얼 인스턴스 활용

  • 기본 머티리얼 생성 후 인스턴스로 변형

인스턴싱을 통한 드로우 콜 감소

 1. 스태틱 메시 결합

  • 유사한 스태틱 메시를 하나의 액터로 결합

 2. 인스턴스드 스태틱 메시 사용

Place Actors > Visual Effects > Instanced Static Mesh
Details > Instance Count: 필요한 수만큼 설정

 3. HLOD (Hierarchical LOD) 시스템 활용

  • World Settings > HLOD > Generate Clusters

라이팅 및 그림자 최적화

 1. 정적 라이팅 활용

  • 가능한 많은 조명을 Stationary 또는 Static으로 설정

 2. 그림자 설정 최적화

Directional Light > Details:
Dynamic Shadow Distance: 조정 (예 : 3000-5000)
Cascade Distribution Exponent: 3-4

 3. 라이트맵 해상도 조정

  • Static Mesh > Build Settings > Lightmap Resolution 최적화

대규모 오픈 월드 최적화 전략

 1. 월드 컴포지션 활용

  • World Settings > World Composition > Enabled: True

 2. 스트리밍 레벨 설정

  • 맵을 여러 섹션으로 분할
  • 각 섹션을 독립적으로 스트리밍

 3. 거리 기반 LOD 및 컬링

  • 원거리 오브젝트의 디테일 감소
  • 불필요한 요소 컬링

모바일 플랫폼 최적화

 1. 텍스처 크기 감소

  • 모바일용 저해상도 텍스처 세트 생성

 2. 셰이더 복잡도 감소

  • 모바일 전용 간소화된 머티리얼 생성

 3. 드로우 콜 최소화

  • 과도한 오버드로 방지
  • 배치된 메시 활용

프로파일링 및 성능 분석

 1. 언리얼 인사이트 활용

  • Window > Developer Tools > Session Frontend > Unreal Insights

 2. 통계 명령어 사용

stat FPS: 프레임 레이트 확인
stat Unit: CPU 사용량 분석
stat GPU: GPU 성능 분석

 3. GPU 시각화 모드

  • 뷰포트 > 버츄얼 셰이더 맵 시각화
  • 높은 복잡도의 영역 식별

시각적 품질과 성능 균형

 1. 점진적 최적화

  • 가장 큰 영향을 미치는 요소부터 최적화
  • 시각적 변화 최소화하며 성능 개선

 2. A/B 테스팅

  • 최적화 전후 스크린샷 비교
  • 성능 이득 대비 시각적 손실 평가

 3. 타겟 하드웨어 고려

  • 최소 사양과 권장 사양에서 테스트
  • 다양한 디바이스에서의 성능 확인

 지형과 환경 요소의 최적화는 게임 개발에서 중요한 과제입니다.

 효과적인 최적화는 게임의 성능을 크게 향상시키면서도 시각적 품질을 유지할 수 있게 해줍니다.

 이를 위해서는 언리얼 엔진의 다양한 툴과 기능을 깊이 이해하고 활용해야 합니다.

 랜드스케이프 LOD와 폴리지 시스템의 최적화는 대규모 환경에서 특히 중요합니다. 적절한 LOD 설정과 컬링 거리 조정으로 원거리 지형과 식물의 렌더링 부하를 크게 줄일 수 있습니다. 오클루전 컬링은 복잡한 환경에서 불필요한 렌더링을 막아 성능을 향상시키는 강력한 도구입니다.

 텍스처와 머티리얼의 최적화는 메모리 사용량과 렌더링 성능에 직접적인 영향을 미칩니다. 적절한 압축 설정과 머티리얼 복잡도 감소로 상당한 성능 향상을 얻을 수 있습니다. 인스턴싱 기법은 많은 수의 유사한 오브젝트를 효율적으로 렌더링하는 데 필수적입니다.

 라이팅과 그림자 설정은 시각적 품질과 성능에 큰 영향을 미치므로 신중한 조정이 필요합니다. 가능한 많은 조명을 정적으로 설정하고, 동적 그림자의 사용을 제한적으로 유지하는 것이 좋습니다.

 대규모 오픈 월드 환경에서는 월드 컴포지션과 스트리밍 레벨 기술이 중요합니다. 이를 통해 메모리 사용을 최적화하고 로딩 시간을 단축할 수 있습니다. 모바일 플랫폼을 대상으로 할 때는 더욱 엄격한 최적화가 요구되며, 텍스처 크기 감소와 셰이더 복잡도 줄이기 등의 추가적인 조치가 필요합니다.

 프로파일링 도구의 활용은 성능 최적화 과정에서 필수적입니다. 언리얼 인사이트와 다양한 통계 명령어를 통해 성능 병목 지점을 정확히 파악하고 효과적으로 해결할 수 있습니다.