그래서 텍스처를 만들었습니다. RGB를 BC7 압축으로 저장했습니다. 그런 다음 다양한 그레이 스케일 수준의 알파 채널 [스페 큘러 맵]을 추가하고 BC7 압축으로 파일을 RGBA로 다시 저장했습니다. 결과 파일은 알파가없는 파일과 크기가 같지만 추가 정보 인 알파 채널을 포함합니다. 어떻게 가능합니까? “내가 이해 한대로 케이크를 먹고 케이크를 먹을 수 없습니다. 따라서 동일한 크기를 보장하기 위해 어떤 절충안이 있습니까?
인텔 DDS 플러그인과 함께 포토샵을 사용하고 있습니다.
답변
BC7은 항상 효과적으로 4 개의 채널을 인코딩합니다. 이것이 형식의 특성의 일부입니다. 알파를 켜면 압축기가 소스 이미지의 알파 값을 읽고 사용하지만 그게 전부입니다.
BC7은 각각 4x4를 압축하므로 주어진 차원의 모든 BC7 압축 이미지는 동일한 크기를 갖습니다. 텍셀 그룹을 128 비트로 변환합니다. 그러나 이것이 동일한 품질 을 갖는 것은 아닙니다.
BC7은 적응 형 인코딩 형식입니다. 각 블록은 고정 된 크기 (공간 및 비트 모두)를 가지고 있지만 각 블록은 블록이 실제로 압축하는 채널 수와 이들이 서로 상관하는 방식을 저장합니다. 사양은 복잡하지만 일반적인 장점은 압축기가 특정 블록에 가장 적합한 압축 방식을 블록별로 파악한다는 것입니다. 압축기가 블록을보고 모든 텍셀에 대한 알파가 1.0 인 것을 확인할 수 있다면 128 비트 중 더 많은 비트를 색상에 사용하고 더 적은 수의 알파를 사용할 수 있습니다.
그러므로 텍스처는 " 알파가없는 "는 모든 텍셀의 알파가 1 인 알파가있는 텍스처와 똑같습니다.이 블록은 대부분의 텍셀의 알파가 아닌 부분의 비트, 압축 해제 기가 알 수 있도록하는 " mode " 필드에서 몇 비트 만 낭비합니다. 알파는 상수 1.0입니다.
이것은 또한 텍스처에 다양한 알파가 있지만 일부에 상수 알파가있는 경우 BC7은 이러한 상수 알파 영역을 더 적은 비트로 인코딩 할 수 있으므로 색상 인코딩을 개선하는 데 비트를 사용할 수 있습니다.
따라서 두 개의 압축 스위치가 동일한 바이트 수로 나왔기 때문에 문제가 있다고 느끼면 안됩니다.
답변
여기에 AR이 있습니다. BCn 형식에 대한 정보 : 클릭하세요 . 이 사이트에서 활발히 활동하는 Nathan Reed가 작성했습니다. 그래서 그는 아마도 당신이 알아야 할 모든 것을 설명 할 것이라고 생각하지만, 그는 당신의 질문에 더 자세한 내용으로 답할 것입니다.
당신의 질문과 가장 관련이있는 부분은 기사 :
BC는 블록 압축을 의미하며 BCn 형식은 모두 4×4 픽셀 블록. 모든 이미지는 이러한 작은 블록으로 분할되며 각 블록은 자체 포함되어 있습니다. 디코딩 할 데이터는 모두 메모리에서 하나의 연속 된 청크에 있습니다. . 또한 각 압축 블록의 크기는 사용중인 BCn 형식에 따라 8 바이트 또는 16 바이트 로 고정됩니다. 이는 소스 이미지가 8 비트 RGBA 형식 인 경우 4 : 1 또는 8 : 1 압축 비율을 나타냅니다.
픽셀의 경우 개수가 변경되지 않고 텍스처의 크기도 변경되지 않습니다. 그러나 사용하는 채널이 많을수록 ( Microsoft 문서 에 따라 BC7에서는 3 개와 4 개만 지원함) 색상 채널당 저장할 수있는 정보가 줄어 듭니다. 블록. 즉, RGB 대신 RGBA를 사용할 때 압축으로 인해 더 많은 정보가 손실됩니다.