Unity Static batcing이란? (실습)

Static batcing(정적 배칭) 이란 드로우 콜을 줄이기 위해 움직이지 않는 메시를 결합 하는 드로우 콜 배칭 방식입니다

드로우 콜 배칭이란?

  • Unity가 메시(Mesh)를 더 적은 드로우 콜로 렌더링 할 수 있도록 메시를 결합하는 드로우 콜 최적화 방법이다
  • 정적 배칭과 동적 일괄 처리가 있다


정적 배칭을 사용하면 움직이지 않고(static) 동일한 재질을 공유하는 오브젝트들을 일괄 처리함으로 Draw Call 및 batches을 줄일 수 있습니다

Draw Call이란?

  • 드로우콜(Draw Call)이란 CPU가 CPU에게 렌더링을 부탁하는 것이다


batch란?

  • Batch는 DP Call과 상태 변경들을 합친 넓은 의미의 드로우콜이다


DP Call이란?

  • CPU는 명령을 보내고 마지막으로 GPU에게 메시를 그리라는 명령을 보낸다. 이 명령을 Draw Primitive Call, DP Call이라고 한다


실습

유니티 환경에서 여러개의 오브젝트를 씬에 배치해봤습니다
Statistics을 통해 현재 Batches의 개수를 파악할 수 있습니다

오브젝트들을 한꺼번에 묶은 다음

Batching Static으로 만들어 줍니다

그다음 Player Setting에 들어가서 Static Batching을 체크해줍니다!

그리고 에디터를 실행해보면

Batches의 개수가 줄어든 것을 확인할 수 있음과 동시에 Saved by batcing의 개수가 늘어난 것을 볼 수 있습니다
이 말은 즉, 오브젝트들이 동일한 재질을 공유하기 때문에 batcing이 한 번에 일어난다는 뜻?으로 해석했습니다

오브젝트들은 Combined Mesh라는 Mesh를 할당받고 있습니다
결합된 메시는 씬을 시작할때 생성되며 런타임에서 추가적인 버텍스 연산을 하지 않아서 정적배칭은 동적배칭과 달리 단위 오브젝트의 버텍스 개수에 제한이 없다는 장점이있다고 합니다

+
드로우콜을 줄여서 얻는 이점과
정적배칭의 단점에는 무엇이 있을까?


참고자료

https://learnandcreate.tistory.com/507

유니티에서 정적배칭(static batching) 사용하기

유니티에서 정적배칭(static batching) 사용하기 정적배칭을 사용하면 움직이지않고(static) 동일한 재질을 공유하는 오브젝트들을 일괄 처리함으로써 드로우콜을 줄일수있다. 정적배칭을 활성화하

learnandcreate.tistory.com