본문 바로가기
IT

[유니티/VR 콘텐츠 제작] 11. 최적화 및 빌드

by 배애앰이 좋아 2024. 2. 6.
반응형

 

목표 : 유니티 VR 콘텐츠 제작하는 방법에 대해 알아봅시다.

 

https://www.youtube.com/watch?v=pm9W7r9BGiA&list=PLpEoiloH-4eM-fykn_3_QcJ-A_MIJF5B9&index=3

영상을 기반으로 작성된 글입니다.

사용한 유니티 버전 : 2022.3.16f
사용한 VR 기기 : meta quest 3

 

 

1. 최적화

 

최적화를 하기 전에 어떤 부분에서 소비가 일어나는지 확인하기 위해 아래와 같이 프로파일러를 통해 확인할 수 있습니다. 

 

또는 아래의 버튼을 눌려서 fps 등을 확인할 수 있습니다.

 

최적화 하기 위해 체크 리스트를 영상에서 제공했습니다.

 

순서대로 따라가보자면, 

 

1. 3d 오브젝트 최적화

 

- 심플하고 간단한 모양의 폴리곤을 쓰도록 확인

- 동일한 material 을 사용하도록 확인

- 동일한 shader 를 많이 쓸 수록 좋음

 

으로 위 부분들은 현재 프로젝트에서 잘 지켜지고 있음으로 크게 바꿀 부분은 없습니다. 

추가적인 조정을 하자면 아래와 같이 shader 를 더 가볍게 바꾸는 방법이 있습니다.

 

2. 물리 최적화

 

프로젝트 세팅에 들어가서 해당 값들을 조정할 수 있습니다.

해당 프로젝트에는 큰 물리적인 상황이 없음으로 넘겨도 됩니다.

 

3. 스크립트 최적화

 

이 부분 또한 현재 스크립트에서는 많은 양이 들어가지 않아 넘깁니다.

 

4. 비주얼 이펙트 최적화

 

마찬가지로 들어간 이펙트가 별로 없어서 넘깁니다.

 

5. 상태 최적화

 

- 정적 오브젝트인지 동적 오브젝트인지 확인해서 아래와 같이 나눠 놓습니다.

 

그 다음은 정적 오브젝트들 아래 부분을 체크해줍니다.

 

6. 조명 최적화

 

- 조명이 실시간 처리가 필요한 게 아니라면 아래처럼 정적 처리해줍니다.

 

추가적으로 아래와 같이 누르면,

 

모든 빛에 대해 관리할 수 있는 창이 뜹니다.

 

여기서 다 real time 이 되어 있는 이 경우 모든 프레임 계산하게 되어 무겁습니다. 

고로 움직이는 빛이 아니라면 baked 를 통해서 고정시켜주면 좋습니다. 그림자도 가볍게 해줍니다.

real time 까지는 아니지만 어느 정도 빛의 영향을 받기 바란다면 Mixed 설정도 좋습니다.

 

baked 하기 위해 아래와 같이 반사 오브젝트를 설정해줍니다.

 

빛이 있는 곳에 배치해주고

 

아래와 같이 light probe group 을 생성해줍니다.

 

그럼 아래와 같이 생성되는데 이 것의 의미는 이 주변에 있는 빛을 더 신경써서 굽고 그렇지 않는 부분은 비교적 더 가볍게 굽는다고 합니다.

 

Ctrl + D 를 통해 영역을 늘릴 수 있습니다.

 

영상에서는 미리 준비해서 아래처럼 설정했다고 합니다.

 

그 다음 lighting 세팅에 들어가서 아래와 같이 lighting setting asset 항목에서 new 를 눌려서 새롭게 생성해주고 아래와 같이 세팅해줍니다.

 

추가적으로 이미지에서는 안 바꿔지만 아래 부분도 바꿔줍니다.

Max Lightmap size -> 2048

click Generate Lighting button 클릭하면 빛이 bake 된 것을 확인할 수 있습니다.

 

 

8. 프로젝트 세팅 최적화

 

프로젝트 세팅에 들어가서 아래와 같이 세팅해줍니다.

 

보시면 현재 데스크탑과 안드로이드 설정이 다른 것을 볼 수 있으며,

perforamant 와 high fidelity 를 눌려보면 각각 빛이 다른 게 나타나는 것을 확인할 수 있습니다.

안드로이드 빌드할 때 사용할 성능에 대해 텍스처 스트리밍을 통해 빛을 더 좋게 바꾸고 싶다면 아래와 같이 세팅해줍니다.

 

현재는 URP로 되어 있는데 HDR을 사용하는게 저희가 전에 설정한 bloom 빛 효과를 더 향상시킬 수 있습니다.

 

저사양 장치에서 원하지 않는 픽셀화 효과 제거할려면 아래 처럼 설정하고, 추가적인 그림자 설정도 위해 체크해줍니다.

 

real time 이나 mixed lighting 을 사용한다면 아래처럼 설정해줍니다.

또한, 그림자도 아래처럼 설정할 수 있습니다.

 

 

9. 카메라 최적화

 

시야 조정을 통해 어디까지 먼 객체를 렌더링 할 것인가 조정 가능합니다. (현재 사진에서는 clipping planes > far 조정)

 

카메라에 비치는 부분만 렌더링하고, 안 보이는 물체 (ex 문 뒤에 사다리 같은) 는 렌더링하지 않게 하려면,

아래의 빨간 색 부분을 클릭해줍니다.

 

그럼 아래와 같이 플레이어가 보고 있는 것만 렌더링한 결과과 나옵니다.

 

여기까지 최적화에 대한 세팅이 끝났습니다. 

이대로 데스크탑과 안드로이드를 빌드하면 성공적으로 끝이 납니다!

 

 

 

최종 결과 물 영상 :

 

 

긴 글 읽어주셔서 감사합니다.

 

 

반응형

댓글