One common problem with game development is compression, it’s a classic trade-off. Do you save disk space at the cost of either performance or VRAM usage or do you favor performance at the cost of size? When it comes to GPU Image Textures, this is exactly the trade-off Binomial is trying to get rid off. Thanks to a recent partnership with Google, their work is now available and open source!
Details from the Google open source blog:
Today, Google and Binomial are excited to announce that we have partnered to open source the Basis Universal texture codec to improve the performance of transmitting images on the web and within desktop and mobile applications, while maintaining GPU efficiency. This release fills an important gap in the graphics compression ecosystem and complements earlier work in Draco geometry compression.
The Basis Universal texture format is 6-8 times smaller than JPEG on the GPU, yet is a similar storage size as JPEG – making it a great alternative to current GPU compression methods that are inefficient and don’t operate cross platform – and provides a more performant alternative to JPEG/PNG. It creates compressed textures that work well in a variety of use cases - games, virtual & augmented reality, maps, photos, small-videos, and more!
How does it all work? Compress your image using the encoder, choosing the quality settings that make sense for your project (you can also submit multiple images for small videos or optimization purposes, just know they’ll share the same color palette). Insert the transcoder code before rendering, which will turn the intermediary format into the GPU format your computer can read. The image stays compressed throughout this process, even on your GPU! Instead of needing to decode and read the whole image, the GPU will read only the parts it needs. Enjoy the performance benefits!
The project is available now, open sourced under the Apache 2.0 license on GitHub. This new technology should be a great boon to game engines and tools hoping to support texture compression across a number of devices, and I assume will make it’s way into more Google products as time goes on.