Supported Compressed Texture Formats in PVRTexTool#
PVRTexTool can be used to encode texture data to a variety of compressed texture formats. These are:
PVRTC - PowerVR Texture Compression is PowerVR’s own lossy texture compression scheme. It uses a sophisticated amplitude modulation algorithm to encode textures; the data is encoded as two low-resolution images along with a full-resolution, low-bit-precision modulation signal. PVRTexTool supports PVRTC versions 1 and 2, including 2bpp and 4bpp encoding modes. PVRTC is supported by the OpenGL ES and Vulkan graphics APIs.
ETC - Ericsson Texture Compression is a lossy texture compression scheme developed by Ericsson Research. ETC1 lacks alpha component support, which was rectified with the release of the ETC2 scheme. The EAC format is used for one- or two-channel data and also allows for signed integer data. ETC formats are supported in OpenGL ES and Vulkan graphics APIs. PVRTexTool supports ETC1, ETC2 and EAC.
ASTC - Adaptive Scalable Texture Compression is a lossy block-based texture compression format developed by Arm. ASTC is supported in OpenGL ES and Vulkan graphics APIs. PVRTexTool supports encoding to the standard ASTC block sizes, in the range 4x4 to 12x12 texels for 2D textures, and 3x3x3 to 6x6x6 texels for 3D textures. Each block is fixed at 128 bits (16 bytes), therefore larger block sizes result in smaller file sizes at the cost of image quality, due to the reduced bits available per pixel. PVRTexTool also facilitates encoding floating point texture data to ASTC HDR (high dynamic range).
BASISU - PVRTexTool currently supports the ETC1S and UASTC formats, these so-called ‘super-compressed’ formats are not consumable by the GPU directly, but rather designed to be intermediate compression formats that can be quickly transcoded to GPU compressed formats such as PVRTC, ETC, and ASTC. One key benefit of these formats is flexibility, the decision of which compressed format to use can be deferred, with the appropriate compressed format selected at application runtime based on the device’s hardware.
YUV - PVRTexTool supports a variety of interleaved, semi-planar and planar YUV 4:4:4, 4:2:2 and 4:2:0 formats. Specifically, it supports the encoding, decoding and viewing of all Vulcan YUV and most DirectX YUV formats.