참치김밥은 최고의 한식이다

[유니티] Unity로 오픈월드를 만드는 과정과 기능 개발 (2) 본문

Unity

[유니티] Unity로 오픈월드를 만드는 과정과 기능 개발 (2)

l__j__h 2024. 2. 22. 16:54

본 포스팅은 아래 글로부터 이어집니다!!

https://plzlotto1st.tistory.com/85

 

[유니티] Unity로 오픈월드를 만드는 과정과 기능 개발 (1)

본 포스팅은 아래 영상을 정리하며 작성했습니다. https://www.youtube.com/watch?v=pQ0lb9OxxbE 일단 오픈 월드 가 무엇일까? 직역하면 열린 세계로, 뭔가 엄청 넓을 것 같다. 맞다!! 일반적인 게임에서는, 다

plzlotto1st.tistory.com

 


 

이번 포스팅에서는 오픈 월드 개발 시 기술적 문제와 해결 방법에 대해 작성한다.

 

먼저, 기술적 문제부터!!

 

Texture 문제 (4km x 4km 예시) :

: 오픈 월드는 매우 크기 때문에, Terrain에 텍스처를 넣을 때, 1픽셀 당 씬 상에서 0.5m ~ x m를 커버하여 텍스처 압축 시 게임 상에서 퀄리티가 아주 안 좋아진다고 한다.

Height map도 문제가 생긴다. Height map에선 1픽셀 당 0.5m 정도를 커버하게 되는데, 캐릭터의 신장은 약 1~1.5m이다. 따라서, 캐릭터 시점에서 보게 되면 맵의 정밀도가 떨어질 수 밖에 없다고 한다.

해결 방법 :

유니티의 Big Terrain System을 이용한다!

 

LOD 문제 :

일반적인 LOD라면, 아주 멀리 있는 오브젝트여도 하나씩 LOD 처리가 들어간다고 한다.

오픈 월드는 매우 넓기 때문에, 저 멀리 있는 오브젝트 1000개에 대해서 일일이 LOD가 들어간다면 매우 비효율적일 것이다.

 

해결방법 :

HLOD 기법을 사용하여 거리에 따라 오브젝트들의 Mesh를 Combine하여 하나의 Mesh로 그룹화하여 해당 Mesh에 대해 LOD를 처리한다고 한다.

예를 들어서, 10km 거리에 1000개의 static 오브젝트가 있다고 하자.

일반적인 LOD라면, 저 멀리 있더라도 총 1000번의 LOD 처리가 이루어진다.

하지만, 1000개의 오브젝트의 Mesh를 모두 Combine하여 하나의 Mesh로 만들고, 이 Mesh에 대해서만 LOD 처리를 한다면? 1번의 LOD 처리만 이루어지면 된다.

이 과정을 거리마다 수행하는 것이 HLOD 방법이라고 한다.

 

+) HLOD의 장단점?

장점 :

- Static Batching에 비해 메모리 절약 (Streaming하기 좋아짐)

- 로딩 빨라짐

- 성능 좋아짐

 

단점 :

- Baking이 필요함

- Packaging 사이즈 증가

 

Shadowmap 사용 문제 :

오픈 월드는 맵이 너어무 커서, Shadowmap을 굽는 데에도 너무 오래 걸리고, 저장 공간도 낭비라고 한다.

 

해결 방법 :

원신에서는 Cascaded Shadow Map을 8개 사용하고, 하드 쉐도우에 Poisson 노이즈를 추가하여 그림자 퀄리티를 높였다고 한다. 프아송 노이즈는 쉐도우 밴딩 문제를 최소화하기 위해 사용했다.

덕분에 800미터 밖의 오브젝트에도 그림자를 구현하였다고 한다.

 

Cascaded Shadow Map이 정확히 뭔지 궁금해서 또 찾아보았다,, ⬇️⬇️⬇️

더보기

Cascaded Shadow Map (CSM) 이란??

아래는 기존의 Shadow Map 방식이다.

 

그리고 아래는 Cascaded Shadow Map 방식이다.

 

무슨 차이가 있을까?? 잘 보자

기존 방식에서는 모두 같은 크기의 픽셀로 나눠지는 한 편,

Cascaded 에서는 뷰 프러스텀으로부터의 거리에 따라 다른 크기의 픽셀로 맵을 나눈다.

 

이렇게 보면 Cascaded는 쉐도우 맵을 나누는구나 싶지만, 실제로 나눠지는 것은 뷰 프러스텀이다.

위 그림과 같이, Cascade 횟수를 정하고, 그 횟수만큼 프러스텀을 쪼갠다.

(즉, 원신은 이 Cascade 횟수를 8로 했다는 뜻으로 이해했다.)

 

출처 :

https://blog.naver.com/PostView.nhn?blogId=pencube1214&logNo=221849084039

 

Cascaded Shadow Mapping (CSM)

기존의 깊이기반 그림자 매핑 방식에서 생기는 문제점으로 아래와 같았다. '조명과 카메라의 각 두 뷰...

blog.naver.com

 

 

 

728x90