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


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


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


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





TextureAtlas 예제는 


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


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


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


TextureAtlas 예제






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


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


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


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


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


TexturePacker 예제


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


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


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




For the better.


저작자 표시 비영리 동일 조건 변경 허락
신고
  1. 메타콰이어 2012.11.15 15:10 신고

    오오 드디어~!~! ㅎㅎㅎ
    멋져요 ㅋㅋㅋㅋㅋㅋ

  2. scarkoo 2012.11.16 11:44 신고

    안녕하세요. 우야꼬님~
    개별 텍스쳐는 압축된 형태로 로드해서 RenderTexture에 그리시는 건가요?

    • Favicon of http://wooyaggo.tistory.com 우야꼬  2012.11.16 11:50 신고

      atf일수도 있고 png 일수도 있죠.

      일단 Image로 감싸고 RenderTexture에 찍습니다.

      Texture를 바로 찍을 수 있음 좋은데 아직 방법을 못 찾았네요 ㅎㅎ

  3. 2012.11.18 22:15

    비밀댓글입니다

    • Favicon of http://wooyaggo.tistory.com 우야꼬  2012.11.18 22:24 신고

      아마 다른 우야꼬님이랑 헷갈리신거 같아요.
      간혹 블로그 잘못 찾아오시는 분이 있어요 ㅎㅎ

  4. Favicon of http://lpesign.tistory.com LPesign 2012.12.24 16:55 신고

    구현완료! -_-v

+ Recent posts