공부중

[Unity]새로워진 스프라이트 아틀라스(Sprite Atlas) 본문

Programing/Unity3D

[Unity]새로워진 스프라이트 아틀라스(Sprite Atlas)

곤란 2020. 3. 12. 05:34
반응형

구글링을 해도 새로워진 스프라이트 아틀라스에 관련 내용이 거의 없길래 정리해보려고 한다.

 

언제 이 기능이 추가되었는지는 자세히 모르지만 아래의 유튜브 영상을 보니 18년도에 나온것 같다.

https://www.youtube.com/watch?v=PEMsZDb3yPs

잘생기고 멋진 유니티 코리아 직원분께서 설명을 해주십니다. 

어줍잖은 제 설명보다는 백배 나을껍니다. 하하..

 

위의 영상을 보고 나중에 내가 다시 볼 목적으로 정리를 하려는 것이므로

머리속에 정리된 내용을 이 글에 주저리 주저리 적을예정입니다.

간단하게 아틀라스를 써서 얻게되는 장점은 드로우콜(Draw Call)을 줄일 수 있기 때문이다.

드로우콜(Draw Call)은 간단하게 이야기하면..

GPU에게 그림을 그려달라고 요청을 하는것이라고 보면된다.

그냥 무작정 요청하면 되지 않느냐 라고 생각할수 있는데 실생활에서 이와 비슷한 예를 들면.

 

자장면 100그릇을 중화요리점에 배달을 시키려고 한다.

다음중 빠르게 의사전달이 되는것은 어느것일까??

1) ( 전화를 한다 -> 자장면 한그릇 배달 부탁합니다. -> 전화 끊음 ) x 100 회

2) 전화를 한다 -> 자장면 100그릇 배달 부탁합니다. -> 전화 끊음

전화를 100번 걸어서 한그릇씩 전화하면 중화요리점에서 찾아와서 자장면 한그릇씩 집어 던질지도 모르겠다.

당연히 빠른것은 2)번 전화 한번을 통해서 자장면 100그릇 요청하기다.

스프라이트 아틀라스는 이렇게 GPU에게 요청하는 횟수를 줄임으로써 성능상의 장점을 얻을수 있다.

 

위의 스크린샷을 보면 총 17장의 그림을 띄우고 있고 Statistics에서 Batches가 17을 가리키는것이 보인다.

위의 상태는 스프라이트 아틀라스가 적용되어있지 않은 상태이며 GPU에게 17번 그림을 그려달라고 요청을 보낸것이라고 이해하면 되겠다.

 

이제 새로운 스프라이트 아틀라스는 어떻게 만드는지 보자.

Project Assets에서 우클릭후 Create > Sprite Atlas 를 선택한후 적절한 이름을 지어줍니다.

생성한 후 Inspector창에 보면 하단에 Objects for Packing이라고 있는 부분이 있는데 여기에 적용할 스프라이트들을 넣어주면 된다.

이런식으로 하나씩 넣어도 되지만

이렇게 폴더 째로 넣어도 된다고 한다 (개꿀)

 

하단의 Pack Preview 버튼을 누르면 자동으로 생성된 아틀라스 이미지들을 볼 수 있다.

지금 스크린샷에서 보면 총 4장의 아틀라스 이미지가 자동으로 생성된것을 볼 수 있다.

 

이렇게 스프라이트 아틀라스를 만들고 나서 위에서 살펴보았던 Batches를 보자

 

총 4장의 아틀라스 이미지에서 골고루 사용되어서 Batches가 4가 되어있는 모습이다.

이전의 17번 요청에서 4회로 줄은것을 확인 할 수 있다.

반응형