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.
Total amount of pixels across all textures shouldn't exceed 18 MP, for example three 2048x2048 textures or nine 1024x1024 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 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
Sheen (KHR_materials_sheen)
2.6
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.
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