일단 컴포넌트/ 섹션/ 쿼드 등의 개념을 짚고 넘어가야 할 것 같다.
전체가 바로 랜드스케이프, 그리고 그 안에 4등분된 것이 컴포넌트이다.
현재 총 4개의 컴포넌트가 있으며 각각의 컴포넌트는 1*1 내지는 2*2의 섹션으로 구성된다.
그리고 섹션 안에는 가장 작은 단위인 쿼드가 존재한다.
자, 해당 이미지의 경우를 보자.
- 2*2 의 컴포넌트
- 2*2 의 섹션
- 63*63 의 쿼드
다시말해 이것은 3969의 쿼드를 가진 섹션이 4개가 모였고 그것이 한개의 컴포넌트를 이룬다.
그리고 그러한 컴포넌트가 총 4개인 경우이다.
1. 섹션의 크기
섹션의 크기, 그러니까 쿼드의 갯수는 랜드스케이프의 LDO 와 culling과 관계되어있다.
랜드스케이프의 LOD 의 가장 기본적인 단위가 섹션이기 때문이다.
-섹션의 크기 = 쿼드갯수
-섹션이 크다 = 쿼드갯수가 적다/ 섹션이 작다= 쿼드갯수가 많다
섹션 크기가 작다면 (쿼드의 갯수가 많다면), LOD가 최적화되지만 CPU 비용이 증가한다.
섹션 크기가 크다면 (쿼드의 갯수가 적다면), 컴포넌트 수가 줄어들고 CPU 비용이 감소한다.
따라서, 큰 랜드스케이프를 제작하고자 한다면 섹션 크기를 크게 해야 CPU 비용이 적게 든다.
섹션의 크기가 작다면 그만큼 LOD를 최적화할 수 있는데 CPU 비용이 증가하고......
섹션의 크기가 크다면 그만큼 LOD를 잘 못할 것이나 CPU 비용은 감소한다니.. 그럼 이득될 게 전혀 없는 것 아닌가?
21세기 최고의 발명품 챗지피티 유료쌤에게 물어보았다.
---------------------------------------------------------------------------------
섹션의 크기가 작다면 (즉, 쿼드의 갯수가 많다면)
더 세밀한 LOD가 가능한 덕분에 GPU에 비용이 감소한다. 하지만 그만큼 섹션을 계산해야하기 때문에 CPU에 부담이 간다.
섹션이 많을수록 이들 각각에 대한 culling 에 대해 계산을 통한 결정을 내려야 하므로 CPU의 비용이 증가한다.
섹션의 크기가 크다면 (즉, 쿼드의 갯수가 적다면)
적은 수의 컴포넌트가 존재할 것이며 당연히 섹션의 갯수 또한 적기 때문에 CPU 비용이 감소한다.
하지만 세밀한 LOD 조정이 힘들기 때문에 멀리 있는 오브젝트의 해상도가 불필요하게 높을 수 있다는 GPU의 부하 이슈가 생긴다.
---------------------------------------------------------------------------------
CPU 와 GPU 사이의 성능 최적화는 일종의 줄다리기와 같다.
어느 상황에 어느쪽에 더 중점을 두어야 할지.. 그런건 아직 전혀 모르겠다. 개념적 이해를 했으니 그것으로 만족한다.
2. 컴포넌트 별 섹션
1개의 컴포넌트 안에 몇개의 섹션이 들어있느냐를 결정하는 것이다.
1*1 이라면 1개를, 2*2 라면 4개의 섹션을 갖는다.
4개의 섹션을 갖는다면 이 뜻은 [1개의 컴포넌트는 한번에 4개의 서로 다른 LOD 를 수행한다] 라는 것이다.
이 컴포넌트 안에 몇개의 섹션이 존재할지, 그리고 그것이 어떤 장단점을 가져오는지는 1번 항목에 정리한대로다.
각 섹션의 크기는 반드시 2의 제곱 (16,32,64 등) 으로 진행되어야 하며
컴포넌트의 총 쿼드 갯수는 2의 제곱인 결과값보다 -1 또는 -2가 된다.
마이너스 1일 경우: 랜드스케이프 컴포넌트의 섹션이 1*1 (한개) 일때
마이너스 2일 경우: 랜드스케이프 컴포넌트의 섹션이 2*2 (두개) 일때
'수련의 과정 > ue5' 카테고리의 다른 글
[UE5] 프로시저럴 폴리지 사용하기 (0) | 2024.03.26 |
---|---|
[ue5] 폴리지 (foliage) 테크닉 (0) | 2024.03.18 |
[ue5] 랜드스케이프(landscape) 제작 테크닉 (0) | 2024.03.18 |