Develog
로그인

[Unity] Sprite Atlas

muchan
muchan
∙2026년 5월 16일∙조회 14
Unity
유니티 공부 기록
본문 로딩 중...
이전 글[Unity] Input System(2)
다음 글[Unity] 3D 타일 연습
0
muchan

게임 버그도 콘텐츠입니다.

새 글이 올라오면 Develog 알림으로 알려드려요

댓글 0

개요

게임에서 많은 스프라이트를 사용할 경우 렌더링 성능 문제가 발생할 수 있다

특히 모바일 게임이나 UI 요소가 많은 프로젝트에서는 Draw Call 증가로 인해 프레임 저하가 발생하기도 한다

Unity에서는 이러한 문제를 줄이기 위해 Sprite Atlas 기능을 제공한다


Draw Call이란?

일단 문제가 되는 Draw Call이란 CPU가 GPU에게 보내는 렌더링 요청 하나를 Draw Call이라고 한다

요청이 많아지면 시키는 일이 많아져서 성능이 떨어지기 때문에 Draw Call은 적을수록 좋다

Unity에서 왜 중요할까?

예를 들어 이미지 100개가 각각 다른 텍스처를 사용하면

csharp
텍스처 A 사용
→ 그림

텍스처 B로 교체
→ 그림

텍스처 C로 교체
→ 그림

이런 식으로 계속 상태를 바꿔야한다

이 상태 변경 비용이 크기 때문에 Draw Call이 많아지면 프레임 드랍이 발생할 수 있다

모바일 환경에서는 비용 체감이 더 크게 느껴진다


Sprite Atlas

위의 문제를 해결하기 위해 Sprite Atlas는 여러 이미지를 하나의 텍스처로 합쳐준다

원래 아래와 같은 예제라면

csharp
플레이어.png
몬스터.png
아이템.png

Sprite Atlas 사용 후

plain text
atlas.png 안에 전부 포함

이런식으로 되는 것이다

GPU 입장에서는 텍스처 안 바꿔도 되네? 상태가 되는 것

결과적으로

  • 텍스처 변경 감소
  • Draw Call 감소
  • 성능 향상

으로 이어지는 것


Draw Call이 많아지는 원인

  • 서로 다른 Material 사용
  • 서로 다른 Texture 사용
  • Shader 다름
  • UI 요소 많음
  • 개별 Sprite

등이 있다.


나중에 프로젝트할 때 실제 써보는 연습을 해보고자 한다.

 

댓글 0

댓글을 작성하려면 로그인이 필요합니다.

아직 댓글이 없습니다. 첫 번째 댓글을 작성해보세요.

관련 글

[Unity] 제네릭의 컴파일

[Unity] 제네릭의 컴파일

ㅇㅇ

10월 7일42
[Unity] 제네릭과 가변성(variance)

[Unity] 제네릭과 가변성(variance)

제네릭과 가변성

10월 6일821
[Unity] IEnumerator 개요

[Unity] IEnumerator 개요

코루틴에이저포에버

10월 6일4
[Unity] 제네릭의 컴파일
Unity

NEW[Unity] 제네릭의 컴파일

ㅇㅇ

KYO
KYO
420
KYO
KYO
∙10월 7일
420
[Unity] 제네릭과 가변성(variance)
Unity

[Unity] 제네릭과 가변성(variance)

제네릭과 가변성

KYO
KYO
821
KYO
KYO
∙10월 6일
821
[Unity] IEnumerator 개요
Unity

[Unity] IEnumerator 개요

코루틴에이저포에버

KYO
KYO
400
KYO
KYO
∙10월 6일
400