- Substance 3D home
- Home
- Getting started
- Interface
- Create with Clay
- Create with Primitives
- Get started with primitives
- Primitive parameters
- Organize primitives
- Organize your scene
- Render mode
- Export Mode
- Technical support
- Release notes
- V1.18 (Current Release)
- V1.17
- V1.15
- V1.14
- Public Beta V1.18.50 (Current Release)
- Public Beta Archive
- V1 Archive
- V0 Archive
Components and instances
Components in Modeler unlock the power of instancing. In 3D applications, instances are duplicates of an object that are linked to each other. Making a change to one instance will affect all connected instances in the same way.
What are instances?
In general, when you duplicate a 3D object without instancing, you're creating a second, new object that has all the same properties as the original object. Once the duplicate has been created, the duplicate and the original don't share any connection.
Instances behave differently. When you create a new instance of an object, the instance only holds data that says:
- Which original object is being instanced.
- The position, scale, and rotation of the instance.
This means that, unlike duplicates, any instances of an object actually display the original object, just with a different transform. As a result, if you make any changes to an instance, you're making changes to the original object and vice versa.
In other words, when you have 10 instances of an object, you actually only have one object that's in 10 places at once.
The animation below shows two instances of an object. Changes made to the instance on the left are immediately applied to the instance on the right, because they're actually the same object, just at a different position.
What are components?
Components enable you to create instances in Modeler. Components are like groups in that a component can hold other objects. Unlike a group, any duplicates you make of a component will be linked with each other as instances, so any change you make to the objects inside one component are reflected across all the other linked components.
Create instances with components
To create a component:
- Select an object in your scene.
- Open the actions menu.
- Click the Create button under the components section.
Once the component is created, the object is automatically placed inside it inside the Outliner. Any duplicates of the component will be linked as instances to each other, and any changes you make to objects inside any instance of a component will be reflected across all linked components.
Unlink components
You may want to unlink components from each other in order to modify an instance to be unique. To detach a component:
- Select the component, either in the scene or from the outliner.
- Open the Actions menu.
- Select Detach from the Components section.
The Component will be converted into a group, breaking any links that it previously had with other components. Once a component has been detached, it's not possible to relink it with other components, except by using Undo to undo the detachment.
Why use components and instances?
Instances provide a few benefits. First, by using instances, it's possible to modify all of the copies of a given repeating element by only making changes to one of them. For example, a mechanism that has hundreds of screws, or an alien with a dozen eyes. Without instancing, if you wanted to update the appearance of the screws or eyes, you would need to update each one individually. Instead, with instances, you only have to modify a single screw or eye to have the changes reflected everywhere across your scene.
Instances also take up far less memory than a duplicate would. Instances only store a tiny amount of information (a pointer to the original object and transform information of the instance). Instead of storing all of the SDF data that clay requires, an instance only takes up a few bytes of memory.
Lastly, instances are cheaper to render. In general, due to how graphics cards work, rendering thousands of instances isn't much more costly than rendering a single object.