Keyshot Export Guidelines
Before we import our mesh into Keyshot, we need to consider a few things. Keyshot does a great job of hiding some mesh errors. In some cases, the magic Keyshot performs to your mesh isn’t carried over to the export. So we need to ensure to follow this checklist before we import our models.
Mesh Prep Checklist
- Ensure all mesh components have a UV channel
- Keyshot has UV editing tools but can not create information that isn’t there; Keyshot can not create UV information
- Ensure mesh normals are pointing in the correct direction
- This helps avoid potential Transparency issues
- Ensure verts are properly welded
- This helps us avoid potential render artifacts and shading errors.
- Merge mesh components when available
- This helps create a more user-friendly scene as well as reduces the number of bake operations Keyshot has to perform. This will also decrease export time.
- Avoid Displacement maps
- These do not export, it is recommended that a normal map be used instead.
- Unite size: MM
- This drastically affects the export time.
Scene unit size is the most important setting when it comes to export time. This is because Keyshot exports its textures to scale.
If you have an asset that is three meters long, you will export with textures around three meters in size. This can cause various issues with the exporter; we recommend changing the scene unit size to MM to avoid these. This ensures a quick high, fidelity export.
We recommend using the advanced material in Keyshot as it exports more consistently.
A thing to keep in mind is that Keyshot uses the specular channel as the primary channel in its material’s overall specularity. On export, however, it uses the information in the roughness channel. We need to ensure that we have the correct information in our roughness channel to export our material correctly. Luckily roughness is just inverted specular information. All that we need to do is take our specular information and invert it. This is really easy to do if you are using a texture or a value for Specularity.
This is why we recommend the advanced material, it exposes the specular channel as well as giving us a roughness input to channel the corrected information into.
Other specialized materials such as Plastic, Paint…etc are not recommended and only for advanced use cases.
This is because they do not expose the specular values of the material. This is done to help guide the specular levels to fall in line with the materials type (Plastic, Paint…etc). So your exports may very but a good rule of thumb is to avoid using extremely specular values ex . 005, .05 as these will export too shiny.
Setting up a material using a Specular Texture.
Material Graph before Color Invert node
Material Graph after Color Invert node
If this is the case, we can simply take our specular texture and run it through a Color Invert node and run that into our roughness.
Setting up a material using a Value.
If we do not have a texture, we can take the value in the specular field and use that to create a color. For example, if we have a value of .5 for our specular, we should make a Color Gradient node and change the color of both color properties to a 50% grey color.
Setting both colors to the same color effectively changes our gradient into a color constant after we have set the color, we can connect that to our specular channel. Then we can invert it and plug the inverted color into our roughness.
Material Graph before Color Gradient node
Material Graph after Color Gradient node
This can be found by right-clicking in your Material Graph → Textures → Color Gradient
Troubleshooting Opacity Issues with Specialized Materials
Using .LMT files or specialized materials can lead to opacity issues when exporting. If you are experiencing these issues and are forced to use the .LMT it is best to apply a color gradient with a value of one or white set for both color inputs to ensure the material is opaque. This will ensure the materials opacity is set to opaque.
Materials with Transparency
Keyshot supports Transparency but not translucency on export. In the below image areas of grey should be Translucent and areas of black should be Transparent.
This is caused by the inability to set the blend mode of your material.
We can influence where the Alpha is sourced from but not the blend mode of the material. We have found for best Transparent results it is recommended to use an Advanced Material with a texture with an alpha in the opacity slot. The texture in the opacity slot should be set to Alpha.
Opacity Texture Settings
Opacity Map Mode: Alpha
- 32bit TGA
Translucency Work Around
There are two ways to correct the blend mode within the exported Keyshot GLB.
- Edit the material in Notepad.
- Edit the material in Blender.
If Translucency is required we recommend using an Advanced Material with an alpha texture as outlined above. It is recommended to name the material something that is easily searchable since we will be changing a value after export.
For this example we named the material “BEANS” as this would be a unique identifier within the file. After the material has been named we can export the file as we typically would, with one small adjustment. Right before we export we must ensure to change the format from .glb to .gltf. This will produce a human readable file that we can edit.
Open the .gltf file in the scripting program of your choice. (Notepad ++ or VSCode) search for the material you need to edit.
We use Ctlf+F to activate the find function and search for the unique material name.
We will need to edit the “alphaMode” parameter by changing it from “MASK” to “BLEND”.
With this edit made we can now save the file, then we need to select the revised .gltf and it’s texture files, zip these items together, and upload the zip file to VNTANA.
Export standard .glb from Keyshot and import the glb into Blender.
After we have imported the file into Blender we can navigate to our Shading tab.
Select the component with the material you wish to be translucent.
Selected the material, then Change the Alpha Blend mode from “Alpha Clip” to “Alpha Blend”.
Material is set to Alpha Clip (incorrect blend mode)
Material is set to Alpha Blend (correct blend mode)
Export as a .glb and upload to VNTANA.
After we have made our material edits, we can export it as a GLB.
To export, we go to File → Export → Export to GLB
We have found that exporting at 300 dpi is a good middle ground between quality and export time; if you notice blurry textures, you may need to increase the DPI or take a look at your asset’s UVs.
If you are looking for the best quality export, we recommend adding AO with samples set to 75.
(note that exporting with AO will significantly increase export times)
Keyshot uses the CPU as the primary component for most render and baking operations. You can set the renderer to utilize the GPU for rendering tasks but all export processes will be run on the CPU.
In order to increase export/render times it is recommended you use a CPU with a high Core count. The more cores available the more calculations can be performed thus decreasing the time it takes for an asset to export/render.
RAM is another key component when exporting from Keyshot, at the very minimum 64GB of ram. RAM is important as it allows Keyshot to store information pertaining to its bake operations the more RAM on hand the quicker it can perform its baking tasks.