Draw Call은 렌더링 성능에 많은 영향을 끼치는 요소 입니다.

그냥 간단하게 말하자면 렌더링 파이프라인 과정에서 Draw Call은 말그대로 하나의 오브젝트를 그리는 Draw 과정의 호출 횟수 입니다.

 

유니티를 비롯한 많은 엔진들과 게임 프로그래머들은 Draw Call을 줄이기 위하여 몇가지 테크닉을 가지고 있습니다.

여기서 소개할 테크닉은 Draw Call Batching 입니다.

 

Draw Call Batching은 같은 머터리얼을 사용하는 정적인 물체가 렌더링 될때

한번의 Batching으로 Draw Call을 줄이는 방법을 이야기 합니다.

유니티의 Batching은 크게 정적배칭과 동적배칭이 있습니다.

 

자세한 사항은 유니티 공식문서를 확인하시면 되겠습니다.

드로우 콜 배칭(Draw Call Batching)

 


먼저 동적배칭부터 보겠습니다.

동적배칭은 움직일수 있는 오브젝트를 포함 모든 오브젝트에 대해 배칭을 시도하는 옵션입니다.

사실 동적 배칭은 설정이 굉장히 간단 합니다.

프로젝트 세팅 -> 플레이어 세팅에서 간단하게 Dynamic Batching 버튼만 누르면 됩니다.

동적배칭은 배칭이 되는 조건이 까다롭기 때문에 많은 효과를 기대할수는 없지만 눌러놓기만 하면 어느정도 성능향상을 기대할수 있습니다,


 

이번에는 정적 배칭을 보겠습니다.

정적배칭은 움직이지 않는 오브젝트를 대상으로 하는 배칭 입니다.

따라서 정적배칭을 설정하면 게임의 시작 이후에는 Transform(월드 변환)이 불가능 한 오브젝트가 됩니다.

먼저 간단하게 정적배칭이 적용되기 전의 상황 입니다.

프레임이 293으로 체크되는걸 알수 있습니다.

 

적용 방법은 간단합니다. 적용할 오브젝트를 선택하신후 Batching Static만 체크해 주시면 됩니다.

 

적용후 결과 입니다. 같은 장면에서 프레임이 391fps가 나왔습니다. 거의 2배가까이 프레임이 올라간것을 알 수 있습니다.