You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In ETC1S, the mode is always differential (diff bit=1), the Rd, Gd, and Bd color deltas are always (0,0,0), and the flip bit is always set. ETC1S blocks are specified using the 15-bit 555 base color (called "color endpoints" in this specification, which is terminology derived from our BC1 texture format systems), the 3-bit intensity table index, and the 4x4 texel array of 2-bit selector indices (which are called "pixel index bits" in the Khronos ETC1 specification).
the flip bit is encoded as 0 — the subsets are identical anyway.
I mean, it doesn't matter much in practice. As Khronos says, both halves of the 4×4 block have the same base color regardless of flip-ness. But as someone writing an ETC1S encoder, I was momentarily confused on what to output and this wiki page ranks pretty highly when doing a web search for "etc1s specification".
// Setting the flip bit to false to be compatible with the Khronos KDFS.
block.set_flip_bit(false);
Relatedly, the Khronos spec also sas that "The [3 bit] Table codeword for each subblock is identical" but this wiki page also doesn't explicitly mention this constraint, unless you count the "the" (meaning unique) in "the 3-bit intensity table index".
The text was updated successfully, but these errors were encountered:
Thanks - I've changed our wiki spec to say: "In ETC1S, the mode is always differential (diff bit=1), the Rd, Gd, and Bd color deltas are always (0,0,0), and the flip bit is always not set (not that this matters in practice)."
I'll re-read our spec vs. the Khronos doc and see if I can make things more clear/consistent.
https://github.com/BinomialLLC/basis_universal/wiki/.basis-File-Format-and-ETC1S-Texture-Video-Specification
says (emphasis added)
The Khronos spec says
I mean, it doesn't matter much in practice. As Khronos says, both halves of the 4×4 block have the same base color regardless of flip-ness. But as someone writing an ETC1S encoder, I was momentarily confused on what to output and this wiki page ranks pretty highly when doing a web search for "etc1s specification".
BasisU code also emits flip bit = 0:
basis_universal/transcoder/basisu_transcoder.cpp
Lines 7853 to 7855 in c71b173
Relatedly, the Khronos spec also sas that "The [3 bit] Table codeword for each subblock is identical" but this wiki page also doesn't explicitly mention this constraint, unless you count the "the" (meaning unique) in "the 3-bit intensity table index".
The text was updated successfully, but these errors were encountered: