}

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이라고 한다


실습

etc-image-0

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

etc-image-1

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

etc-image-2

Batching Static으로 만들어 줍니다

etc-image-3

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

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

etc-image-4

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

etc-image-5

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

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


참고자료

https://learnandcreate.tistory.com/507

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

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

learnandcreate.tistory.com