3D model should be a valid and complete glTF or GLB file with all textures present, you can validate them using Khronos 3D Viewer.
All transformations should be applied prior to export to glTF/GLB.
Maximum 100 primitives per model.
Archived file size containing all textures and geometry data should not exceed 50 MBs.
There are restrictions on number of triangles in the model, which vary by category.
Category
Max triangles count
Max texture size (auto-resized)
Footwear
65'000 per shoe
1024x1024
Watches
100'000
2048x2048
Bags
130'000
2048x2048
Other objects for 3D Viewer
130'000
2048x2048
UV maps and textures
Only one UV set per object.
Textures must be exported in 8 bits per channel
[Try-on] Total amount of pixels across all textures shouldn't exceed 18 MP, for example three 2048x2048 textures or nine 1024x1024 textures.
[3D viewer] Total amount of pixels across all textures shouldn't exceed 38 MP, for example nine 2048x2048 textures.
Red ORM channel should either contain baked-in AO map or be #FFFFFF.
By default Substance Painter exports it as #000000, resulting in absolutely black image.
Distance between the UV islands should be:
512x512 textures = 4px
1024x1024 textures = 8px
2048x2048 textures = 16px
UV islands should not be close to the boundaries of the UV space
All details of the UV should be within the range of 0 to 1 on the coordinate grid, as on the picture below.
Transparency
Use alpha channel or KHR_Transmittance for transparency.
If the transparent geometry (e.g. glass) covers another transparent geometry (e.g. gems under that glass), then they must be separate materials to ensure proper rendering order.
Supported KHR extensions
If you have both iOS and web experiences of the same type, then the supported extensions are applied based on the lower version.
Extension name
Supported from the following WEB SDK versions
Supported from the following iOS SDK versions
Index of refraction (KHR_materials_ior)
2.6
6.1
Volume (KHR_materials_volume)
2.7
6.1
Specular intensity & color (KHR_materials_specular)
Add padding to texture maps for smoother seams between elements (we recommend 4 pixels padding for 1024x1024 maps).
Make sure that all details in the UV file are as relaxed/optimized as much as possible to avoid texture distortions.
It is best to use normal map and albedo instead of mesh to model very small details, as that avoids - aliasing and reduces number of polygons.
Avoid z-fighting if there are multiple meshes (don't place thin surfaces, like decals, one on top of the other without a proper gap. Even if you don't see z-fighting it may be worsened by draco compression).
If you later need to use the same model in a 3D viewer and for Tr-on, please ensure it is 1:1 with the real size.
Model orientation
Make sure that model orientation is correct before uploading the asset to Substance Painter. Doing so will match lighting in Substance Painter and Wanna Studio and ensure correct model preview generation.
Footwear
The toe of the shoe should point towards +X axis
Watches
The hand’s stub should be positioned on the +X axis, the clock face should point towards -Y axis
Bags
The front part of the bag should point towards +X axis
Generic
Orientation of models for generic space should be frontal to +X axis