Ryg pointed out that there are a few very important little details that I took for granted and didn't mention in my
original DXTC postings , or was just not
clear about :
One is that when I try all ways of hitting two given endpoints, I try both 4-color and 3-color versions. That is, given two endpoint
colors C0 and C1, I quantize them to 16 bits, then try the DXT1 palette that you get from {C0,C1} and also the one from {C1,C0} (order
of DXT1 determines whether it is 3-color or 4-color).
The second and related crucial thing, is that in 3-color mode, the extra color is transparent black. If the texture has no alpha at all,
I assume the user will not be using it as an alpha source, so I treat the transparent black as just black. That is, I do color palette
selection with alpha just ignored.
Apparently this is pretty important. I suspect this especially helps with the "4 means" method; if a
bunch of the colors are near black, you want them to be classed together and then just ignored for the endpoint selection, so that they will
go to the hard-coded black in 3-color mode and your interp end points will be chosen from the remaining colors.
"09-08-09 - DXTC Addendum"
No comments yet. -