Meshes should be generally built in separate objects, with a separate mesh per material.
Although Multi-ID material setups are supported, it is generally recommended to avoid this type of usage, where multiple materials are assigned to different parts of the same mesh. Instead, try to separate the mesh into multiple separate objects for each different material. This is particularly important when some of the materials require transparency. Also, try to combine multiple meshes into a single mesh if they are intended to share the same material. Only keep them separate if they are meant to be customized separately from other meshes.
Please have clean meshes, made up primarily of either triangles or quads. N-gons are fine too, but if there appear to be mesh issues when viewing the object in Maya or 3dsmax, those mesh issues will likely persist inside our editor as well.
Try to maintain fully smoothed normals across the object, and use hard-edges only when necessary. We do support crease groups, but generally, for performance reasons, try to avoid hard edges where they do not match with UV shell cuts. Edges can be doubled up to create the effect of a harder edge, and the advantage there is also that it will catch the highlight in a more realistic way, without the need for a baked normal map.
Meshes can be subdivided inside Threekit for smoothing purposes. You could then upload a lower resolution mesh, with the intention of subdividing it inside Threekit. The advantage here is that you can work with meshes in the viewport, and also have access to the lower resolution meshes for easier editing.
We prefer to receive the meshes from you in their native format if you used one of the common 3D editing programs like Maya, 3dsmax, or Blender. We would then take care of exporting them to the appropriate formats for import into Threekit. Please keep the meshes in their quad or n-gon state, without triangulation.
Threekit offers support for meshes with multiple UV channels so that different maps in a material inside Threekit can be mapped to the different UV channels. This can come in handy particularly if you wish to have a higher resolution tiled normal or bump map, but with a lower resolution base map for colour. The same goes for Ambient Occlusion or Lightmap textures.
Polygon counts refer to the number of triangles in a mesh, and the polygon limits are highly dependent on the target hardware where a client views the model. Dedicated video cards also play a significant role in how performant the models can be. A scene with 300k triangles can perform reasonably well if it is kept within fewer meshes and viewed on a device with a dedicated video card. For use cases that require loading on mobile or tablet, the recommended polygon limit is 120k.