Anatomy of a Texture
agentlien.github.io
It is called Anatomy of a Texture.
agentlien.github.io
It is called Anatomy of a Texture.
Also pretty cool getting a glimpse into the work 505 does helping developers get their games in front of more people. I had no idea 505 was the publisher[0] for so many recognizable titles.
The advantage with block compression is that it is purpose built to minimize bits used, it's local to small blocks, decoding and encoding can be done with fairly simple code[0], and it doesn't require any specific AI hardware.
I am unfamiliar with NTC, but at first glance it seems to require an Nvidia card with RTX features, meaning it wouldn't be supported on Xbox One and PlayStation 4 (AMD GCN), Xbox Series X|S and PlayStation 5 (AMD RDNA2), nor the original Switch (Nvidia Tegra X1).
[0] https://learn.microsoft.com/en-us/windows/win32/direct3d11/b...
What looks like complex addressing in software is fairly simple on the GPU side. Swizzling is just interleaving address bits. Various block schemes are likewise just simple bit shifting on the address. The block compression just takes a weighted average of two colors (with various storage schemes) and uses a small index per texel to look up the color.
There are a lot of combinations but it's designed to be very gate efficient to implement, so it can be decoded on demand. It's even stored compressed in the cache (usually).