Unity 개발/기술 향상

[Unity] 텍스처 압축

내공부방 2024. 7. 23. 22:16
반응형

 

출처 : [유니티 TIPS] 알쓸유잡 | 효율적인 텍스처 압축 이해하기& 꿀팁 (youtube.com)

 

Unity에서 알려주는 텍스처 압축 강의를 보고 내용 정리를 진행했다

 

1. 이미지 파일 형식 및 압축 설명 

  • 텍스처는 RGB 알파 채널에서 채널당 8비트에서 4 파일을 합쳐 32비트의 이미지를 보여준다.
  • 이미지를 GPU 용량을 사용하여 그래픽스 렌더링 하려면 PNG와 JPG 이미지를 사용할 수 있으며, 두 형식은 손실 압축과 약 손실 압축의 차이가 있다고 한다.

** 잠깐 PNG와 JPG 이미지의 차이점을 간단하게 알아보자 ** 

비교

특징  PNG JPEG
압축 방식 무손실 압축 손실 압축
알파 채널 지원 지원하지 않음
컬러 깊이 최대 32비트 (24비트 컬러 + 8비트 알파) 24비트 컬러
파일 크기 상대적으로 큼 상대적으로 작음
용도 고품질 그래픽, 투명 텍스처 사진, 일반 이미지

선택 가이드

  • 투명도나 고품질이 중요한 텍스처의 경우 PNG를 사용하는 것을 추천!
  • 파일 크기를 줄이고자 하거나 투명도가 필요 없는 경우 JPEG를 사용하는 것을 추천!

Unity에서의 사용 예시

  • PNG: 게임 내 아이콘, UI 요소, 투명 텍스처 (예: 캐릭터의 그림자, 반투명 물체 등)
  • JPEG: 게임 내 배경 이미지, 큰 사진, 디테일이 필요한 이미지가 아닌 일반 텍스처

 

2. 가변 비율 압축 vs 고정 비율 압축 

- 고정 비율 압축 

고정 비율 압축은 모든 텍스처 데이터를 일정한 비율로 압축하는 방식입니다. 대표적인 예로는 DXT (DirectX Texture Compression) 또는 S3TC (S3 Texture Compression)와 같은 압축 방식

 

장점

  1. 일관된 메모리 사용량: 압축된 텍스처의 크기가 일정하므로, 메모리 사용량을 예측하기 쉽다.
  2. 빠른 압축 및 해제: 고정된 비율로 압축되므로, 압축 및 해제 속도가 빠르다.
  3. 광범위한 하드웨어 지원: 대부분의 GPU에서 지원되므로 호환성이 높다.

단점

  1. 품질 저하: 모든 부분에 동일한 비율로 압축을 적용하므로, 특정 부분의 품질이 크게 저하될 수 있다.
  2. 효율성 부족: 텍스처의 복잡도에 관계없이 동일한 비율로 압축되므로, 단순한 부분에서도 불필요하게 메모리를 많이 사용할 수 있다.

- 가변 비율 압축 

가변 비율 압축은 텍스처의 각 부분을 다르게 압축하는 방식입니다. 텍스처의 세부 사항이나 중요도에 따라 압축 비율이 달라질 수 있습니다. 대표적인 예로는 ASTC (Adaptive Scalable Texture Compression)와 같은 방식이 있습니다.

 

장점

  1. 품질 유지: 중요한 세부 사항이나 복잡한 부분은 더 낮은 압축 비율을 적용하여 품질을 유지할 수 있다.
  2. 효율적 메모리 사용: 단순한 부분은 더 높은 압축 비율을 적용하여 메모리를 절약할 수 있다.
  3. 유연성: 다양한 비율로 압축을 적용할 수 있어, 텍스처의 특성에 따라 최적의 압축 비율을 선택할 수 있다.

단점

  1. 복잡한 알고리즘: 압축 및 해제 알고리즘이 더 복잡하여 처리 속도가 느려질 수 있다.
  2. 예측 불가능한 메모리 사용량: 압축된 텍스처의 크기가 일정하지 않으므로, 메모리 사용량을 예측하기 어렵다.
  3. 제한된 하드웨어 지원: 일부 구형 GPU에서는 지원하지 않을 수 있다.

결과적으로 내용을 요약해보자면!!!! 

  • 고정 비율 압축: 일관된 크기, 빠른 처리 속도, 광범위한 호환성을 제공하지만, 품질 저하와 비효율적인 메모리 사용의 단점이 있다.
  • 가변 비율 압축: 더 나은 품질과 효율적인 메모리 사용을 제공하지만, 복잡한 처리 알고리즘과 예측 불가능한 메모리 사용량의 단점이 있다.

그렇다면 텍스쳐를 설정하는 방법?? 설정된 것을 확인할 수 있는 방법은 아래와 같다!!

텍스쳐를 클릭하고 Inspector를 확인하면 아래 이미지를 볼 수 있다

포맷 형식을 눌러 각기 다르게 설정할 수 있고 또 확인할 수 있다!

 

가변인 ASTC로 했을 경우 차이점은 아래와 같다! (강의 중 이미지 캡쳐)

숫자가 작을수록 더 높은 품질(낮은 압축 비율)을 의미

 

결과적으로 기존 시스템에서는 DXT와 ETC가 여전히 중요한 역할을 하고 있지만!! 

모바일, PC 및 콘솔, 최신 그래픽 응용 등 요즘 널리 사용되고 있는 포맷 방식은 ASTC 이다! 

반응형