요약
BasePass 개요
- 불투명(Opaque)/마스크(Masked) 머티리얼 오브젝트를 렌더링하여 G-Buffer 생성
- G-Buffer: 라이팅과 포스트 이펙트에 사용되는 중간 버퍼로, 오브젝트의 법선과 머티리얼 정보 포함
객체의 기본 구성 요소
- 폴리곤 메시: 삼각형으로 구성된 표면
- 텍스처: 표면 디테일
- 머티리얼/셰이더: 라이팅과의 상호작용 방식
Level of Detail (LOD)
- 거리에 따라 저폴리곤 모델로 전환하여 렌더링 부하 감소
- UE 내에서 자동 생성 또는 수동 설정 가능
- 각 LOD의 전환 타이밍과 거리 설정 가능
- 플랫폼별 최대 LOD 설정으로 성능 및 패키지 크기 최적화
- 관련 설정: Project Settings > 플랫폼별 LOD 설정
MipMap
- 원본의 1/2, 1/4, 1/8 등 축소된 텍스처 시리즈
- 메모리 접근 효율화로 처리 속도 향상 및 원거리 모아레 방지
- UE5.1부터 2의 거듭제곱이 아닌 해상도도 MipMap 생성 가능
텍스처 스트리밍
- 필요한 MipMap 단계만 메모리에 로드하고 불필요한 것은 제거
- 문제점:
- 스트리밍이 따라가지 못하는 상황: 객체가 갑자기 가까워질 때 고해상도 텍스처 로딩 지연
- 스트리밍 메모리 풀 부족: 설정된 메모리 크기보다 많은 텍스처 필요 시 발생
- 관련 명령어: r.Streaming.PoolSize - 텍스처 스트리밍 메모리 크기 설정
Virtual Texture
- 텍스처를 타일 단위로 분할하여 필요한 타일만 로드
- MipMap 내에서도 타일 단위로 로드 가능
- 카메라에 가까운 부분만 상세 MipMap을 로드하여 메모리 효율화
텍스처 압축
- GPU가 고속으로 처리할 수 있는 형식으로 압축 (DXT1/5, BC4 등)
- 각 플랫폼별 최적 압축 형식 존재
Nanite (가상화된 지오메트리)
- Virtual Texture의 폴리곤 메시 버전
- 초고밀도 폴리곤을 실시간으로 렌더링, LOD 생성 불필요
- 사전 준비: 객체를 클러스터화하고 계층화
- 런타임: 시점(픽셀)에 따라 필요한 상세도의 클러스터 로드/제거
- UE5.5 현재 지원 상태:
- 지원: Opaque(불투명), Masked(마스크) 머티리얼
- 미지원: Translucent(반투명) 머티리얼
- 베타 지원: World Position Offset
- 검증 중: Skeletal Mesh
- Nanite와 일반 메시의 렌더링 패스는 G-Buffer 상에서 병합되며, G-Buffer 내에 "Nanite로 생성되었는지 여부"는 기록되지 않음
- 카메라 컷이 급격히 변할 때 스트리밍이 따라가지 못하는 제약 존재
Material?
- UE의 머티리얼은 노드 기반 시스템으로 구성되어 있으며, 다양한 질감 표현이 가능
- “질감(Shading)”은 조명에 반응하는 방식이며, 이것을 정의하는 핵심이 Shading Model
Shading Model과 PBR 원칙
- PBR(Physically Based Rendering)은 물리 기반 광학 원리에 따라 설계됨
- BaseColor, Metallic, Roughness 등 입력값이 현실의 빛 반응을 시뮬레이션
- 에너지 보존의 법칙(100 들어오면 100 안에서 반응)을 준수
Shader Compile 문제와 Permutation 폭발
- 하나의 머티리얼이 다양한 상황(광원 타입, 기기 등)에 맞춰 수십~수백 개의 셰이더를 생성함
- 복잡한 머티리얼 구조는 240개 이상의 셰이더 생성도 가능
- 프로젝트가 커질수록 “셰이더 컴파일이 끝나지 않는다”는 이슈가 빈번해짐
Shader Permutation 최적화 전략
- 사용하지 않을 기능을 설정에서 제거하여 셰이더 생성 수 자체를 줄이는 설정:
- Shader Permutation Reduction 옵션
- 공유 및 분산 컴파일 전략:
- DDC (Derived Data Cache) 공유
- UBA (Unreal Build Accelerator)를 통한 분산 컴파일
Base Pass

LOD


MipMap


Streaming


Virtual Texture

Nanite



Material?

Shading Model

Shader 컴파일 문제




'정리 및 번역' 카테고리의 다른 글
[UE][번역] 언리얼5 렌더링 플로우 총정리(2024) 기초편 - 5 (PostProcess/Upscale) (0) | 2025.03.29 |
---|---|
[UE][번역] 언리얼5 렌더링 플로우 총정리(2024) 기초편 - 4 (Translucent) (0) | 2025.03.29 |
[UE][번역] 언리얼5 렌더링 플로우 총정리(2024) 기초편 - 3 (Lighting) (0) | 2025.03.29 |
[UE][번역] 언리얼5 렌더링 플로우 총정리(2024) 기초편 - 1 (0) | 2025.03.29 |
[UE][번역] World Partition 2024 (0) | 2025.02.28 |