[텍스처 최적화]스프라이트 아틀라스 사용법

2022. 6. 16. 11:15·STUDY/유니티

- Texture 또는 Material이 다를 경우 별도의 Draw call이 된다. 

유니티는 씬의 Texture 또는 Material에 대해 별도의 Draw call을 발행합니다.

 

참고로 Draw call은 실시간으로 카메라를 통해 한 프레임의 화면을 만들어 내는 동안에 CPU가 GPU에게 오브젝트를 그려라 라는 명령을 내리는 것입니다. 이 DrawCall이 늘어나게되면 자동으로 GPU가 할 일이 늘어나게되며 성능이 떨어지게됩니다.

 

이런 경우에는 스프라이트 아틀라스를 써서 줄이는 방법이 있습니다. (2D 프로젝트에만 적용가능)

 

스프라이트 아틀라스(Sprite Atlas) 는 여러 개의 텍스처를 단일 텍스처로 결합하는 에셋입니다. Unity는 여러 개의 드로우 콜을 발행하는 대신 이러한 단일 텍스처를 호출함으로써 하나의 드로우 콜을 발행할 수 있습니다. 

 

 

먼저 아틀라스를 만들기위해서는 ProjectSetting에 들어가서 SpritePacker의 Mode를 disable이 아닌 always Enabled로 바꿔줍니다.

 

 

그리고 프로젝트 창에서 Create- 2D-Sprite Atlas를 눌러줍니다. ( 왜인지는 모르겠지만 Sprite Atlas를 생성하는 버튼의 위치가 바꼈습니다.)

 

그리고 해당 material(image)가 있는 폴더를 Objects for Packing에 추가 후 Pack Preview 를 해줍니다.

Pack Preview를 하게되면 오른쪽과 같은 화면이 나오게됩니다.

 

Sprite Atlas를 하기 전
Sprite Atlas를 하고난 후

다시 플레이를 해보면 Batches(Draw call + SetPass call)가 폴더안에 있는 이미지들을 하나로 묶어 표현한만큼 기존 4에서 1이 되었습니다.

 

 

현재 3D프로젝트를 하고있는입장에서.. 2D프로젝트에서만 쓰이는게 너무 아쉽긴하지만 Batches의 중요성을 깨닫게되면서 만약 제가 2D프로젝트를 하게된다면 최적화할때 유용하게 써먹을것같습니다.

 

'STUDY > 유니티' 카테고리의 다른 글

[C#] null을 비교하기위한 여정2, is 와 FakeNull  (0) 2023.01.21
[C#] null을 비교하기위한 여정1, ==와 Equals()  (0) 2023.01.18
[Unity] 메지카복셀에서 내가 만든 캐릭터 유니티로 불러오기  (0) 2022.09.10
[Unity] C# 문자열보간  (0) 2022.08.02
[UniRx] UniRx에 대해서 알아보기  (0) 2022.08.02
'STUDY/유니티' 카테고리의 다른 글
  • [C#] null을 비교하기위한 여정1, ==와 Equals()
  • [Unity] 메지카복셀에서 내가 만든 캐릭터 유니티로 불러오기
  • [Unity] C# 문자열보간
  • [UniRx] UniRx에 대해서 알아보기
wise_
wise_
  • wise_
    WHY'S BlOG
    wise_
  • 전체
    오늘
    어제
    • 분류 전체보기 (63)
      • PROJECT (19)
        • 젯슨나노 프로젝트 (0)
        • 유니티 (9)
      • STUDY (37)
        • 코딩문제 (13)
        • 알고리즘 (0)
        • Effective C++ (14)
        • 유니티 (8)
        • 언리얼 (2)
      • ERROR (7)
        • 오류덩어리들 (7)
      • REVIEW (0)
      • LIFE (0)
        • 작고 소중한 내 일상 (0)
        • 작고 귀여운 내 취미 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    윈터데브캠프
    백준
    게임개발
    여우는오늘도친구를구한다
    와이즌
    유니티
    스마일게이트
    힐링게임
    귀여운
    인디게임
    c#
    ==
    wisen
    unity
    모바일게임
    개발일지
    TheFoxSeeksFriend
    코딩
    게임
    error
    1인개발
    힐링
    null
    깊이우선탐색
    언리얼
    플로이드와샬
    알고리즘
    퍼즐게임
    개발
    C++
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
wise_
[텍스처 최적화]스프라이트 아틀라스 사용법
상단으로

티스토리툴바