게임개발/스터디

[스터디] 스프라이트 아틀라스 Atlas 최적화 기법

감물 2024. 4. 10. 18:22

게임을 개발할 때 마다 머리를 아프게 하는 것이 있다. 바로 프레임이다. 개발을 잘 해놓고 프레임을 확인했을 때 30프레임 미만이 나오면 한숨부터 나온다. 오늘은 그 걱정을 덜어줄 최적화 기법을 소개하겠다. 바로 리소스 파일 최적화 기법인 Atlas 기법이다.

 

 

 

리소스 로드의 속도는 게임 프레임에 큰 영향을 끼친다. 코드를 아무리 잘 짰다고 해도 리소스라는 것은 개발자의 영역이 아니기 때문에 만약 이 리소스를 최적화 할 수 있다면 게임 프레임 개선에 정말 많은 도움이 될 것이다.

 

Atlas를 사용하는 장점은 드로우 콜(Draw Call)을 줄일 수 있기 때문에 사용한다. 드로우 콜(Draw Call)이란 간단하게 이야하기하면 GPU에게 그림을 그려달라고 요청하는 것이라고 보면된다. 그런데 드로우 콜과 아틀라스가 무슨 상관이 있냐라고 물어본다면 이렇게 답할 수 있겠다.

 

 

자장면 100 그릇을 중화요리점에서 배달을 시키려고 한다. 다음 중 빠르게 의사전달이 되는 것은 어느것일까?

1) (전화를 한다 > 자장면 한 그릇 배달을 부탁합니다 > 전화 끊음) * 100

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

 

전화를 100번 걸어서 한 그릇씩 전화하면 중화요리점에서 찾아와서 자장면 한 그릇씩 집어 던질지도 모르겠다. 당연히 빠른 것은 2)번 전화 한번을 통해 자장면 100그릇을 요청하기이다. Sprite Atlas는 이렇게 GPU에게 요청하는 횟수를 줄임으로써 성능상의 장점을 얻을 수 있다.

 

 

 

 

위의 그림을 보면 총 17장의 이미지를 띄우고 있고 Batches가 17이 되는것이 보인다. 위의 상태는 Sprite Atlas를 적용하지 않은 상태이며 GPU에게 총 17번 그림을 그려달라고 요청을 보낸것이라고 이해하면 되겠다.

 

 

 

 

아틀라스를 어떻게 만드는지 알아보자.

Create > Sprite Atlas를 선택해주고

 

 

 

하단에 Objects for Packing을 클릭해준다.

 

 

 

아틀라스를 적용할 스프라이트들을 차례로 넣어준다.

 

 

 

하단의 Pack Preview 버튼을 누르면 자동으로 생성된 아틀라스 이미지 확인할 수 있다. 그림에서 확인해볼 수 있듯이 지금 총 4장의 아틀라스 이미지가 자동생성된 것을 확인할 수 있다.

 

 

 

아틀라스를 만들고 나서 위에서 살펴본 Batches가 얼마나 나오는지 확인해보자.

 

총 4장의 아틀라스 이미지가 사용되어서 Batches가 4가 나오는 모습이다.

 

 

 

https://hannom.tistory.com/202

 

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

구글링을 해도 새로워진 스프라이트 아틀라스에 관련 내용이 거의 없길래 정리해보려고 한다. 언제 이 기능이 추가되었는지는 자세히 모르지만 아래의 유튜브 영상을 보니 18년도에 나온것 같

hannom.tistory.com