개발/유니티

유니티 스프라이트 아틀라스란?

셩잇님 2023. 6. 12. 22:12
반응형

 

 

1. 스프라이트 아틀라스란?

Unity에서 스프라이트 아틀라스는 여러 스프라이트 이미지를 하나의 텍스처 아틀라스로 결합할 수 있는 기능입니다. 하나의 텍스처로 묶은 행위로 인해  GPU 리소스를 보다 효율적으로 사용할 수 있도록 합니다. 또한 아틀라스는 드로 콜 횟수를 줄이고 스프라이트 기반 그래픽의 메모리 사용량을 개선하여 렌더링 성능을 최적화하는 데 도움이 됩니다.

 

스프라이트 아틀라스에 스프라이트를 추가하면 낭비되는 공간을 최소화하는 방식으로 스프라이트가 아틀라스에 자동으로 패킹됩니다. 스프라이트 아틀라스 인스펙터에서 설정을 조정하여 스프라이트가 패킹되는 방식을 수동으로 제어할 수도 있습니다.

 

하나의 아틀라스로 패킹된 이미지들


2. 스프라이트 아틀라스의 특징
스프라이트 패킹: Unity에서 스프라이트 아틀라스를 생성할 때 여러 개의 개별 스프라이트 이미지를 추가할 수 있습니다. Unity의 스프라이트 패커는 이러한 스프라이트를 분석하여 단일 텍스처 아틀라스로 패킹하는 가장 좋은 방법을 결정합니다. 스프라이트를 서로 밀접하게 배열하여 공간 사용을 최적화하고 낭비되는 영역을 최소화합니다.

텍스처 아틀라스: 스프라이트 이미지가 단일 텍스처 아틀라스로 결합됩니다. 텍스처 아틀라스는 모든 개별 스프라이트 이미지를 한데 묶은 큰 이미지입니다. 아틀라스의 각 스프라이트는 원래 위치, 치수 및 기타 속성을 유지합니다.

런타임 사용: 스프라이트 아틀라스가 생성되면 게임이나 애플리케이션에서 사용할 수 있습니다. 개별 스프라이트 이미지를 참조하는 대신 아틀라스 내에서 해당 스프라이트를 참조합니다. 스프라이트 아틀라스의 렌더링과 관리는 유니티가 백그라운드에서 처리합니다.

3. 스프라이트 아틀라의 장점
드로우콜 감소: 여러 스프라이트를 단일 텍스처 아틀라스로 결합하면 스프라이트를 렌더링하는 데 필요한 드로우 콜 수가 줄어듭니다. 이 최적화는 특히 씬에 스프라이트가 많은 경우 렌더링 성능을 향상시킵니다.

메모리 최적화: 스프라이트 아틀라스는 여러 스프라이트 간에 텍스처 데이터를 공유하여 메모리 사용량을 줄이는 데 도움이 됩니다. 각 스프라이트 텍스처에 별도의 메모리를 할당하는 대신 단일 텍스처 아틀라스가 사용되므로 메모리 오버헤드가 줄어듭니다.

동적 일괄 처리: Unity의 렌더링 시스템은 스프라이트 아틀라스 내에서 스프라이트에 대해 동적 일괄 처리를 수행할 수 있습니다. 즉, 스프라이트가 동일한 머티리얼을 공유하는 경우 Unity가 자동으로 일괄 처리하여 렌더링 성능을 더욱 개선할 수 있습니다.

텍스처 압축 최적화: 스프라이트 아틀라스를 사용하면 텍스처 압축 설정을 더 잘 제어할 수 있습니다. 스프라이트를 단일 아틀라스로 결합하면 전체 아틀라스에 일관된 압축 설정을 적용하여 이미지 품질과 메모리 사용량 간의 균형을 최적화할 수 있습니다.

 

4. 결론
스프라이트 아틀라스는 개별 스프라이트가 많은 2D 그래픽을 많이 사용하는 게임 및 애플리케이션에 특히 유용합니다. 스프라이트 아틀라스를 사용하면 성능과 메모리 효율을 개선하여 게임플레이를 더욱 원활하게 하고 Unity 프로젝트의 전반적인 효율성을 높일 수 있습니다.

 

 

 

반응형

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

유니티 순운동학(Forward Kinematics, FK)란?  (0) 2023.06.12
유니티 역운동학(Inverse Kinematics, IK)란?  (0) 2023.06.12
월드 좌표계란?  (0) 2023.06.10
로컬 좌표계란?  (0) 2023.06.10
유니티 최적화 10가지 기법  (0) 2023.03.19