Transcoding from universal basis ETC1S to ETC2 RGB with punch-through alpha #477
-
When checking the libktx header file: The enum type ktx_transcode_fmt_e only supports ETC2_RGB, ETC2_RGBA. There is no mentioning of ETC_RGB with punch-through alpha.
Is it difficult to implement the punch-through alpha support? How fast does it compare to the existing ETC1/ETC2 transcoding? |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment
-
Source RGBA Basis ETC1S data is stored in two separate blocks that are transcoded independently: ETC1S RGB becomes ETC2 RGB (lossless repacking), while ETC1S Alpha becomes ETC2 A8 (simple transcoding). The two transcoded 64-bit blocks are then concatenated into a single ETC2 RGBA 128-bit block. Producing an ETC2 punch-through alpha blocks would be lossy and noticeably slower because it would require decoding and reencoding ETC1S data. |
Beta Was this translation helpful? Give feedback.
Source RGBA Basis ETC1S data is stored in two separate blocks that are transcoded independently: ETC1S RGB becomes ETC2 RGB (lossless repacking), while ETC1S Alpha becomes ETC2 A8 (simple transcoding). The two transcoded 64-bit blocks are then concatenated into a single ETC2 RGBA 128-bit block.
Producing an ETC2 punch-through alpha blocks would be lossy and noticeably slower because it would require decoding and reencoding ETC1S data.