Streamlining 3D Commerce with Material Variant Support in glTF Assets
In the world of e-commerce, many products come in different options, or variants. When shopping online, for example, colors and materials of a brand of shoe might have an image representing each option:
And now, in addition to using 2D images, more and more retailers are starting to use 3D and AR to merchandise products in online channels to enable customers to more fully experience products or view items in their environment in rich 3D. However, in the above example, each time a customer views a different colored shoe, there’s a good chance that another complete 3D model is being loaded just to display that color variant. This leads to increased download times and wasted bandwidth as the files contain a lot of redundant data, including downloading exactly the same geometry multiple times. In turn this causes increased memory usage on the device, and slower interactivity, resulting in a poor customer experience.
With the release of the glTF™ KHR_materials_variants extension designed by the Khronos® 3D Commerce™ Working Group, multiple asset variants that share the same geometry can now be combined into a single glTF asset - enabling an optimal end-to-end experience for supporting multiple product variants in 3D Commerce use cases!
To support a product variant experience through this extension, a viewer simply needs to switch between materials in the glTF file when a different variant is selected, reusing the single set of asset geometry.
Using the example of the three shoes above, before the use of KHR_materials_variants a viewer would be required to download three complete glTF files to display each variant as there was no way the viewer could know to share the geometry between models. Each shoe model is a 5MB download - 4MB of geometry with a 1MB of textures. With KHR_materials_variants, a single glTF file can be downloaded with the 4MB geometry and the first referenced 1MB material, then if the user views additional variants only an additional 1MB of materials need to be downloaded for each. If the user views all three variants, avoiding downloading the 4MB of geometry three times reduces total download size from 15MB to 7MB.
Authoring Variants in glTF
In order to combine models together for this extension, you can start with this meld tool created by Facebook, with more tooling on its way now that this extension is released. Keep in mind that only models sharing exactly the same geometry can be melded together.
More Than Just File Savings
In addition to reducing download times, the glTF KHR_materials_variants extension can make it much easier to consistently share and distribute product variants across the multiple companies and diverse platforms and viewers involved in a typical 3D Commerce pipeline. As an example, an online retailer previously may have had to distribute multiple glTF files along with separate metadata files to describe possible product variants to advertisers. With the KHR_materials_variants extension, both the information describing the variants and the required materials can be baked right into a single glTF file. Then, it becomes easier for anyone to re-create a product variant experience on any platform!
In addition to releasing the material variants specification, Khronos is working to build the ecosystem around the extension by advocating its support in authoring tools and viewers to ensure assets with material variants can be easily created and handled. This is a part of the 3D Commerce Working Group’s ongoing mission to make 3D asset development and deployment more efficient for e-commerce stakeholders industry-wide.
The glTF KHR_materials_variants extension enables elegant handling of the most common type of product variants involving differences in materials. However, there are other possible product variations: for example differences in shape and size. Consequently, the Khronos 3D Commerce Working Group is exploring the possibility of additional extensions to enable geometry variants to be carried in a single glTF file.