Importing models into Luxion Keyshot 3.0

Importing models into Luxion Keyshot 3.0


In this article, I’m going to look at the process of taking a model in to Keyshot 3.0 (though the same process applies to previous version of Keyshot and Hypershot). They key stages involved are:

  • Preparing the model in your modelling software
  • Importing in to Keyshot
  • Composing your model/components within Keyshot
  • Applying materials to your model
  • Selecting the environment for your scene
  • Setting up the camera(s) for your scene
  • Rendering your scene

This is not to say that what I do is the definitive ‘how to’. Other folks may have a slightly or totally different approach, but how I do it works, and will give you an idea of what’s involved, and how to get started. As you progress with Keyshot, you may find you do things differently. If you think its worth other people knowing, do drop me a line and let me know.

Exporting your model

The first step is to look at exporting your model to bring in to Keyshot. I personally use Newtek Lightwave 3D for my modelling work, and so for exporting, OBJ is the best option. It will preserve my assigned surface names, as well as UV sets and texture map references. Although Lightwave exports OBJ files, I have for a long time preferred to use Deep Exploration from Right Hemisphere for that job.

To prepare model for export, a couple of primary factors will decide how you approach it;

How much ram does your workstation have?

How close do I anticipate getting to the model?

One prudent approach (and really should apply regardless of the above points) is to export your model as pieces or groups of the model that are close in proximity and/or visibility. This will allow you to easily export at a lower geometry density for those parts seen less readily in you render, and even to exclude them from the scene completely. Which is more; you could have high and low density versions which could allow for an unexpected close quarters render further down the line.

In Lightwave I freeze the subdivided geometry, and then look at key areas where there are lots of polygons that will be unseen, and band glue these to single rows. It shows how much geometry is processed in Lightwave when rendering subdivision geometry that is unnecessary.

The model I am using is a version of my trusty Bugatti Veyron, and it serves well to illustrate the geometry density points. With that in mind the model is separated up thus;

  1. Main vehicle including all body panels, belly pan, spoilers & diffusers, headlights, taillights, mirrors, and windows.
  2. Upper visible area of engine
  3. Interior including seats, steering wheel, roll cage, and other miscellaneous details.
  4. Wheels including brake callipers and discs.

The exterior I will generally export pretty high density, so I know there should be no major issues for 90% of likely renders. The engine can be removed for a significant number of renders, or a switch made for low and high density versions. The interior medium level, as I never had the intention of showing big close-ups of the interior, but it’s sufficient for an open door or window. The wheels are exported in line with the exterior of the car, but the brake components are lower density as they are only seen through the spokes of the wheels. By keeping them separated, I can relatively easily exchange them for entirely different models.

[image_frame style=”framed” align=”left” title=”Model in normal Lightwave Subdivision mode” height=”125″ width=”120″][/image_frame]
[image_frame style=”framed” align=”left” title=”Model in Frozen at Subdivision Level 4″ height=”125″ width=”120″][/image_frame]
[image_frame style=”framed” align=”left” title=”Bandglueing rows of polygons that are not required” height=”125″ width=”120″][/image_frame]
[image_frame style=”framed” align=”left” title=”Interior frozen at a lower level than exterior” height=”125″ width=”120″][/image_frame]

One final consideration and one that I fall foul of more often than I’d like; is the model FINISHED?! Sounds daft, but Keyshot is a one way journey. If you get your model in to Keyshot, get all your shaders applied, and then find you want to change or add things, the model can’t be pulled back in to your software. It means exporting the model again and re-importing, or at best importing a new model with additional geometry. Tweaking the model itself isn’t possible, so you need to be as certain as you can be that the geometry is finalised.

Importing your model

[image_frame style=”framed” align=”left” title=”Import Options” height=”125″ width=”125″][/image_frame]

When you import, you’ll be asked to set a few parameters for the process, starting with ‘centre geometry’ and ‘snap to ground’. The former will position the imported geometry in the centre of your scene space, which for a multipart model is not desirable. We require the parts to import and keep the relative positions. The latter is optional, and will simply rest the geometry on the ground, however we can do this is a single click operation at any stage.

More important is specifying which axis represents up. Lightwave uses the Y axis as up, but this could vary depending on your software and OBJ export settings. If your model comes in to Keyshot tipped over on any axis, you can correct this afterward, but this could save you a little work.

[image_frame style=”framed” align=”left” title=”Normal Render Mode” height=”125″ width=”125″][/image_frame]
[image_frame style=”framed” align=”left” title=”Performance Render Mode” height=”125″ width=”125″][/image_frame]

At this point I typically switch to performance mode by pressing ALT+P, which switches off raytracing shadows, full reflections, and refractions. If your work station is powerful enough, you’ll never need to do this, but my Quad Core machine is pretty modest, and so it helps me out.

