m = M * (1-t) + t r = R * m g = G * m b = B * m

`rgb`

values lower than the threshold result in `m`

set to `t`

, and therefore `M`

is set to 0. I’ve just corrected the typo in the previous section. The idea is that the `M`

factor is fixed and the color is fully represented with the `rgb`

components.

“That’s is equivalent to just doing:

m = max(r,g,b,t)

R = r/m

G = g/m

B = b/m

M = (m-t) / (1-t)”

Wouldn’t this just result in any color value less than the threshold being encoded with an M value of 0, thus appearing as full black, rather than being encoded with the expected M value of 1 from the previous section? In that case it seems the math wouldn’t be equivalent to the two blocks above it.

]]>Group “x” bits to form the row size based on the vertex cache, and group “y” bits to decide the size of tiles of output.

]]>