Since version 10, KeyShot has integrated a GLB (glTF) exporter, which should ease the workflow to export to Sketchfab.
Following the steps in the KeyShot Support Portal is a good place to start. Below, you will find some more information and recommendations based on our tests at Sketchfab.
The export seems to be relatively straightforward: the different parts of the object are unwrapped, and the materials are baked to PBR textures according to the GlTF specification:
- Base Color (+alpha if present on the material)
- Metalness / Roughness maps
- Normal maps
- Ambient Occlusion (if specified during the export)
Our support for the glTF format is quite good, so those files should translate pretty well to Sketchfab.
During the export, the pixel resolution of the baked textures is not specified manually (i.e. you do not select 4096 × 4096 px), but is based on the size of the objects, and on a DPI (Dots Per Inch) setting during the export.
Setting this parameter correctly according to the scene characteristics is therefore very important to upload a model to Sketchfab.
In particular, something to notice is that the DPI is constant for all the scene’s objects: if a main object is 1 inch long, but is included in a 100 inch long box, the surrounding box texture will be 10000 times larger once baked, and the main object will show a very low resolution.
Based on the use of a DPI setting during export, we recommend removing objects such as backgrounds planes, background buildings, textured grounds, etc. before export, and only keep the main object(s). This will help guarantee that the textures have a correct resolution.
As the DPI usage is not necessarily very intuitive, we recommend to first export the model with a relatively low DPI (100 for instance), and without “Ambient occlusion“ (which can be very slow) to minimize the export time.
The idea is to verify that the texture settings look correct by drag and dropping the exported .GLB file (or .gltf along with the exported textures directory) into one of the free glTF viewers available, such as:
During testing, we found the bet workflow is to the DPI value before export, visually checking the exported glTF in one of the viewers, then check the file size of the export on your computer of the exported files before iterating again, since the export time can get very long with high DPIs.
A easy pitfall is to use too high a DPI, which could potentially generate very heavy textures which later won't be efficient for a real-time application (viewing on Sketchfab, AR, configurators…). Checking the size of the files (.gltf + .bin + textures, or .glb) before uploading to Sketchfab is therefore very important:
- ~ 20 MB : perfect!
- ~ 100 MB : starting to get on the heavy side, but should still work correctly (could lag in AR)
- ~ 500 MB : very heavy
Additionally, all texture channels are baked for every material, which can further increase the size of the export.
KeyShot has some post-processing options (chromatic aberrations, bloom, depth of field…), which don’t get exported to Sketchfab as the glTF file format does not support this. We advise to turn them off to avoid discrepancies between the KeyShot render and results in Sketchfab. You can always add these effects back in later using Sketchfab's post-processing filters.
Sketchfab render (800 DPI, ~70MB file)
DPI influence (glTF Viewer, using a demo scene from KeyShot)