BC7 has a weakness: There’s only a single alpha mode that supports 2 subsets (mode 7). And it assumes alpha is correlated with RGB. The other alpha modes are only 1 subset modes, so they can’t handle complex RGB blocks well.
-
Show this thread
-
So if the block has uncorrelated alpha and is complex enough in RGB, there’s not a lot you can do. Either RGB suffers or alpha suffers.
2 replies 1 retweet 1 likeShow this thread -
Also: Modes 4 and 5 support component rotations, allowing one of the RGB components to be encoded seperately. This results in different looking artifacts vs. all other modes.
1 reply 1 retweet 1 likeShow this thread -
So as a developer using BC7, you need to be very careful what you decide to put into the alpha channel. Ideally it should be correlated (resemble strongly) RGB. It’s not really a fully separate channel like DXT5/BC3.
2 replies 1 retweet 1 likeShow this thread -
Our BC7 encoders will handle uncorrelated alpha better than the open source ones. We’re putting a lot of effort into this.
2 replies 1 retweet 3 likesShow this thread -
BC7 has too many opaque-only modes (modes 0-3). Perhaps one of those modes could have been used for improved decorrelated alpha on complex blocks. RGB is good enough.
1 reply 0 retweets 0 likesShow this thread -
Once your texture has an alpha channel you instantly lose half the modes in BC7. This is a flaw IMO. Most devs will be highly tempted to put in alpha data because BC7 is expensive (8bpp).
1 reply 0 retweets 2 likesShow this thread -
Also, if your texture has decorrelated alpha, BC3 is stronger than you may think. BC3 has 5658 endpoints, while BC7 m4/5 have 5556 or 7776 endpoints.
1 reply 0 retweets 0 likesShow this thread
Some developers disable the mode 4/5 component rotation thing to avoid oddball artifacts with alpha textures, making these modes a little weaker.
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.