[image_frame style=”framed” align=”left” title=”Second model imported” height=”125″ width=”125″][/image_frame]
As you import your second item, you’ll get similar options to the first time, but make sure this time that ‘add to scene’ is checked, and that coordinates is set to ‘from previous import’. Nothing else needs to be checked. We should then find everything imports in the correct position relative to everything else.


Useful Information before Proceeding

Before doing too much else let’s take a quick look at the main interface elements we will be using. The main two area of interaction are the Project and Library windows. Expand each section below for an overview.

[toggle_framed title=”Project Window” variation=”orange”]

Project Window

[image_frame style=”framed” align=”left” title=”Project Scene Tab” height=”125″ width=”125″][/image_frame]
The scene tab is the first element here, and gives you a scene tree of all your imported models and components, along with the material that has been applied to each component.  The default section at the bottom shows translation, rotation, and scale information is also shown for the current model. Three buttons are also present; the first for snapping to ground, meaning the model will be rested exactly at ground level. Centre will move the object to a central position in the horizontal axis, while reset moves the object centrally back to world zero. The materials section displays all the materials in use for the model, and the animation section we will look at a later time.


[image_frame style=”framed” align=”left” title=”Project Material Tab” height=”125″ width=”125″][/image_frame]
The material tab is where the settings for specific materials are available. This includes type specific adjustments under properties; texture mapping details under textures, and labels is where individual decals/labels can be placed on your models. This will be looked at more closely at a later time.


[image_frame style=”framed” align=”left” title=”Project Environment Tab” height=”125″ width=”125″][/image_frame]
The fastest way to set up a scene will often be using one of the included HDRI environment maps, and the environment tab contains all the controls for adjusting the values and visibility of your environment map. Additionally you can choose to show ground reflections here too.


[image_frame style=”framed” align=”left” title=”Project Camera Tab” height=”125″ width=”125″][/image_frame]
The camera tab contains all the settings for the camera(s) in your scene. This includes numerous settings that will be familiar to anyone with an understanding of photography. You can also safeguard your camera set-up details by locking the camera from being moved or completely locked including settings.


[image_frame style=”framed” align=”left” title=”Project Settings Tab” height=”125″ width=”125″][/image_frame]
The last tab is settings. This controls the overall settings for the real-time renderer. The first settings are for resolution, brightness, and gamma. Underneath these are the quality settings. The performance / quality selector is the same setting toggled by ALT+P. The advanced section allows you to set Ray Bounces, which controls how deep reflections and refractions are traced In the case of glass objects, this can greatly affect realism, but also render times. More bounces take more time. Same applies with shadow quality, only increase it where needed in order to keep rendering more streamlined. The off-line render mode uses its own settings; this is just for the real-time render window.
Detailed Shadows enables more refined shadows in small detail areas of your model, which may or may not add to the final product. If not, this could save some time, particularly rendering animations.
[image_frame style=”framed” align=”left” title=”Indirect Illumination turned off” height=”125″ width=”125″][/image_frame]
[image_frame style=”framed” align=”left” title=”Indirect Illumination turned on” height=”125″ width=”125″][/image_frame]
Detailed Indirect Illumination and Ground Indirect Illumination enable light to be bounced from one surface on to another (and hence colour) within the geometry of your object, and on to the ground.


Effects allow you to bloom highlights and add a vignette. Personally I prefer to do this afterwards, but the option is there to make it a one hot process with the rendering.


[toggle_framed title=”Library Window” variation=”orange”]

Library Window

[image_frame style=”framed” align=”left” title=”Library Materials Tab” height=”125″ width=”125″][/image_frame]
First tab here is the all-important materials library. The upper area is a folder tree categorising your materials for easy reference. The lower shows the familiar ball render preview of each material.



[image_frame style=”framed” align=”left” title=”Library Environments Tab” height=”125″ width=”125″][/image_frame]
The Environments tab contains an organised library of HDRI images for quick and easy scene lighting.




[image_frame style=”framed” align=”left” title=”Library Backplates Tab” height=”125″ width=”125″][/image_frame]
Backplates shows you all the photograph backplates in the library, organised in folders so you can easy associate them to their companion HDRI’s.



[image_frame style=”framed” align=”left” title=”Library Textures Tab” height=”125″ width=”125″][/image_frame]
The textures tab show your library of maps used in the various material presets, and available to add to your own.




[image_frame style=”framed” align=”left” title=”Library Renders Tab” height=”125″ width=”125″][/image_frame]
Rendering is the content of the folder specified for Keyshot renders. Any screenshots you save will be in here, along with final renders when completed.


Composing your model / components in Keyshot

