Implementation of the Basis Universal Texture Format in Smartshape
With the recent open source release of the Basis Universal GPU Texture Codec by Binomial, a new step toward the standardization of GPU texture formats was made. SmartShape supports many image formats along with the most common 3D formats. Once uploaded into SmartShape, the images are transcoded to every target GPU format needed to meet the mobile and Web platforms requirements.
Storing GPU friendly texture formats presents multiple benefits when these are served to the end user’s device and rendered on it such as:
- Avoiding any decompression step on the CPU.
- Greatly lowering the memory usage.
- Improving rendering performance (by being more GPU cache-friendly).
This has enabled us to implement a protocol used by SmartShape to smoothly stream textures and their level of details during the loading phase of the rendered 3D model.
However, each of these texture formats has a storage size much higher than its JPEG counterpart. Even though, only the format specific to the user’s device hardware is fetched when displaying a textured 3D model in SmartShape, they still come at the expense of a high bandwidth and, most of all, high storage costs.
The Basis Universal texture format brings the upsides of the GPU formats without their main downsides:
- A single storage format (Basis Universal).
- Smaller than a JPEG in size.
- Without needing any decompression step (transcoding is done on the fly when reading the texture).
That enables the use of much higher image resolutions (going from 2k to 8k, for instance) for a fixed storage budget or a fixed end user network bandwidth budget. The storage cost applies for both the server and the end user device as SmartShape features an offline mode where a copy of the 3D model and its textures are locally stored. This is especially relevant when dealing with large 3D scans that rely on photogrammetry.
Using Basis, texture intensive 3D models - such as the ones produced using photogrammetry - will require less storage server side and load faster without sacrificing the rendering performance.
SmartShape is built on top of many open source projects, including Minko, a 3D applications cross-platform framework maintained by Aerys. Basis being open sourced means that its integration is made completely transparent and that any contribution of the community to Basis will benefit SmartShape.
We expect to implement the support for the Basis texture format in SmartShape before the end of 2019.