Replicator Item
Replicators are a means of generating render time duplicates of geometry in a scene, allowing you to render billions of polygons with full support for all of Modo's shading and rendering capabilities, such as global illumination, soft shadows, and refractions.
Replicators are similar in concept to Modo's instances. They derive all their shape and shading information from a base mesh, but unlike an instance, replicas can't be manipulated directly. You cannot position, rotate or scale individual replicas with the usual transform tools. Replicators generate positions using a mesh item as a point source, utilizing the vertex positions to place the individual replicas. Their positioning can also be further manipulated by adding a surface particle generator item, allowing for a greater degree of randomization and overall control. For more information, see CSV Point Cache.
Replicators require two mesh items, the first being a point source item, and the other is a prototype. The point source object acts as the surface, determining the position of the replicated objects, and the prototype is the object that is duplicated. Consider the example of a dry creek bed littered with river stones. The creek bed is the point source determining the placement of the stones and the stones themselves are the prototypes. You can add variety to a Replicator by adding multiple mesh items to a group defined in the Groups Viewport and assigning that as the prototype instead of the single mesh item. When specified as such, Modo randomly grabs a member of the group to replicate, providing additional variety to the cloned objects.
Adding a Replicator
1. | Select the point source item in the Items list, hold Ctrl, and click the prototype item, so both items are highlighted. |
Note: Selection order is important.
2. | In the menu bar, click Item > Replicators > Add Replicator. |
A Replicator item is added to the Items list and a series of bounding boxes are positioned over the surface of your point source geometry. Each bounding box represents the individual replicas.
Tip: If you'd prefer to set up your replicator manually, or just wish to understand what the Add Replicator function is doing, follow these steps.
1. | Click Add Item at the top of the Items list, then choose Particles > Replicator from the list. |
Tip: Selecting the Replicator item itself displays its attributes in the Property panel.
2. | In the Instancing section of the Replicator's properties, choose the appropriate geometry in the Point Source and Prototype selectors. |
There are a number of other settings that allow you to add some random variations to the replicas. Further randomization is possible through the use of a surface particle generator. You can right-click on the Replicator item and choose the Scatter Replicas option from the pop-up menu to assign one, adding the particle layer to the Items list. For additional options and details related to Replicator usage, see Replicators.
Replicator Properties
Transform
Name |
This data field displays the current item name. Change it by clicking on the field and typing the new name. |
Transform |
|
Position |
An item transform that allows you to numerically position the item in XYZ space. By default, position transforms originate from the center position. Modifications to the position of the Replicator act as an offset from the original point source defined positions, allowing you to transform the entire array. |
Rotation |
An item transform that allows you to numerically set the rotation of the item. By default, rotation transforms originate from the center position. Modifications to the rotation of the Replicator act as an offset from the original point source defined positions, allowing you to transform the entire array. |
Order |
Allows you to set the order that rotations are applied to the camera item. Changing the order that rotations are applied can sometimes help to reduce or eliminate gimbal lock. |
Scale |
An item transform that allows you to numerically set the size of the item. By default, scale transforms originate from the center position. Modifications to the position of the Replicator act as an offset from the original point source defined positions, allowing you to transform the entire array. |
Reset |
Resets the selected transform values to (0,0,0) returning the items to their default state. |
Zero |
Resets the chosen transform property values to 0, leaving the center position and item position intact. |
Add |
Transform items are the channel groups associated with an item that store its transform values, controlling its position, rotation and scale. By default, new items do not have any transform items associated with them, even though they are visible within the Properties panel. This is useful as an optimization as only the necessary transforms are added on an as-needed basis, reducing scene overhead. There are several ways to add them. You can simply transform the target item with one of the various transform tools, or by editing the value input fields. This action causes the particular transform item to be added automatically to the Channels viewport list. The Add function here can also be used to add the selected set of transforms to the channel list while keeping the default 0,0,0 values. A necessary step for referencing, in order to override the channels, they must first exist. |
Instancing
Prototype |
The Prototype object is the Mesh Item that is duplicated over the point source. This can be something as simple as a single polygon or cube, or something as complex as a tree or high-rise office building. If your object is made up of multiple Mesh Item layers, make sure to parent the items together in a hierarchy and select the Include Child Items toggle. This also works for animated items. |
Point Source |
The Point Source geometry is the surface that controls the positioning of prototype items. The default behavior is a replica generated for each vertex of the point source geometry. Each prototype is aligned with each point source vertex, based on the point of origin for the prototype (not the pivot) and the positive-Y of the prototype is aligned with the vertex normal direction. |
There are four different source modes Modo can use to generate replicas: • Point Data - uses the position of each vertex in a mesh, but the prototype retains its original orientation. • Align to Surface - uses the vertex position as well as the normal direction to align each replica, also taking into account subdivision surface smoothing. • Use Polygons - generates a replica for each polygon, positioned at the center of each polygon and aligned with the polygon's normal direction. Note: If you need to generate replicas over a surface with a displacement map, you need a surface generator. • Use Polygon with Connectivity - generates a replica for each polygon, positioned at the center of each polygon and aligned with the polygon's normal direction. Additionally, it aligns X and Z direction of the particle axis to neighbor connecting quad polygons. This is useful when you want to duplicate object along a strip of polygons. For example, telegraph poles along a street or stitching on a shoe.
|
|
Include Child Items |
When enabled, Modo replicates a parent/child hierarchy. When disabled, only the parent item is replicated. If your prototype geometry consists of only a single Mesh Item layer, you can leave this setting disabled. |
Use Prototype Transform |
By default, replicated elements are not affected by item transforms of the source Prototype, their positions are strictly defined by the vertex positions of the point source relative to the source's center position. This means that position, rotation and scale changes applied to the base item don't translate to the replicated elements. When enabled, the source item transforms affect the replicated elements, each offset the same value from their initial point source positions. |
Render |
This dropdown menu allows you to select from 3 options. When set to Default, you can enable/disable Mesh Item using the visibility column () of the Items list. When the mesh layer is visible, it contributes to the final rendered scene and when invisible, it doesn't. In some cases you may prefer to fix this state, setting the mesh as On (enabled) or Off (disabled) regardless of visibility. This is useful for workflows that auto-toggle visibility: you don't have to manually enable mesh layers for test renders. |
Dissolve |
Fades all replicated items from view. At 100%, the item renders normally, while values lower than 100% fade all replicas ramping toward 0%, where the replicated items become completely invisible. |
Render Density |
Controls the number of generated replicas. Normally, an item is generated at each vertex position, so for a 10x10 grid, you get 121 vertices, therefore 121 replicas. Setting the Render Density to 50%, the Replicator randomly generates replicas reducing the overall number by the approximate density value. Values below 100% reduce the number of replicas, however, values above 100% don't generate additional replicas. You may wish to use a 'Surface Generator' to provide better control over the number of generated items. |
Display Density |
Only the bounding box of replicated items is displayed in the 3D viewport. If the number of replicated items becomes too great, you may wish to reduce the number of bounding boxes displayed by adjusting this value. A setting of 0% disables the bounding box's display without affecting the final rendered image. |
Render Multiplier |
The Render Multiplier and Render Multiplier Radius settings allow you to add extra replicas for each point and scatter them. This field specifies how many copies of the object you want to scatter. Note: The additional copies can only be seen on the render. |
Render Multiplier Radius |
Specifies the size of the area in which the copies are scattered. |
Variation
Seed |
This value is an initial setting used when random numbers are generated. Different Seed values produce different random variations, however you want to use the same Seed value when it is necessary that items retain the same variations. |
Random Offset |
When set to any number above 0 for X, Y or Z, it provides a range from where random values can be generated. For example, with an offset value of 1m, the replicated item is randomly offset up to 1 meter from its initial position. Values of 0 disable this functionality. |
Random Twist |
When set to any number above 0 degrees for X, Y or Z, it provides a range from where random values can be generated. For example, with an twist value of 90 degrees, the replicated items are randomly rotated 90 degrees in either direction from initial position. Values of 0 disable this functionality. |
Random Scale |
When set to any amount above 0%, produces a random scaling amount anywhere within the range for the value specified. For example, with a setting of 50%, replicated items vary anywhere between 50% to 150% of the item's original size. Values of 0 disable this functionality. |
Uniform Scale |
When using Random Scale values, all three axes are generated independently. When Uniform Scale is enabled, random scaling of generated replicas would be uniform across all axes eliminating squashing or stretching. |
Base Scale | Scales the source object before Random Scale is applied, so the Random Scale value is adjusted based on the scale of the original object. At the default 100%, replicas are scaled either larger or smaller than the original object. Below 100% replicas are scaled smaller, and above 100% replicas are scaled larger than the original object. |
Time Offset |
Offsets the playback of an animation applied to replicated objects. It can also be used to move the random span of time when combined with Random Time Variation. For example, if this is set to 5 seconds and the variation is set to 1 second, then the replicas get their motion from the animation of the prototype between 5 and 6 seconds into the future. |
Random Time Variation |
Selects a span of time for replicas to vary their animation within from their current time. So, if this is set to 1 (second), then the replicas play their animations on a random start frame between the current time and one second in the future. |
Quantization Count | When using Random Time Variation, this option limits the number of unique deformed individual meshes. This is useful for improving performance when working with a large number of replicas. The default is 100, which means that the replicator uses 100 unique variations and the rest of the replicas are instances of those. |