[image_frame style=”framed” align=”left” title=”Some key colours changed to assist aligning elements.” height=”125″ width=”125″][/image_frame]
The way my models are created in Lightwave means two things. One is that the wheels import into Keyshot located at 0,0,0 and that much of the model is totally black (due to the surface attributes being carried through in the OBJ). The colour issue not serious but makes positioning things tricky unless you assign a new colour first. Worth remembering! In this screen shot you can see the wheels being aligned. This achieved by simply selecting the root scene node for the model.

[image_frame style=”framed” align=”left” title=”Using the Top view camera as orthographic to position wheels” height=”125″ width=”125″][/image_frame]
[image_frame style=”framed” align=”left” title=”Back wheel in place, on to the next” height=”125″ width=”125″][/image_frame]
Using the numeric translation fields, the wheels are easy to shuffle in to position one by one. You can set the cameras to be preset left, right, top, bottom, front, and rear for this, making sure you set the camera to be orthographic rather than perspective.


[image_frame style=”framed” align=”left” title=”Everything imported, in position, and ready for materials to be added.” height=”125″ width=”125″][/image_frame]
The model then is imported, looking good, and is just gagging for some cool materials. At this stage I tend to keep it in performance mode for speedier response, as once the materials are applied, it’ll be a little heavier going.



[image_frame style=”framed” align=”left” title=”Materials are simply dragged and dropped to the model” height=”125″ width=”125″][/image_frame]
Adding materials is a simple drag and drop affair. Open the library window, browse your materials, and drag them on the model. They appear straight away and begin rendering. In this shot I have hidden the models I am not shading by un-checking them in the Scene Tree in the Project window.



[image_frame style=”framed” align=”left” title=”Lots of materials in place” height=”125″ width=”125″][/image_frame]
We can see lots of materials in place. Use the scene tree to hide parts to give you access to the ones behind (or right click on the model and hide the part). Some textures like the chrome grill mesh default to using UV coordinates, but if you don’t have UVs you can switch to planar, box, cylindrical, and spherical mapping. Then just scale the textures to match. If you make sure that the textures for specularity, bump etc.. have sync checked, they will scale to match the colour map.


[image_frame style=”framed” title=”All the materials are set, just positioning the camera. Performance made makes it a bit quicker on modest workstations!” height=”125″ width=”125″][/image_frame][image_frame style=”framed” title=”Materials? Check. Camera? Check. ENvironment? Check. Back to Quality mode to see how it looks. Shweet!” height=”125″ width=”125″][/image_frame]
With our model fully kitted out in materials, all we need to do is compose our render by configuring and positioning our camera, and drag the environment of our choice in to the render window to set our HDRI map (or change it). Backplates can be added the same way, it’s drag and drop pretty much all the way.

Final Rendering

For many applications such as email and web use, the resolution available through the on-screen real-time renderer is sufficient, however for print and so on much higher resolutions are required. This is where the off line renderer comes in. With the off-line renderer you have a set of paramters that you can set before you hit the go button!

[image_frame style=”framed” align=”left” title=”Render Output Settings” height=”125″ width=”125″][/image_frame]
Settings cover the output directory and output format, along with resolution and DPI. You can also specifiy rendering to take place in the background, potentially making the workstation more usable.



[image_frame style=”framed” align=”left” title=”Render Quality Settings” height=”125″ width=”125″][/image_frame]
[image_frame style=”framed” align=”left” title=”Render Quality Settings” height=”125″ width=”125″][/image_frame]
[image_frame style=”framed” align=”left” title=”Render Quality Settings” height=”125″ width=”125″][/image_frame]
You next have three subsets for configuring the quality of the rendering. You can firstly specify a defined render duration. Secondly you can specify the sampling level controlling the number of rays per pixel used to evaluate the scene. Thirdly you can control the quality levels of anti-aliasing, shadows, global illumination, depth of field, as well as ray depth levels. Pixel Filter size controls the over all edge sharpness for seating rendered content in to specific backplates.

[image_frame style=”framed” align=”left” title=”Render Queue ” height=”125″ width=”125″][/image_frame]
Rendering multiple jobs is no problem. You can configure your final render settings and then simply add it to your queue, and then later set off your jobs. Great for maximising the use of rendering time.



[image_frame style=”framed” align=”left” title=”Render Region” height=”125″ width=”125″][/image_frame]
Our last option is to render a specific region of our frame. We may have made a slight tweak, and rather than wait for the entire frame, we can isolate the area where our changes will be seen.



All systems GO!

With all the preceding steps completed, we’re ready to go, and sit back and wait for our render to complete!

[image_frame style=”framed” align=”center” title=”Awesome!” height=”349″ width=”620″][/image_frame]



Leave a Reply