Unity3D) Texture 최적화 (2)

이찬구·2023년 4월 23일
0

Unity3D

목록 보기
3/3

Texture 최적화에 대한 2번째 이야기를 해보고자 한다.
저번 1편에서는 Sprite Atlas를 사용해서 드로우 콜을 감소시키는 방법에 대해 정리해보았다.
오늘 정리해볼 건 드로우콜이 늘어나는 여러 상황에 대해 확인해보자.

패킹은 되었지만 드로우콜이 분리되는 경우

같은 아틀라스에 패킹된 텍스쳐를 불러오더라도 드로우콜이 분리되는 경우가 꽤 있다. 아래 예시를 통해 알아보도록 하자.

Frame Debugger를 통해 해당 씬에서 Mesh에 대한 Draw Call이 2회 발생한 것을 볼 수 있다.
현재 씬 위의 4개 텍스쳐는 Sprite Atlas를 통해 하나의 Texture로 패킹되어있는데 왜 이런일이 발생한걸까?
문제가 발생한 이유는 각 이미지에 대한 Material이 다르기 때문이다.

현재 삼/사각형은 같은 Material을 사용하고, 원형과 원통형은 같은 Material을 사용하고 있어 총 2개의 Material을 사용 중이다. 유니티는 같은 Material을 사용할 때 한 번에 Draw(Batching)할 수 있으나, 다른 Material에 대해선 얄짤없이 새로 그려야 한다.

또한 위에 같은 UI Component를 사용하게 되면 캔버스 단위로 그려지기 때문에 캔버스를 늘리면 최소한 늘린 개수 만큼 드로우콜이 증가하게 된다.

기타 여러 내용은 너무 많기도 하고 방대해서 더 잘 정리되어 있는 링크를 공유한다.
(링크 : https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=2983934&logNo=221383193733)

0개의 댓글