Unity3D) Texture 최적화 (1)

이찬구·2023년 4월 23일
0

Unity3D

목록 보기
2/3

게임에서 Render 대상이 되는 대부분의 요소들에는 Texture가 사용되는데 각 Texture를 렌더링 할 때마다 Batch 카운트가 증가하게 되고, 이는 최적화를 고려할 때 가장 중요하게 봐야할 점 중 하나이다.

이를 가장 강력하고 직관적으로 해결할 수 있는 방법이 유니티에서 제공하는 Sprite Atlas이다.

Sprite Atlas는 여러 Texture를 하나의 Texture로 줄여 드로우콜을 최소화하는 데 유용하게 사용할 수 있는 기능이다.

예를 들어 씬에서 각기 다른 Sprite를 가진 4개의 Image를 배치했을 때, 4개의 이미지가 각각 한 번의 드로우콜이 발생하게 되면서, 총 4 + 1(화면 Clear) = 5개의 Batch Count가 측정된다

이 때 Sprite Atlas를 이용해서 Texture를 하나로 Packing하게 되면 Mesh를 그리는 데 필요한 드로우 콜이 1회로 감소한 것을 볼 수 있다.

이런 결과만 보고 단순하게 "모든 텍스쳐를 아틀라스에 넣으면 드로우 콜이 줄어드니깐 좋은 거 아닐까?" 라고 생각할 수 있다.

하지만 마냥 아틀라스로 묶는 게 좋은 방법은 아닌데, 묶인 이미지 중 하나만 부르는 경우에도 패킹된 전체 텍스쳐를 메모리에 로드하게 된다. 그러므로 같이 사용되는 텍스쳐들끼리만 묶어서 사용하는 게 바람직하다. (기타 여러 Case에 대해선 공부하면서 연구해보시길 추천드립니다.)

0개의 댓글