[ 이 게시물에서 사용된 모든 이미지의 저작권은 (주)아이언트리 에게 있습니다. ]


이전 포스트에서 올렸던 Bin Packing 을 이용해서


여러개의 Texture를 하나의 RenderTexture로 만들어서 사용하는 모듈을 만들었습니다.


(소스 공개는 나중에 게임 오픈하고 나면 그때 풀께요 ㅋㅋㅋ)





TextureAtlas 예제는 


a.png/a.xml, b.png/b.xml, c.png/c.xml 이 세개의 atlas texture를 가지고 각각 하나씩 오브젝트를 가져와서 배치한 예제입니다.


오른쪽에 Stat 에서 볼 수 있듯이 draw call 이 3으로 표시됩니다.


각각 텍스쳐가 따로 gpu에 올라가있으니까 당연한거죠.







오늘 만든 TexturePacker를 이용해서 사용할 경우


각 텍스쳐에서 필요한 텍스쳐만 모아다가 하나의 RenderTexture에 뿌려놓고 사용하는 로직을 타게 됩니다.


오른쪽에 보다시피 draw call 이 1로 되어 있습니다.


만약 이렇게 모은 RenderTexture가 2048x2048을 넘을 경우 여러장의 RenderTexture를 핸들링하게 되어 있습니다.


아무튼 훌륭하게 동작하네요 ㅋ



Draw call 줄이는게 능사는 아니지만


메모리도 줄어드는거보니 뿌듯하네요 ㅎㅎ


초기화 퍼포먼스가 얼마나 느려지는지 궁금하긴 하지만 일단 여기서 만족 :D




For the better.


+ Recent posts