modo bubbble logo


Home >> Layout & Simulation >> Replicators

back next

Simons Forest

Replicators are a means of generating render time duplicates of geometry in a scene allowing users the ability to render literally billions of polygons with full support for all of MODO's shading and rendering capabilities. A Replicator is more like a controller though than an item. Unlike all the other items which have visible representations in the scene (OK, except for the Group Locator), Replicators are only visible once their 'Prototype' and 'Point Source' option have been populated. Once defined, the Replicator then controls how duplicates of the item are copied onto the target point source. Replicators are also unique in that they require these additional elements to function. The 'Prototype' is simply any 'Mesh' item layer within the given scene. The 'Point Source' defines the positioning of the duplicates; by default the center position of the initial mesh layer will be positioned precisely at the location of each vertex in the point source item, so while users don't have direct control over the positions of Replicated meshes (like with Instances) users can indirectly control their locations with the point source by adjusting the vertex positions.


Creating Point Sources

Point Sources can be any mesh layer, so any of the ways that users can create geometry can be used to create point sources. This could even be something as simple as a flat plane created using the Box tool. If someone were to apply a replicator to a single poly plane, they could easily see that there were four replicas at each corner (vertex position) of the polygon. In order to get additional replicas, the polygon would require additional subdivisions. This can be achieved by increasing the 'Segments' option found in many of the primitive geometry tools, or after the fact by simply applying the 'Subdivide' command found in the "Mesh Edit" sub tab of the modeling toolbox. If someone were to sculpt this now subdivided plane, adding hills and valleys, the replicas would still be positioned at each vertex, but instead of facing upward normally, they would now each align themselves to the normal direction of the background vertex (which is an average of the normal direction of all the surrounding polygons) following the contours of the surface. This indirectly allows users to control position and to a degree rotation by simply using the shape of the point source geometry. Virtually any kind of geometry MODO creates can be used as a point source, including the various Curves. Once users have good understanding of how Point Sources work with Prototypes to clone replicas, then generating them becomes an easy task.

Tip icon

TIP: Replicators align the Prototype mesh's 'Center' to the vertex position of the Point Source. Therefore users need to make sure the Prototype geometry is positioned appropriately in relation to its 'Center'. By default this is the World 0,0,0 position for each layer. Users can easily align the Center in relation to the geometries bounding box using the 'Center to Bounding Box' commands found in the 'Edit' menu. User may also manually transform the Center while in Center Selection mode. For more on working with Centers, see the documentation page on Selection Modes.

Creating Replicators

Replicators can be created like any item in the scene by using the 'Add Item' function of the items list. Users can LMB+click to open the 'Add Item' menu and select the "Particles > Replicator" option. This adds a blank Replicator item to the item list. User can then manually populate the 'Point Source' and 'Prototype' fields with the appropriate items. Users can also automatically populate these options using selection order. Select the target item that will be the 'Point Source' first in the 'Items list' or 3D viewport, and the 'Prototype' item second. Then use the menu bar command "Item > Replicators > Add Replicator". Once invoked, users will instantly see their geometry cloned onto the source item.


Adding Randomness

Generally, most geometry, especially that created using Primitives, when utilized as a point source produces replicas that users may find too regular in placement. In some cases this geometric uniformity to the positions can be desired, but in most cases a more natural randomized placement will be the goal. Users can use the 'Variation' settings of the Replicator itself to randomize the positions as an offset from the vertex position. Adding in some Scale and Twist (rotation) randomness will help to reduce the uniformity of the replicas as well. When additional randomness is desired there are more versatile options available.

