[UE][번역] 언리얼5 렌더링 플로우 총정리(2024) 기초편 - 2 (BasePass)

2025. 3. 29. 15:58·정리 및 번역
목차
  1. 요약
  2. Base Pass
  3. LOD
  4. MipMap
  5. Streaming
  6. Virtual Texture
  7. Nanite
  8. Material?
  9. Shading Model
  10. Shader 컴파일 문제

요약

BasePass 개요

  • 불투명(Opaque)/마스크(Masked) 머티리얼 오브젝트를 렌더링하여 G-Buffer 생성
  • G-Buffer: 라이팅과 포스트 이펙트에 사용되는 중간 버퍼로, 오브젝트의 법선과 머티리얼 정보 포함

객체의 기본 구성 요소

  1. 폴리곤 메시: 삼각형으로 구성된 표면
  2. 텍스처: 표면 디테일
  3. 머티리얼/셰이더: 라이팅과의 상호작용 방식

Level of Detail (LOD)

  • 거리에 따라 저폴리곤 모델로 전환하여 렌더링 부하 감소
  • UE 내에서 자동 생성 또는 수동 설정 가능
  • 각 LOD의 전환 타이밍과 거리 설정 가능
  • 플랫폼별 최대 LOD 설정으로 성능 및 패키지 크기 최적화
  • 관련 설정: Project Settings > 플랫폼별 LOD 설정

MipMap

  • 원본의 1/2, 1/4, 1/8 등 축소된 텍스처 시리즈
  • 메모리 접근 효율화로 처리 속도 향상 및 원거리 모아레 방지
  • UE5.1부터 2의 거듭제곱이 아닌 해상도도 MipMap 생성 가능

텍스처 스트리밍

  • 필요한 MipMap 단계만 메모리에 로드하고 불필요한 것은 제거
  • 문제점:
    1. 스트리밍이 따라가지 못하는 상황: 객체가 갑자기 가까워질 때 고해상도 텍스처 로딩 지연
    2. 스트리밍 메모리 풀 부족: 설정된 메모리 크기보다 많은 텍스처 필요 시 발생
  • 관련 명령어: 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
  1. 요약
  2. Base Pass
  3. LOD
  4. MipMap
  5. Streaming
  6. Virtual Texture
  7. Nanite
  8. Material?
  9. Shading Model
  10. Shader 컴파일 문제
'정리 및 번역' 카테고리의 다른 글
  • [UE][번역] 언리얼5 렌더링 플로우 총정리(2024) 기초편 - 4 (Translucent)
  • [UE][번역] 언리얼5 렌더링 플로우 총정리(2024) 기초편 - 3 (Lighting)
  • [UE][번역] 언리얼5 렌더링 플로우 총정리(2024) 기초편 - 1
  • [UE][번역] World Partition 2024
winterseaotter31
winterseaotter31
winterseaotter31 님의 블로그 입니다.
  • winterseaotter31
    게임 개발 랭커가 될 거야!
    winterseaotter31
  • 전체
    오늘
    어제
    • 분류 전체보기 (11)
      • Column (3)
      • 정리 및 번역 (8)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

    • 게임 개발 랭커가 될 거야!
  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
winterseaotter31
[UE][번역] 언리얼5 렌더링 플로우 총정리(2024) 기초편 - 2 (BasePass)

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.