유니티에서 CombineMeshes 함수를 사용하여 드로우콜 수치 낮추기 CombineMeshes 함수를 이용하여 다중 메시를 단일 메시로 결합할수있다. 1)프로젝트의 동적배칭 및 정적 배칭을 비활성화하고 아래와 같이 씬을 구성하였다. 2)씬을 구성하는 오브젝트들은 같은 재질을 공유하여 오브젝트의 수와 동일한 수치의 batches를 표시하고있다. 3)새로운 게임오브젝트를 생성하고(parent) 개별적으로 존재하는 오브젝트들을 parent의 하위에 위치시킨다(child) 4)parent 게임오브젝트에 mesh filter, mesh renderer 컴포넌트를 추가한다. 결합한 메시와 재질을 할당하는데 사용된다. meshrenderer에 child 게임오브젝트와 같은 재질을 할당한다. 5)스크립트를 작성하여..
유니티에서 동적배칭 사용하기(dynamic batching) dynamic batching은 런타임에서 매 프레임마다 동적 배칭이 가능한 오브젝트들에 대해 일괄처리하여 드로우콜을 줄일수있다. 다이나믹 배칭을 활성화하면 유니티가 자동적으로 같은 재질을 공유하는 오브젝트들(버텍스의 개수가 적은)의 버텍스를 모아서 한번에 처리한다. 정적 배칭은 메모리 오버헤드를 발생시키는데 반해 런타임에서 매 프레임마다 버텍스 연산을 수행하는 동적 배칭은 CPU 오버헤드를 발생시킨다. 동적 배칭은 정적 배칭과 마찬가지로 게임 오브젝트들이 독립적으로 컬링될수있다는 장점을 가진다. docs.unity3d.com/Manual/DrawCallBatching.html 1)유니티에서 다이나믹 배칭은 기본적으로 비활성화되어있다. 이 기능..
유니티에서 정적배칭(static batching) 사용하기 정적배칭을 사용하면 움직이지않고(static) 동일한 재질을 공유하는 오브젝트들을 일괄 처리함으로써 드로우콜을 줄일수있다. 정적배칭을 활성화하면 씬을 시작할때 동일한 재질을 공유하는 정적 오브젝트들(static objects)을 결합하여 하나의 공유된 버텍스와 이를 위한 인덱스 버퍼를 구축한다. 오브젝트들은 공유된 지오메트리와 재질을 사용하기때문에 드로우콜 사이의 상태변경을 거의 일으키지않으며 결과적으로 batches 및 드로우콜의 개수를 줄일수있다. docs.unity3d.com/Manual/DrawCallBatching.html 1)새로운 씬에서 라이트를 제거하고 카메라의 clear flags를 solid color로 변경하였다(batches..