Users can introduce randomness by starting at the Point Source level. When fine control over replicas isn't necessary, users can utilize what is known as a point cloud. Point Clouds are collections of vertices, with no edges and no polygons. These could be useful Point Sources for splashes of water droplets, or exploding shrapnel. Before users can create a point cloud they'll need to enable their view as they are disabled by default. This can be done by opening the viewport Options panel, press 'O' while hovering the mouse over the target 3D viewport. Then pressing the 'Visibility' subtab and then enabling the 'Show Vertices' option. Users can then draw individual vertices using the 'Vertex Tool', or better still, create some geometry using a primitive tool, such as the Sphere, and the utilize the 'Remove' command to eliminate all the edges and polygons leaving behind only vertices. Then users can use the deform tools to push and pull vertices into position. The 'Jitter' function is also a great way to further randomize the point source. Point Clouds can procedurally create a volume of particles that are assigned as Point Sources in the same way as any other mesh layer in the Replicator item.


More Randomness

Sometimes randomizing the Point Source itself isn't desirable or viable so MODO has another option to help randomize placement called a 'Surface Particle Generator'. What it does is randomly places points all over the surface of a target item, where the orientation of each particle is dependent on the underlaying surface where it is placed. In order to take advantage of a Surface Particle Generator, users can add one manually in the Items List using the 'Add Items' menu under "Particle > Point Clouds > Surface Particle Generator". In the Surface Particle properties panel, assign the item to place the particles upon by specifying it as the target item under the 'Source Surface' option. If the resulting particle should be further limited to a specific area of the target Item, then the 'Material Tag' option will allow the selection of a Material associated with the item, allowing for further confinement of the generated Surface Particles. Once the Particles are defined, the 'Surface Particle Generator' will need to be assigned as the 'Point Source' in the Replicator to produce the intended result. To create a 'Surface Generator' automatically, users need only to RMB+click on the Replicator item itself and select the 'Scatter Replicas' command from the contextual menu. Once defined, adjustments to the settings of the 'Surface Particle Generator' item can then be made to refine the placement of the objects. Further, the 'Density', 'Normal' facing direction (orientation) and 'Size' can be controlled for Surface Particle items using texture layers of the Shader Tree, by setting the appropriate 'Effect'.

Other times it can be desirable to assign randomized surface particles using the Shader Tree. This can be in cases where the Shader Tree is being used for displacement and the evaluations of the Surface Particles needs to take this in to account (A Surfacer Particle Generator wont see Displacement on a surface). In these cases using a Shader Tree 'Surface Generator' is the preferred particle generation method. This adds a few benefits as well, since Surface Generators are Shader Tree aware, meaning they can be masked by Group items and assigned other Shader Tree effects. The Surface Generator can be added to the Shader Tree using the 'Add Layer' function and then specified as the 'Point Source' in the Replicator. Adjustments to its many attributes in the Properties panel will further refine the placement of the Replicas. For more information on adding and working with Shader Tree layers, please see that page of the documentation.


Controlling Placement

Sometime users will need specific control over the placement of Replicated items. When using texture layers in the Shader Tree is not accurate enough for the intended purpose users can draw individual points using the 'Vertex Tool' and generate the points directly on a surface using the Background Constraint. Simply create a new Mesh Item layer and the specify that as the Point Source in the Replicator. Then draw the vertices with the tool active. Remember to hold down the 'Ctrl' key to draw additional vertex points while the tool is active. If there is also a need to control the orientation and scale of the replicators, a vertex transform map will allow that. Once the map is assigned to the layer, with the named vertex map and target particle selected, activate the Scale or Rotate tools to apply the transformation to the Replicated element. It is only possible to see the results of the vertex transform map when a Replicator is assigned to the target Point Source.


Particles and Simulations

MODO offers a complete particle dynamics system. Particles, of course, are just points and any particles simulated can be assigned as a point source in a Replicator, providing for a virtually unlimited number of uses. Particle simulations work in their basic form by starting with adding a 'Particle Simulation' item and the creating an emitter, a 'Radial Emitter' being the easiest to work with. Next, by assigning the 'Particle Simulation' item as the point source in the Replicator, the Source mesh will now animate along with the simulated particles. There are actually way too many options related to particle simulations to even begin covering them here, so it is recommended to view the Simulation Overview section of the documentation for more information regarding working with Particles and simulations.


