텍스처 압축이 필요한 이유는 무엇입니까?
텍스처 압축 형식 이동
드라이 제품: Unity 게임 개발 이미지 텍스처 압축 프로그램
Creator 는 압축된 텍스처를 사용합니다.
일반적인 텍스처 및 텍스처 압축 형식
모바일 장치용 텍스처 압축 체계
다양한 모바일 GPU 압축 텍스처 사용
텍스처는 소프트웨어 개발, 특히 3D 어플리케이션에서는 어디에서나 볼 수 있지만 네트워크 환경 및 하드웨어 기능으로 인해 병목 현상이기도 합니다. 또한 일반적인 3D 응용 프로그램에서는 텍스처의 크기가 기본적으로 1/2 이상이며 모델에서는 2/3 을 초과하는 경우가 많습니다. 질감이 그림이 아니라고 말할 수 있을까요? 그렇게 중요한가요? 다음 두 개의 비교도는 전자가 너무 높다고 생각할지 모르지만, 정상인에게는 후자가 훨씬 낫다. 바로 텍스쳐가 뼈에 피부를 주어 우리의 응용이 더욱 사실적이고 현실에 더 가까워지게 하는 것이다.
상상이 되십니까? 위 모델 1 * * * 에는 세 가지 텍스처가 있는데 그 중 하나는 다음과 같은 효과가 있습니다.
텍스처 스티칭은 텍스처 압축의 시작이며, 서로 다른 압축 방법이 텍스처의 최종 크기에 미치는 영향도 두드러집니다. 예를 들어, 위의 텍스처는 압축 형식에 따라 크기가 크게 다릅니다. 원본 파일은 TGA 형식이고 Photoshop 을 통해 다른 형식으로 변환되며 기본 옵션입니다.
Png, jgp 등의 하드 드라이브 압축 방식과 달리 DXT, ETC 등의 텍스처 압축 방식은 게임 실행 중 CPU 압축을 풀지 않고 GPU 에서 직접 샘플링하여 메모리 및 대역폭 사용을 크게 줄이고 운영 효율성을 높일 수 있습니다. 특히 휴대폰 게임에 적합합니다.
1.DXT
DXT 는 Microsoft Direct 가 지원하는 손실 텍스처 압축 알고리즘입니다. DXT 의 형식은 DXT 1~DXT5 입니다. 여기서 DXT 1 과 DXT5 는 비교적 일반적이며 나중에 자세히 설명합니다. DXT 는 현재 가장 널리 사용되는 텍스처 압축 형식이며 모든 PC 측 비디오 카드는 DXT 압축을 지원할 수 있습니다. 위키피디아에 따르면 이 특허는 20 17 10 2 월 2 일까지 유효하다.
DXT 알고리즘은 이해하기 쉽고 전반적인 효과가 좋아 보입니다. 그러나 만약 당신이 일부를 폐쇄한다면, 당신은 많은 세부 사항이 손실될 수 있다는 것을 발견할 수 있습니다. 이것은 또한 알고리즘 자체가 초래한 것입니다. 결국 각 블록에는 두 가지 색상만 있고, 다른 색상은 이 두 색상의 차이다. 현재 영역에 다른 중요한 색상이 있으면 손실됩니다.
또 다른 문제는 DXT3 와 DXT5 의 대비입니다. DXT5 는 투명은 지원하지 않지만 투명은 지원하는 DXT 1 에 비해 두 배 (64 비트 이상) 더 큽니다. 이전 색상 보존 체계와 마찬가지로 두 가지 16 비트 색상과 해당 팔레트를 투명하게 저장하여 RGBA 에서의 효과를 보장했지만 DXT3 의 생각은 달랐습니다. 픽셀당 4bit 의 투명도를 절약하고 64bit 를 늘렸지만 지금은 16 개의 투명도 옵션만 있습니다. DXT5 에 비해 압축비는 동일하지만 투명 색상 처리가 섬세하지 않아 실용성에 DXT3 를 추천하지 않습니다.
DXT 는 디테일에 뚜렷한 흠집이 있지만 전체적인 효과는 좋다. 확실히 강력한 압축 방법이기 때문에 대부분의 텍스처 압축 선택 중 가장 좋은 방안으로 PC 에서 표준 압축 형식으로 간주될 수 있다. (데이비드 아셀, Northern Exposure (미국 TV 드라마), Northern Exposure (미국 TV 드라마)
2. PVR & 등등
아마도 특허와 상업적 관점에서 볼 때, 아마도 DXT 가 모바일 측에서 요구 사항을 충족시키지 못하는 것은 사실일 것이다. DXT 는 이동측에서 큰 지원을 받지 못했습니다. 대신 iOS 디바이스의 PVR 압축과 Android 의 ETC 압축을 지원합니다.
DXT 는 디테일에 뚜렷한 결함이 있습니다. 가장 중요한 이유는 텍스처가 4*4 픽셀 영역 블록으로 나누어질 때 각 블록이 독립적이기 때문입니다. 이렇게 하면 압축 알고리즘이 크게 단순화되지만 인접한 블록 간의 일반적인 유사성을 잃게 됩니다. 이는 알고리즘 자체에 의해 발생합니다. PVR 은 영역 블록의 오른쪽 아래 오른쪽 아래 세 영역 블록의 종속성을 고려합니다.
현실적으로 볼 때 특허와 하드웨어 업체의 지배를 받고 있으며, 우리는 선택의 여지가 별로 없다. 안드로이드에서는 ETC 를 사용하고, iOS 에서는 PVR 만 사용하고, PC 에는 DXT 가 없으면 조롱을 받을 것으로 예상된다. 하지만 이것도 어려운 문제다. 예를 들어, WebGL, 특히 Android 에서는 큰 차이가 있습니다. 텍스처 압축이 지원됩니까? 동일한 디바이스의 다른 브라우저에서도 드라이브 불일치로 인해 ETC 압축이 지원될 수 있지만 위챗 등의 QQ 브라우저는 지원되지 않습니다. 또한 화웨이 휴대전화는 브라우저 수준에서 ETC (하드웨어 지원 또는 구동 문제) 를 지원하지 않는 것 같습니다. 모바일 장치에서 압축할 필요가 없는 경우 메모리가 제한됩니다. 데이터 양에 희생이 이루어지지 않는 한, 어떻게 해결할 것인가는 모순적이다. 대조적으로, iOS 는 훨씬 편안합니다.
Unity 홈페이지는 각 플랫폼의 기본 텍스처 압축 형식에 대한 자세한 설명과 사용 권장사항을 제공합니다. 다른 모바일 GPU 플랫폼에서 GPU 가 지원하는 압축 텍스처를 선택하면 CPU 압축 해제 없이 GPU 에서 직접 샘플링할 수 있으며 CPU 메모리와 대역폭을 절약하고 스토리지 볼륨을 절약할 수 있다는 점에 유의해야 합니다. 대상 플랫폼이 설정된 압축 형식을 지원하지 않으면 텍스처는 RGBA32 또는 RGB24 로 압축 해제되고 CPU 시간과 메모리가 낭비됩니다.
몇 가지 주류지도 압축 알고리즘의 구현 원리를 참고하다.
IOS9(A8 아키텍처) 아이폰은 이미 ASTC 압축 형식을 지원했기 때문에 Apple 6 세대 전 휴대전화의 호환성 문제를 포기한다면 직접 사용할 수 있다. ASTC(4X4) 의 압축비는 PVRTC2/4 에 비해 0.25 로 증가하지만 디스플레이 효과가 훨씬 좋아 화면을 정사각형으로 설정할 필요가 없습니다.
게임 자산에 Astc 텍스처 압축을 사용하는 방법에 대해 자세히 설명하고 텍스처 유형에 따라 다른 압축 체계를 제공하는 몇 가지 권장 사항을 제공합니다.
1. 아라는 H5 게임에 압축 텍스처 (ETC, PVR 등) 를 사용할 수 있습니다. )?
Q: q: H5 게임은 압축 텍스처 (ETC, PVR 등) 를 사용할 수 있습니다. )?
A: 일부 브라우저는 지원하지 않을 수도 있습니다 (예: safari).
Q: 야라에서는 브라우저 (또는 플랫폼) 에 따라 서로 다른 압축 형식의 텍스처를 사용할 수 있습니까?
답: 현재 브라우저를 직접 얻을 수 있으니 직접 처리하시면 됩니다.
2.layarunt me 은 현재 ETC/DXT 또는 PVR 과 같은 형식을 지원합니까? 문서에서 이러한 설명을 찾을 수 없습니다.
LayaAir 은 현재 ETC/DXT/PVR 등의 형식을 지원하지 않습니다! LayaAir 의 버전 엔진 업데이트 로그에만 집중하면 지원한다면 바로 알려 드리겠습니다!
3.Egret 메모리 분석-이중 메모리 있음 -RES 가 리소스를 로드한 후 해제할 수 없는 문제.
Pvr 및 etc 를 지원할 계획입니다.