mesh최적화에 대해 포스팅하기전 우선 Draw Call과 Batches에 관해 간단하게 작성하겠다
Draw Call
- CPU가 GPU에게 어떠한 물체를 그리라고 요청하는 것
- 모바일의 경우 100개정도가 상한선
- 일반적으로 오브젝트를 그릴 때, 오브젝트 단위로 한 개씩 증가. 또한 Draw Call이 적을수록 가벼운 게임 이라 할 수 있다. 기기의 성능에 따라 특정 개수를 넘어가면 프레임 저하 나타남
Batches
- 드로우 콜을 포함하는 상위 개념
- Batches = Draw Call + 기타 등등
- Batches=메쉬의 개수 + 라이트의 개수 + 재질의 개수 -동적 배칭으로 절약된 개수이다.
내가 최적화를 찾아보게 된 가장 큰 이유가 있다. 모바일에서 내가 만든 게임을 해보려는데 너무 렉이 걸려서 도저히 못 하는 수준이었다. 아래는 내가 mesh bake를 통해 최적화를 하기 전이다.
우측 상단의 Batches가 보이는가? 1426이라는 숫자를 기록하고 있다. 위에서 서술했듯이 모바일에서는 Batches가 100이 상한선으로 잡는게 맞다. 내 휴대폰에서 렉이 걸리는것은 당연한 사실이었다.
그래서 부랴부랴 mesh를 최적화하는법을 찾았다. 그러다가 알게 된것이 mesh bake이다.
Mesh Bake
Mesh Baker를 사용하면 메쉬를 병합하여 배칭을 최적화 할 수 있다. 몇몇 유료 Mesh Baker도 있지만 나는 무료 Mesh Baker를 사용하였다.
Simplest Mesh Baker | Utilities Tools | Unity Asset Store
무료이며 들어가면 사용법까지 친절하게 알려준다.
그냥 mesh들을 병합한다고 생각하면 편한거 같다. 나는 그래서 배경에 있는 나무들,바위들,꽃들 등등을 mesh baker를 이용해서 최적화했다.
우측 상단의 batches가 보이는가?? 65까지 줄였다. 원래 목표였던 100이하로 줄였기에 매우매우 만족스러운 결과이다.
P.S Mesh baker사용하다가 생긴 문제 2가지
1. bake하다가 깨짐 현상도 발생했는데 나는 그냥 안깨진것들만 배경으로 사용했다. 내가 참고한 글을 보면 깨진것도 해결하는 법이 있다고 한다. 근데 똑같이 해봤는데 안되는거 같애서 그냥 깔끔하게 포기.
2. 원래 사용하던 배경을 통째로 bake하니 막 뒤에것도 겹쳐서 보이고 배경이 어색해지고 불안정해졌다.
솔직히 어떻게 해결할지 감이 안잡혀서 비슷하게 생긴것들만 같이 bake해서 배경에 넣었다. 겹쳐서 보여도 어색하게 안 보이게
출처:
참된코딩 :: [Unity3D] 배칭 & 드로우콜 (tistory.com)
'유니티 > 최적화' 카테고리의 다른 글
유니티 최적화(5) - 프로파일러 사용법 (0) | 2022.10.25 |
---|---|
유니티 Sprite Atlas (0) | 2022.10.19 |
유니티 모바일 최적화(3) - 용량 큰 파일 찾기 (0) | 2022.08.14 |
유니티 모바일 최적화(2)-그림자 없애기 (0) | 2022.07.22 |
유니티 모바일 최적화(1)-텍스처 압축 (0) | 2022.07.14 |