Using Datasmith with Rhino

Describes special considerations that apply when you use Datasmith to import scenes from McNeel Rhinoceros 3D.


This page describes how Datasmith imports scenes from McNeel Rhinoceros (Rhino) into Unreal Editor. It follows the basic process outlined in the Datasmith Overview  and About the Datasmith Import Process , but adds some special translation behavior that is specific to Rhino. If you're planning to use Datasmith to import scenes from Rhino into Unreal Editor, reading this page can help you understand how your scene is translated, and how you can work with the results in Unreal Editor.

Rhino Workflow

Datasmith uses a Direct workflow for Rhino. This means that to get your Rhino content into Unreal using Datasmith, you need to:

  1. Save your Rhino scene to a .3dm file.

  2. Enable the Importers > Datasmith CAD Importer Plugin for your Project, if it's not already installed.

  3. use the Datasmith importer available in the Toolbar of the Unreal Editor to import your .3dm file. See Importing Datasmith Content into Unreal Engine 4 .

To read more about other types of Datasmith workflows, see Datasmith Supported Software and File Types .

Converting Geometry into Static Meshes

Datasmith creates a separate Static Mesh Asset for each separate mesh, solid, or surface in the Rhino file. If the object has its Name property set in the Properties panel in Rhino (shown on the left in the image below), Datasmith uses that name for the Static Mesh Asset (shown on the right in the image below). Any Actors that Datasmith creates in your Level that refer to that Static Mesh Asset also use the same name.


When Datasmith detects multiple instances of the same block in your Rhino scene, it only creates one set of Static Mesh Assets for the geometry in that block, and places multiple instances of those Static Meshes into the scene. This is typically better for the runtime memory requirements and performance of your Project, as well as making it easier to manage the number of Static Meshes in your Content Browser.

Wherever possible, we recommend taking advantage of this by making any repeating elements in your scene (such as windows, doors, or chairs) into blocks in Rhino. For details, see the Rhino documentation .

Tessellation and Render Meshes

Unreal Engine always renders objects using triangular meshes. If you have objects in your Rhino file that are defined as parametric surfaces, or NURBS, these surfaces need to be transformed, or tessellated, into triangular meshes. Datasmith offers two methods for handling this situation. You can choose the method you want to use when you import a Rhino file, in the Geometry setting of the Import Options dialog box:

Rhino Import Options

  • Import as NURBS, Tessellate in Unreal - If you select this option, Datasmith imports the original curve-based data for all surfaces from Rhino. It then tessellates these surfaces into triangular meshes, using the values of the other parameters you set here in the Import Options dialog to control the complexity and fidelity of the mesh to the original surface. For details on the Datasmith tessellation process,and the parameters you can use to control it, see Using Datasmith with CAD Files . After generating the triangular meshes, Datasmith then generates new UV mappings for the new mesh geometry it created.

  • Import Rhino Meshes and UVs - If you select this option, Datasmith skips its built-in tessellation step. Instead, it attempts to find triangular meshes and UV maps generated by Rhino for your surfaces and saved in the Rhino file. If it can find these triangular meshes, it imports them and uses them for rendering in Unreal Engine.

    Missing template.

Triangle Facing Direction

Rhino typically displays all surfaces as two-sided, regardless of the direction of their surface normals. However, the Unreal Engine automatically culls triangles that face away from the camera. This may cause some geometry in your scene to disappear when viewed from certain angles.

For example, the image below shows a wheel well cover that was modeled with its surface normals facing inward. After the scene is imported into Unreal, the sides at first appear to be missing. In this case, flipping the normal direction of the object makes the sides appear as they should.



For a complete discussion and recommended solutions, see About the Datasmith Import Process .

Rhino Materials

For each different surface material that Datasmith finds in your Rhino scene, it creates a separate Material Asset in Unreal with the same name, and places that Material in the Materials folder next to your Datasmith Scene Asset.

  • Each Material in the Materials folder is a Material Instance that exposes properties set in the Rhino file: color values, texture maps, and so on. You can change these exposed properties to modify the way the Material looks when applied to a surface. Datasmith assigns these Material Assets to the Static Mesh Assets it creates in order to shade their surfaces the same way they appear in your Rhino renders.

    Datasmith only imports materials from Rhino objects into the Unreal Engine. It ignores Rhino display colors completely. This makes the visual result of your import into the Unreal Engine match the result of rendering in Rhino as closely as possible.

  • Datasmith also creates a set of parent Materials in the Materials/Master folder. Each of these is the parent of at least one of the Material Assets in the Materials folder. You can edit these parent Materials if you want greater control over the Material graphs that define how each surface appears, expose additional parameters to child instances, or change the way the exposed parameters are taken into account during rendering.

    Note that changing a parent Material also changes all Material Instances that inherit from that parent automatically. It's usually a good idea to duplicate a parent Material before you modify it, then make your changes to the duplicate, then finally update specific Material Instances to use your new duplicate as their parent. For details, see Modifying a Datasmith Master Material .

Building the Datasmith Scene Hierarchy

Datasmith builds its scene hierarchy from your Rhino model as follows:

  • For each layer in your Rhino scene, Datasmith creates an Actor in Unreal to act as the parent for all objects on that layer.

    Note that unlike the layers that are created in the Layers panel of the Unreal Editor, this hierarchy of Actors is not flattened. The Actors are nested exactly like the layers in your Rhino scene.

  • Under the Actor that represents each layer, every instanced block on the corresponding layer is represented by another Actor.

    Warning: Pivot points on Rhino blocks are currently imported at the wrong position in world space.

  • Finally, the Actor that represents each layer and each block contains Static Mesh Actors that represent the actual geometry objects that make up that layer or block.

    Points in Rhino are represented as empty Actors in Unreal Engine. This preserves the points as named elements in the scene hierarchy, without creating any geometry for them.

  • Groups in Rhino do not affect the Unreal scene hierarchy, as they are considered selection helpers rather than important elements in the scene hierarchy.

For example, in the image below, you can see that every layer in the Rhino hierarchy has a counterpart Actor in Unreal. Layers like lights > turn signals, which contain only geometry objects in Rhino, contain only the corresponding Static Mesh Actors in Unreal. The lights layer in Rhino also contains two block instances, named left_headlight and right_headlight. Each of these is represented by a nested Actor in Unreal, which in turn contains the geometry objects that make up those blocks.

Credit: The model used on this page is courtesy of Turbosquid  user .

Select Skin

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback