Memory Storage for Object Materials


I am working with my team on a startup company heavily involved in AR Medical visual experiences. We have been utilizing GLTF / GLB file format for our 3D assets made in Blender so that we can easily transfer these assets, there is one specific issue currently we are facing while using the GLTF file format and that is the inability for objects to have more than slot of material data memory when exporting the object.

While we have great plans for this eventual product I would definitely be interested in finding out if Khronos Group is looking to fix this issue in some way with the release of your next version of Gltf? Or if there is another way my team and I can combat this issue?

Thanks for any help and I can provide more detail if needed,

I’m not exactly sure what this means, but Khronos recently ratified an extension material variants. Does this help with your scenario?

Announcement: Streamlining 3D Commerce with Material Variant Support in glTF Assets - The Khronos Group Inc

Spec: glTF/ at master · KhronosGroup/glTF (

1 Like

@andrewVAROS is there a particular use case for “more than one slot of material data” that you have in mind? Blender has those material slots that loosely associate a material with a mesh (i.e. the material can be in a slot but not actually rendered or used by that mesh, AFAIK) and this mechanism can be used for various things. But because it’s just a generic association, and basically a Blender-specific feature, I wouldn’t expect it to be added to glTF as such. But any particular use case for those material associations would certainly be fair game, including the material variants Gary refers to above. Some examples:

  1. Material “Variants”, such that a mesh can list alternative materials to its default. Useful for cases like multiple color schemes, day/night “looks” for an environment, or healthy/damaged/broken item states in a game. Available via KHR_materials_variants extension.
  2. Different materials on different parts of a mesh. Supported by glTF core spec, by splitting a mesh into multiple primitives. Each primitive can (optionally) use the same vertex attributes with different indices.
  3. Multi-layered materials: A more advanced PBR topic, I’m probably not the best person to comment, but examples would be things like clearcoat and iridescence effects.