🏆 목차.
🛒 개요
씬에 벽 메쉬가 너무 많아 카메라가 움직일 때마다 부자연스러움이 느껴졌습니다.
프로파일링을 통해 확인해보니 DrawCall이 많이 발생하고 있다는 것을 알게 되었고,
일반적인 상태에서도 Batches가 2000이 기본으로 넘어가고 있었습니다.
이러한 문제를 해결해 주는 에셋을 하나 추천드리겠습니다.
🎨 MeshBaker
Mesh Baker 보러 가기
Mesh Baker는 간단하게 말하자면 Mesh들을 하나로 합쳐주는 역할을 하는 에셋입니다.
만약 직접 메쉬를 합치기 위해서는 마야나 블렌더와 같은 프로그램을 이용해서 에셋을 옮기고 합치고 다시 유니티로 옮겨와야 하는 번거로움이 있습니다.
하지만 Mesh Baker를 이용하면 이런 과정 없이 간단하게 메쉬를 합칠 수 있습니다.
그림으로 예를 들어보겠습니다.
유니티에서 큐브 3개를 화면에 띄우기 위해서는 각각 cpu가 gpu에게 DrawCall 명령을 내리고 gpu는 렌더링을 하는 과정을 거칩니다.
하지만 이 큐브가 엄청나게 많았지만 그만큼 gpu는 많은 작업을 수행하고 그만큼 퍼포먼스가 감소하게 됩니다.
하지만 이것을 하나의 메쉬로 묶어주게 되면 gpu는 큐브 3개가 아닌 하나의 큰 큐브로 인식을 하고 렌더링의 과정이 한 번으로 줄어들게 됩니다.
🎯 사용방법
에셋을 임포트 한 뒤, 빈 오브젝트에 MB3_Mesh Baker 컴포넌트를 추가합니다.
그다음 Object To Be Combined에 Bake 할 Mesh들을 드래그 & 드롭해 줍니다.
가장 상위에 있는 오브젝트를 넣으면 자동으로 하위에 오브젝트도 추가됩니다.
추가했다면 그다음 Bake를 누르면 끝입니다.
Hierarchy 창에 하나로 컴바인 된 메쉬가 새로 생깁니다.
기존의 오브젝트들은 삭제해 주면 됩니다.
🎁 결과
이제 Batches가 평균적으로 1300으로 감소되었습니다.
다른 메쉬를 제외하고 벽 메쉬만 하나로 합쳤는데 800 정도 Batches가 감소되었습니다.
만약 다른 메쉬들도 합치면 1000 이상 감소시킬 수 있을 것 같습니다.
전보다 확실히 게임이 부드러워졌습니다.
'유니티' 카테고리의 다른 글
[Unity] 포톤 서버 로비 입장하기 (0) | 2023.10.02 |
---|---|
[Unity] 포톤 서버 구축 (0) | 2023.10.02 |
[Unity] 유니티 : 싱글톤(Singleton) 패턴 (0) | 2023.09.04 |
[Unity] 유니티 오브젝트 컬링 문제 (0) | 2023.09.02 |
[Unity] 유니티 그림자 안생기는 문제 (0) | 2023.09.02 |