Skip to main content

Shoes

In this document, we specify all the necessary properties of 3D assets for the Shoe category that are required to be eligible for use within Threedium's infrastructure.

General guidelines for modeling

Formats

Threedium Platform is compatible with GLB, FBX and OBJ file formats.

  • GLB is a good starting point, Threedium Platform is using GLTF standard as well, so this workflow should provide a seamless experience.
  • FBX can still carry materials and necessary textures together with geometry, but due to different versioning of FBX files, some differences may occur.
  • OBJ format can be uploaded with a .mat file as well, to load the necessary textures and material information.

Asset file size

  • The optimal file size should be up to 10mb for e-Commerce workspaces. This should be a good size to aim for, but depending on the project specification this can be specified additionally. This is specified for only one shoe (left or right).
  • Assets that are done without textures (configurator specification) should be under 5 MB.
  • Texture sizes should follow an average. Ex. If 10 textures have a range of 2-5mb and then we have a texture map of 10mb, it should be optimized to fit in the average range.

Geometry

  • No n-gons are allowed, either quads or triangles should be used to ensure good topology and any possible edits in the future.
  • Good flow of topology, no sharp creases, sharp angles, or polygons protruding through the backside.
  • The thickness of the leather should be realistic, refer to reference images for this.
  • Subdivision should be done as a last step, reversing this effect can help if optimization is needed. Keep in mind that these assets are going to be used across the spectrum of Web3D integration (viewers, configurators, AR, banner ads)
  • It is preferable to have sole patterns modeled with geometry, but if it is too complex, it can contain a mix of baked normal details and geometry.
  • Overlapping parts need to be “tucked in” inside another. They need to have soft a fabric effect, where they meet. No geometry protrusion is allowed.

Figure 1

  • Tags, decor, and other accessories that are added on top of the base geometry shape of the shoe need to have the same quality as the shoe itself.
  • Laces, strings, and other parts that overlap and fold into themselves should never have geometry overlapping. They need to be modeled or simulated in a natural position, by touching surfaces, but not protruding through geometry.

Figure 1

  • The shoe needs to have the correct dimensions in centimeters. The scale needs to match that of real-life assets.
  • The sizing of the shoe is variable and dependent on a specific brand. This parameter will be specified at the beginning of the project by Threedium.
  • Any holes present on the asset need to be either modeled or properly textured.

Polycount

  • Since we are using webGL we are limited in terms of performance and we need to spend some time to optimize the assets correctly. Polycount is an important parameter that should be considered when creating assets. They should be easily optimizable in case that we need to reduce the polycount.
  • Preferred triangle count for watch assets can be categorized by their complexity:
    • Tier 1 - up to 30 000 triangles
    • Tier 2 - up to 60 000 triangles
    • Tier 3 - up to 130 000 triangles (best performance/quality)
    • Tier 4 - up to 400 000 triangles (for extremely complex or unique assets, a good example would be a Bag with a chain strap, or quilted leather).

Figure 2

Detaching/separating parts and grouping

  • The number of mesh nodes should be kept to a minimum.
  • Any parts that are meant for Fur shader, should be detached separately.
  • Parts that are not specified for animation can be grouped by material type, ex. “shoe_bottom_stitches_1”.
  • All part groups should have their empty node to which they are parented.
  • Avoid parenting parts to another geometry part, this creates issues in later integration.

Naming parts, groups, and files

  • This chapter can be project-specific, and depending on the final use case (viewer or configurator) it can vary in some aspects. Here are some general guidelines that apply to most projects.

  • The naming convention is immensely important, and our QA has a zero-tolerance policy for this specification. Any assets that have auto-generated names ex. (mesh 001, object 345, etc.) and that do not have logical naming, will be returned for edits.

  • Names should be logical, and easily understandable. They should state, one of these properties for easier identification:

    • Material type
    • General Shape
    • Color (if the part is available only in one color)
    • Location (top, bottom, left, right, middle)
    • Type of shader (Fur, Transparent)
  • Part can contain only one piece of information or multiple combined. In a practical example:

    • SKU123456
      • transparent_sole
      • toe
      • base
      • metal_lace_end