Working with Groups

Another way users can add a great amount of believability and realism to a scene when using Replicators is to replicate more than a single mesh. This can be done easily by collecting multiple elements into a Group and the Replicator will then randomly grab members of the group when placing individual clones. Not to be confused with items parented to a Group Locator, to create a 'Group', users need to first open the Groups viewport and the select all the Mesh item layers they wish to add to the Group. Within the Groups viewport, LMB+click the 'New Group' button and define a new Group. The dialogue box that opens will allow a name to be defined for the Group with an option to make all selected items members of the named group. Press 'OK' to create the Group and add the selected items. After the Group is created, users need to define the named Group as the 'Prototype' source in the Replicator itself. MODO will then randomly grab one of the items specified in the group for each replica. This can be a great option for applying rocks and plants to an outdoor scene, or trees to a forest scene.

Tip icon

TIP: Users can control the percentage that a group member is used by cloning the elements. For example, if the Group contains 9 red spheres and 1 blue cube, the blue cube only appear approximately 10% of the time across the surface.

Animating with Replicators

Many users may not know that is is also possible to replicate animated items as well. These animations can be either through keyframes, or via deformers. To specify an animated item as a Prototype, users will need to ensure the item layers are properly set up as a hierarchy, and then will need to specify the top most parent item as the prototype in the Replicator. Then enabling the 'Include Child Items' option will ensure all items in the hierarchy will be replicated as well. To add additional randomization, there are 'Time Offset' and 'Random Time Variation' options.

In order to animate the replicator itself, users can animate the settings of the Replicator and/or Surface Generator, or animate the Point Source directly. Users can apply normal keyframed position and rotation transforms to the point source, but will find that scaling will also scale the replicas themselves. In order to scale the point source properly, users will need to add a morph to the item and then animate the morph over time. Please see the Morph Deformer for more on applying and animating a morph.



Sometimes it can be handy to use flat poly planes to clone an image map with a Replicator, maybe used as a forest of distant trees. Using a single polygon, assign the image map to the polygon face and then use that Mesh layer as the 'Prototype' and assign the 'Point Source'. To keep the planes from rotating away from the camera, giving away their flat nature, users can assign the 'Look-At' particle modifier, keeping the faces oriented toward the current render Camera item. To assign this option, select the 'Replicator' item in the Items List and the invoke the menu bar command "Items > Replicators > Replicator Face Camera". This will assign an additional deformer to the scene keeping the replicas oriented correctly. Although, it may be necessary to make sure the original flat plane is facing toward the correct Front direction (Z+); use the 'Front' viewport projection type to ensure the correct orientation.



Freezing & Replicators

Replicators are all well and good if you intend to keep your geometry within MODO, however, there are times when one needs to export geometry to an external application, or possibly one just needs absolute control of over the placement of a few individual clones, so MODO offers the ability to Freeze Replicators and their associated Particle generators converting them to Mesh items with only vertices. The following Freeze commands are found in the menu bar under "Items > Replicators > ..."

Freeze Replicator: The 'Freeze Replicators' command converts the selected Replicator Item into a series of individual Instance Items that all reference the original Replicator 'Prototype'. The resulting Instances will all be children under a Group Locator folder in the Items List. Each Instance will have its own transform values for editing individual elements.

Freeze Surface Generator: The 'Freeze Surface Generator' will convert the procedurally generated Shader Tree 'Surface Generator' points into a Mesh Item layer containing individual vertices for each point. Resulting vertices can be modified with any modeling tools, or edited with the Particle Paint tools.

Freeze Particle Generator: The 'Freeze Particle Generator' will convert the procedurally generated 'Surface Particle Generator' points into a Mesh Item layer containing individual vertices for each point. Resulting vertices can be modified with any modeling tools, or edited with the Particle Paint tools.



back next