Finally, Someone Is Fixing the Major Issues with Texture Compression
We live in a computer world full of file formats. Whether we are talking about images, videos, or text documents, there are dozens of file types for each, and there are new ones added every year to applications. Keeping in mind that many of these formats were created before the internet was widely available (at least, in infant form), the primary reason for this glut of often complex choices is competition.
When developing software in a competitive environment, it makes sense that a company would want to create a proprietary format. A closed and locked standard can create a sort of forced loyalty from your customer. After years of lessons learned, we know having the superior tool with the best workflow is what makes a loyal customer. We know better now.
Unfortunately, this pervasive mindset seemed to dominate the '90s—at least until the internet became more widespread and the open-source, open-standard groups began forming. However we got here, the end result is that when we go to save our work, we are often presented with so many options that we need to go do some research before we can hit the save button.
Texture compression has suffered from this issue over the last nearly 20 years, ever since 3D graphics accelerators came into our lives. Without digging too deep of a rabbit hole here, texture compression is a form of image compression that is used for storing the textures that decorate and wrap our 3D models.
There are various tradeoffs with texture compression such as decoding and encoding speed, compression rate versus image quality, as well as random access speed. Compound that with the fact that different graphics rendering systems, as well as video cards and graphics processing units, use and store textures differently, and this becomes a big mess.
In a recent blog post, Stephanie Hurlburt, a graphics engineer and co-owner of Binomial, talked about this issue, and not only is she proposing a solution to it, she is doing something about it. Binomial is creating "a universal, multiplatform, standardized intermediate format." Not only that, when they finish their work, they are going to donate it to the development world as an open standard.
A universal format for texture compression would allow 3D modelers, UI designers, and programmers alike to handle a single image for each art asset they work with. This includes multi-platform textures, which currently can require multiple files on a single platform. Using this new format would allow you to make a game for the Xbox One, and when you port it to the Android platform, you would not have to change the art at all. This new system would handle all that work for you.
Basis is this name Binomial has given to this system. It comprises of the previously mentioned universal file format and a transcoder, i.e., a real-time conversion system. Basis would handle texture file storage and conversion in a completely invisible way to all parties involved—the developer, the rendering engine, and the GPU.
With Basis, nobody needs to think about GPU formats. GPU vendors can have fun crafting new GPU formats and innovating, so long as they have a Basis transcoder in place. And GPU formats were never meant for CPU storage anyway-- having this separate format meant for CPU storage is ideal in terms of performance as well as multiplatform support.
Binomial is joining the Khronos Group, a not-for-profit consortium focused on royalty-free open standards. It is unclear if Binomial will be providing their universal format and the tool that utilizes it—which they currently license on a yearly cycle—or just the format itself, to the open standards of Khronos Group. I applaud their efforts either way.
As a developer, a smart workflow is key to keeping productive, on schedule, and just keeping the creative juices flowing. Taking unnecessary technical details out of the workflow lets me stay focused on the important things. So I look forward to seeing if Basis sticks. We need it to.
How do you feel about open-source software and open standards? Is this a movement you support? Let us know in the comments below.