Transformation data and scale

  • Before submitting the asset, please make sure all transform data has been applied/reset.
  • The model needs to be centered in the scene on the X, Y, and Z axis origin. The rotation, transformation, and scale of the complete object and all its geometry parts need to be 0.
  • The scale of the model should be 1 on all axes. This is of great importance since assets are used in the AR environment, we need the real-life scale for all the assets.
  • The native dimensions format for Threedium Platform is cm (centimeter).
  • All shoe assets need to have a uniform position in the scene, facing either forward.
  • When shoes are done in pairs (left+right) the origin of the model should be in the middle, in between them, again facing forwards.

Stitching

  • Depending on the particular SKU, stitching can be either baked into a simple geometry strip, or they can be actual 3D objects with each individual stitch.
  • When using the “geometry strip” method, keep in mind UV unwrapping, see the next chapter for more information.
  • For 3D stitches, aim for the lowest polycount possible

UV Unwrapping

General UV guide

  • Ensure consistent texel density, unless otherwise specified by the project requirements.
  • GLTF divides the asset along UV seams, and when the camera is observing from a long distance, UV seams can be seen. UV seams should be hidden when possible.
  • UV islands should have no stretch or compression, in order to avoid loss of quality in textures. Recommended distance between UV islands:
    • for 512x512 - 4px
    • for 1024x1024 - 6px
    • for 2048x2048 - 8px
  • UV islands should not touch the borders of the UDIM tile

UV channels

  • Channel 1 is reserved for standard mapping of material textures.
  • Channel 2 is reserved for light and ambient occlusion maps.
  • Every asset should include channel 2, which will contain a completely unwrapped asset on one UDIM tile. This is used for baking AO map that will be used as a Global AO map. This map is applied to all the parts of the asset regardless of specific materials.
  • Multiple UDIM-s are not supported.

Unwrapping for tileable textures

  • Preparing the UV-s for this kind of workflow, we need to first take into consideration the point above (2.2). Channel 2 = AO map.
  • Channel 1 is now free to create a consistent UV space for applying tiled textures, such as fabrics.
  • For tileable textures, UV transforms for all UV islands should be U 0.5 and V 0.5. This way we ensure that texture starts from the same point of the asset. UV islands should also have the same average scale, no different scale is allowed. This is easily checked with UV checkered texture. Please ensure this criteria is met perfectly, assets with incorrectly setup UV-s will be returned for edits.
  • This is easily checked with a UV-checkered texture. Please ensure this criteria is met perfectly, assets with incorrectly set up UV-s will be returned for edits.

Unwrapping for custom textures

Using Substance Painter is the most common way of creating materials and textures. We accept any other software, as long as texture maps are properly baked, and have highest highest-quality details.

Stitching unwrapping

  • All the stitches on the asset should have identical UV mapping. There are two ways to go about this:
  • Unwrap and straighten the stitching geometry in a continuous strip that is aligned properly on the first UDIM tile, so the stitches are tiled in a correct scale.

Figure 2

  • Custom stitch textures are accepted as well, but this should be a preferred workflow only on assets that do not have color changes for the stitching.

Figure 2

Unwrapping for overlays

  • Overlays are a feature on Threedium Platform that lets us render either, custom text or images on our asset. This system uses UV coordinates to do so.
  • SKUs that have specified parts for engraving, embossing, or other types of customization by the end users, need to have those parts unwrapped in a specific manner to allow for easy overlay set up in Threedium Platform.
  • This part should have centrally positioned islands since overlays are by default positioned on U 0.5 and V 0.5 coordinates. The idea is to have as small several transforms as possible to achieve the desired result.
  • In cases where assets have custom texture, overlays should be considered at the beginning of the unwrapping workflow, so they can be positioned properly.

Unwrapping for embossing-engraving

  • When using tileable materials, there are two ways to achieve logo engraving, either using our overlays system, or increasing the density of mesh in that specific area, and using vertex displacement to engrave the details into the geometry. Later baking of the AO map will ensure that shadows accent the specified logo/inscription.
  • When Unwrapping this area, be extra careful to not disrupt the seamless flow of textures, while keeping stretching/compression of the UV island to the lowest possible minimum.

