빙수달 게임 개발 노트

[Unity] 아틀라스 텍스처(Atlas Texture) 본문

Devpedia : Game

[Unity] 아틀라스 텍스처(Atlas Texture)

빙수달 2025. 1. 7. 14:27

(1) 아틀라스 텍스처(Atlas texture)란?

  유니티(Unity)에서 아틀라스(Atlas)는 여러 개의 스프라이트(Sprite)를 한 장의 큰 텍스처에 모아놓은 것이라고 볼 수 있다. 쉽게 설명하자면, 에셋스토어에서 스프라이트를 다운받은 후, 아래 사진처럼 이미지를 더블클릭하면 여러 개의 이미지가 조각나서 또 나타나는 것을 볼 수 있다. 이것을 하나로 묶어준 것이 아틀라스이다.

  유니티에서는 스프라이트 팩커(Sprite Packer)라는 툴을  통해  아틀라스를  제작하고  사용할 수 있다. 각 스프라이트 별로 어떤 아틀라스에 묶일지 태그를 지정해주면, 이 스프라이트 팩커가 알아서 태그 별로 묶어 최적의 아틀라스를 생성해준다.

  게임에는 UI와 배경, 캐릭터, 이펙트 등 수많은 텍스처들이 사용되는데, 각 텍스처 별로 렌더링할 때마다 한 번의 드로우콜(Drawcall)이 발생하게 된다. 때문에, 단순 계산해서 게임 내에 UI 요소들(UI 배경 이미지, 버튼 이미지, 각 콘텐츠 이미지 등) 별로 별도의  텍스처로 나누어져 있다면, 총 20개의 UI 요소가 있다고 가정했을 때, 20번의 드로우콜이  발생하게  된다. 그런데 이 20개의 각각의 텍스처들을 한 장의 텍스처에 모아놓고 CombineChildren컴포넌트 (하위 오브젝트를 하나로 통합)를 사용한다면 드로우콜이 1로 줄어드는 기적도 볼 수 있을 것이다. 게임의 퍼포먼스에 드로우콜이 얼마나 큰 영향을 미치는지 고려하면 아틀라스의 사용은 선택이 아니라 필수이다.