결국 gpu에 업로드하는 텍스쳐 수를 줄이는 것이다.
QuadBatch를 사용하여 줄일 수도 있지만 이것은 제약이 꽤 있어 범용적으로 쓰긴 힘들다.
-----------------------------------------------------------------------------------------
QuadBatch
-----------------------------------------------------------------------------------------
가장 좋은 방법은 스프라이트시트를 이용하는 것이다.
많은 이미지를 한장에 넣고 좌표정보를 이용하여 원하는 영역을 보여주면된다.
이를 위해서 Starling 에서는 TextureAtlas 를 이용하게 된다.
하지만 렌더링할 화면의 모든 것들이 한장의 스프라이트시트에 포함되면 좋겠지만
그러긴 힘든것이
1.일단 2048x2048의 크기 제한이 있고
2.스프라이트시트를 표현할 화면수만큼 만드는 것은 사실 불가능하고
3.비슷한 유형의 것들(배경,캐릭터,무기등등) 분류하여 스프라이트시트를 만드는것이 훨씬 더 효율적이기 때문이다.
하나의 화면을 그릴 땐 어쩔 수 없이 배경시트에서 산과 들판을 가져오고,
유닛시트에서 a유닛,b유닛을 가져오는 식으로 화면을 구성하게 되는데
필연적으로 draw call 이 늘어나게 된다.
이 때 만약 가져온 텍스쳐들을 gpu에 업로드하기전 다시 하나의 스프라이트시트를 동적으로 만들어
사용할 수 있다면 draw call을 줄일 수 있다.
아래 예제의 IMG불러오기 버튼을 눌러 이미지 파일들을 선택하게 되면
선택된 파일들은 텍스쳐로 바뀌어 드래그가 가능한 형태로 화면에 랜덤하게 뿌려지고
터치가 지원되거나 혹은 Z키를 누른다면 ZOOM 과 ROTATE 기능도 어설프지만 사용할 수 있다.
확실히 RenderTexture 나 QuadBatch 를 사용한 것은 아니란 걸 알 수 있다.
하지만 draw call은 어지간해선 올라가지 않는다.