4 ms·
It's true that lossless is often not the best approach, although it's worth pointing out that anyone can implement Quite OK while both the approaches you mentio
by bscphil 4y ago
It's true that lossless is often not the best approach, although it's worth pointing out that anyone can implement Quite OK while both the approaches you mention are not really friendly to open source.
- duskwuff 4y agoS3TC is patent-free as of October 2017, and is implemented in open-source graphics drivers.
- bscphil 4y agoAre the best available compressors for the format open source as well? That would be news to me, although I admit I haven't looked into the format in quite some time. More generally, my point about video games was just that you can frequently cut their size by 50-75% just by turning on file compression on the game directory. Developers are obviously missing some easy wins in this area - including huge wins with lossless compression alone.
- ImHereToVote 4y agoUse Universal Basis
- slimsag 4y agobasisu (Binomial's Basis Universal GPU Texture Codec) is pretty much state of the art here. Open source, offers excellent compression and very quickly decodes to pretty much all GPU native formats.
- iainmerrick 4y agobasisu is really impressive, but it’s not perfect for all use cases. I tried using it in a WebGL game, but found that a) decoding was too slow, and b) the quality was too low. PNG is much bigger, so you’d think it wouldn’t be good for a web game, but once an image has been downloaded and cached, the most important factor is the decode-and-upload time. On the web, PNG and JPEG handily beat basisu there. In a different situation, basisu could have worked out for me. On native rather than web, maybe the decode time would have been fine. With more photographic rather than geometric assets, maybe the quality would have been fine.
- emidoots 4y agoPNG/JPEG are not natively understood by GPUs, though. GPUs have compressed formats they natively understand, and basisu can transcode to them quickly. You'll be burning a lot more GPU texture memory as you'll be asking the GPU store raw image data instead of compressed image data.
- kaetemi 4y agoThe advantage of using a native hardware compression format is that you save on GPU RAM, which is especially useful for web which may display on mobile systems.
- iainmerrick 4y agoThat’s true, but it’s a trade-off rather than a straight win. Hardware formats do have a few disadvantages: 1. Larger size on disk 2. Reduced quality at all MIP levels 3. Complexity of each platform wanting its own special format. Basis fixes 1 (by adding an extra layer of compression) and 3 (by transcoding to almost any format at load time). But it doesn’t fix 2, and it adds another downside -- decompressing and transcoding is relatively slow.
- edflsafoiewq 4y agoLook at Rich Geldreich's bc7enc_rdo.