Unwrapping for Diamonds and Precious Stones

  • Diamonds do not require any unwrapping since our special shader works using geometry information. However, it is a good practice to do a simple unwrap and stack the diamond islands in the same position. This is very useful for us when the asset needs to be used outside of Threedium Platform.
  • For metal parts, UV needs to comply with the same logic as for point 2.4, since it is likely that some metal parts will have an engraving feature added through overlays.

Materials

General Textures guide

  • Texture size should not go above 2048x2048. Higher resolutions can impact performance on mobile devices.
  • All textures need to be in the rules of 2. Ratios of the textures should be either 1:1 or 1:2, 2:1 3:1 etc… Here are some examples of some accepted texture formats:
    • 512x512
    • 1024x1024
    • 2048x2048
    • 1024x2048 (1:2)
    • 512x1024 (2:1)
  • We recommend keeping the texture ratio to 1:1, and using other ratios only when unavoidable.
  • We support PNG, JPG, and HDR textures. PNG can contain transparency and it will be applied once the texture is applied in a diffuse color map slot.
  • Normal maps should be kept in PNG format, converting them to JPG will result in a loss of subtle details

Decals and floater objects

  • Make sure that floater planes are offset enough from the geometry part to avoid the “z-fighting” effect
  • For shadow textures, use Alpha map to ensure a good quality of blending with the background
  • For blending modes use Alpha Clip, or Alpha Blend
  • Group all the logo/branding on one set of textures if possible
  • The quality of the logo inside of the shoe should match the others outside. Everything that is visible should have matching quality of the textures.

Branding and logos

  • Logos/branding should have the highest possible quality, we recommend one texture set in 512x512 image size
  • If there is a need for higher-resolution textures we suggest breaking up the logo/branding into multiple texture sets, especially if they cover a large portion of the model.
  • If SVG files are not available we suggest recreating them and using them as a base for logo/branding textures.

Ambient Occlusion maps

  • Use one ambient occlusion map for both left and right shoe variants.
  • Global AO maps should have a 2048x2048 resolution, individual maps, can have lower resolutions if they are done for specific parts of the asset.

Reusable texture format

  • We prefer tileable texture formats, that can be shared across multiple assets
  • Use custom-baked textures only for unique assets or parts
  • Every tileable texture set, should at least have 2 texture maps, (ex. Diffuse - Normal, or Normal - Metalness). Even plain colors have some details, added through Normal maps.
  • Only polished metal materials do not need additional textures. hey are set up in Threedium Platform using only the Environment map and base color.
  • If left and right variants of shoes are specified, try to use the same textures for both shoes.

Stitching material and textures

  • Stitching textures should be uniform across the same brand assets. They can differentiate between styles, but within the same style, we should have identical texture sets, and only color parameters should change.

Figure 2

  • Over thick stitching should have a unique tileable texture set with a realistic randomized thread pattern.
  • Pipe stitching should have sufficient geometry so that no sharp angles are visible directly in the silhouette of the asset.

Transparent materials

  • For transparent parts of the mesh, we support alpha, transmission, and thickness maps.
  • Coat and coat roughness (maps or integer) can add more details to otherwise flat-surfaced materials.
  • For glass or crystal parts, use offset double mesh to make the object appear thick.
  • Use transmission and thickness maps for transparent soles.

Animations

Here we list a few tips and recommendations for the preparation of animation sequences for Threedium Platform.

  • Some clients can specify boxing/unboxing animation of the shoes. This is usually done with configurable experience.
  • The geometry of the box should have a sufficient triangle count and no oversimplification of the mesh.
  • The textures of the box should not be lacking in comparison to the shoes.
  • The box triangle does not go into the total triangle count for shoes.
  • The box should be delivered as a separate GLB or FBX
  • Two separate animation sequences are needed, open and close. Both for the shoe asset and box/packaging asset.
  • If shoes are meant to be placed in a bag, they should have at least some cloth-deforming animation. Alembic animations are not supported by Threedium Platform.
  • Some clients might specify an explode view for their assets. This can be applied to one part of the asset only, as well, ex. sole. We should have two different animation sequences: explode and close.