Keyshot
KeyShot brings you real-time 3D rendering that displays results instantly and reduces the time to create realistic product visuals.
Last updated
KeyShot brings you real-time 3D rendering that displays results instantly and reduces the time to create realistic product visuals.
Last updated
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. Keyshot also does not support animation export.
Smart Export for 3MF, USD, and glTF formats includes baking of materials and textures. With this, additional export options are provided and the export includes a single texture file (png) that combines the following material properties:
Color/diffuse
Roughness
Normal map
Metalness
Ambient occlusion
In addition to the limitations mentioned in the Baking section above, export of the glTF format has following limitations:
Plastic (Transparent) material will be exported using the diffuse color only
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.
Export to glTF
Select File > Export > GLB/glTF, select the specific format, a location and give the file a name
Size: If your scene does not have scene units defined, you will need to select the scale of your geometry
Texture resolution in dpi: The texture resolution in dpi for each part. The dialog will start with a suggested value that is based on the scale of your model. A higher dpi will yield a sharper/more precise texture but also impacts the file size.
Include ambient occlusion: When enabled the ambient occlusion will be included in the baked texture.
Compress using Draco: This reduces the file size by compressing the geometry. Draco does not compress textures and therefore does not affect texture quality.
Number of samples: This controls how many times each pixel in baked texture is calculated for increased accuracy. Too low of a value will result in an image that has excessive noise. Increasing the value will increase the export process time.
Prefer Geometry Nodes or Textures: the format cannot handle both Geometry nodes (bubbles, flakes, displacement) and textures on a single part. If a part has both this choice will let you prioritize one type.
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.
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.
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.
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.
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
Tiff/png
32bit TGA
There are two ways to correct the blend mode within the exported Keyshot GLB.
Edit the material in Notepad.
Edit the material in Blender.
Notepad Fix
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.
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.