일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- lua
- 루아
- 게임
- 메타테이블
- Vector
- virtual function
- 예외
- implicit conversion
- Smart Pointer
- 언리얼
- 반복자
- 오블완
- UE4
- exception
- 비교 함수 객체
- resource management class
- 다형성
- Effective c++
- 암시적 변환
- 영화
- c++
- 영화 리뷰
- reference
- more effective c++
- effective stl
- 티스토리챌린지
- 스마트 포인터
- operator new
- 상속
- 참조자
Archives
- Today
- Total
스토리텔링 개발자
[UE4] 텍스쳐 스트리밍 시스템(Mipmap) 본문
728x90
개요
메모리에 이슈가 있어 최적화가 필요할 때, 쉽게 떠올릴 수 있는 방법은 텍스쳐의 품질을 낮추는 것입니다.
하지만 무턱대고 저품질 텍스쳐를 사용하면 비주얼적으로 만족스럽지 않습니다.
상황에 따라서 고품질과 저품질을 취사선택할 수 있다면 좋을 것 같습니다.
그리고 밉맵의 역할이 바로 그것입니다.
텍스쳐 스트리밍 시스템
언리얼에서는 텍스처 스트리밍 시스템(스트리머)이 밉맵 기능을 제공합니다.
가용 메모리를 효율적으로 관리하면서 시각적인 퀄리티를 보장해줍니다.
좀 더 자세히 알아보도록 하겠습니다.
밉맵(Mipmap)
텍스쳐 스트리밍 시스템은 밉맵(혹은 Mips (밉))들로 텍스쳐 메모리를 관리합니다.
여기서 밉맵이란 무엇일까요.
밉맵이란 텍스처 해상도에 따라 미리 계산된 이미지 시퀀스들을 뜻합니다.
비유하자면 텍스처의 LOD라고 할 수 있습니다.
밉맵의 업데이트 과정
텍스쳐 스트리밍 시스템은 월드 뷰를 업데이트 할 때마다 아래의 과정을 처리합니다.
1. 밉맵 텍스쳐의 해상도를 결정
2. 밉맵들을 업데이트
아래는 좀 더 상세한 업데이트 과정입니다.
- 월드 뷰 업데이트
- 각 텍스처에 이상적인 해상도 계산
- 스트리밍 풀 크기에 따라 실제로 가능한 해상도 선택
- 업데이트할 텍스처 선택
- 로드 / 언로드 요청 생성
밉맵 텍스쳐 해상도 결정 순서
위에서 2번 과정, 각 텍스처에 이상적인 해상도 계산의 경우 아래 우선순위로 결정됩니다.
- 랜드스케이프(지형) 텍스쳐, 강제 로드 텍스쳐, 이미 해상도가 없는 텍스쳐는 현상을 유지합니다.
- 화면상에 보이는 밉은 현상을 유지합니다.
- 메모리를 많이 차지하지 않는 텍스처, 캐릭터 텍스처는 현상을 유지합니다.
- 현재는 보이지 않으면서 최근에 마지막으로 보였던 것부터 낮춥니다.
해상도가 결정된 텍스쳐 업데이트 순서
텍스쳐 해상도를 결정한 후, 해당 해상도 밉맵을 업데이트하는 순서(우선 순위)입니다.
- 보이는 밉을 로드합니다.
- 강제 로드 텍스처, 랜드스케이프 텍스처, 캐릭터 텍스처를 로드합니다.
- 목표 해상도와 가장 멀리 떨어진 텍스처를 로드합니다.
- 보이지 않는 것의 경우, 가장 최근에 보였던 것부터 로드합니다.
텍스쳐 해상도 한계
언리얼 엔진 4 는 텍스처 밉의 최대 수를 13 으로 제한하는 것을 기본으로 하고 있습니다.
즉 렌더링 가능한 최대 텍스처의 크기의 제한은 사실상 8192입니다. (1x1 에서 8192x8192 까지가 14 밉입니다).
728x90
'개발 > 언리얼 엔진' 카테고리의 다른 글
[UE4] 레벨(Level) (0) | 2021.10.08 |
---|---|
[UE4] 상위 객체 (Outer / Owner / AttachParent) (0) | 2021.10.01 |
[UE4] 컬링(Culling) (0) | 2021.09.17 |
[UE4] 오브젝트 생성(Create Object) (0) | 2021.09.13 |
[UE4] 언리얼 프로퍼티(리플렉션) 시스템(Unreal Property System) (0) | 2021.08.24 |
Comments