Surface Generator

Replicaotr Default

A Surface Generator works in tandem with a Replicator item to offer a greater degree of control over the random placement and density of replicated objects. Once you add a Surface Generator, you can use additional texture layers to control density, size, direction, and even coloration by setting the texture layer to the proper effect.

Note:  For information about adding and working with Shader Tree item layers and setting their effect, see the Shader Tree topic.

Replicators, themselves, use vertex data to propagate replicas. Although there is an amount of randomization available for the replicas, there is still a certain degree of regularity to them. By using a Surface Generator, you can have Modo generate random points across the surface of a Mesh Item. The added Surface Generator then passes along this information to the Replicator for prototype propagation.

For example, if you model a tree and want to replicate leaves over its surface, you would want better control of the overall density than you could get by simply replicating them to only vertex positions. Additionally, you could use a Weight Map to limit the leaves' distribution on the branches and not the trunk. You could also make some additional color variations by using a gradient layer to produce far more realistic results.

Tip:  Similar to using a Surface Generator, using a Surface Particle Generator item is another way to add random placement to Replicator elements. However, because surface particle items work outside of the Shader Tree, the surface particle item cannot see surface deformations (such as Displacement). If that is required, then you must use a Surface Generator as a point source.

Adding a Surface Generator

To use a Surface Generator, you must first assign it to the target surface by creating an item mask. (Right-click the target item in the 3D viewport and choose Create Item Mask.) Then add the Surface Generator item to the group by adding it as a layer. (Choose Add Layer > Special > Surface Generator.) You can also add the layer to an existing surface by placing a Surface Generator into an existing material group. Once you define the Surface Generator for the target surface, you then only need to assign it as the point source in the Replicator Item. You can adjust Surface Generator settings as needed.

Tip:  To add some variety to replicated objects, you could use groups. By creating a group from multiple Mesh Items and specifying that group as the prototype to be cloned, the Replicator pulls random items from within the group to add further randomness and variation to the cloned objects. Once you create a group, it shows up in the Prototype list of the Replicator item. Additionally, you can make the surface for replicas more random by using gradients set to the Particle ID input parameter.

When you select a Surface Generator item, its attributes appear in the Properties panel.

Surface Generators Panel

Option

Description

Layer

Enable

Toggles the effect of the layer on and off to duplicate the functionality of toggling visibility in the Shader Tree. When disabled, the layer has no effect on the shading of the scene. However, Modo saves disabled layers with the scene, and they are persistent across Modo sessions.

Invert

Inverts the colors (RGB values) for the layer to produce a photonegative effect. This is a standard texture layer control and provides no functionality specific to the Surface Generator.

Blend Mode

Affects the blending between different layers of the same effect type. With this, you can stack several layers for different effects. This is a standard texture layer control and provides no functionality specific to the Surface Generator.

For more about blending, see the Layer Blend Modes topic.

Opacity

Changes the transparency of the current layer. Reducing this value increasingly reveals lower layers in the Shader Tree, if present, or dims the effect of the layer, itself, on the surface. This is a standard texture layer control and provides no functionality specific to the Surface Generator.

Surface Generator

Average Spacing

Specifies the average distance between replicated items.

Minimum Spacing

Specifies the minimum amount of space between replicated items. This is especially useful in eliminating overlaps for neighboring replicas.

Density Multiplier

Controls the overall density of replicated items. Lower values reduce the overall number of replicas; higher values increase the overall number of replicas up to the Particle Ceiling value.

Ignore Deformations

When enabled, maintains particle positions on a surface through the deformation as if the particle positions are fixed if you apply an animated deformer (such as a morph or weight deformer). When disabled, the changes to the underlying surface from the deformer triggers Modo to re-distribute surface particles in a way that the particles retain their Average Spacing and Minimum Spacing values.

Seed

Specifies the initial number Modo uses when generating the procedural values. Different Seed values produce different random variations and can be useful in changing the texture result; however, you need to use the same Seed value when you want items to retain the same variations.

Scale Factor

Controls the scale of replicated objects to eliminating the need for manually scaling the base, prototype item. With a value of 100%, Modo generates replicated items at the same size of the prototype. Smaller values decrease each replica's size; larger values would increase each replica's size.

Particle Ceiling

Specifies a maximum for the total number of generated replicas.

Distribution

Density VMap

Specifies an embedded Weight Map on the target surface and uses its values to control the density of the particle distribution. Doing this eliminates the need to create custom image maps. You can select any available Weight Map from this list to control the density of the resulting particles. Weight Map values work as a multiplier over the normal rendered density. A value of 1 produces the unmodified 100% density and fades toward 0 to produce 0% density. Weight values can also be greater than 1 for added density control.

Density Gradient Input

Specifies the input criteria that Modo uses to control the density of the resulting particles based on the Density Gradient.

Density Gradient

Modifies the density. By using a mini-gradient input, you can modify the density with gradient keys that represent a percentage of the original density.

Much like how a keyframe defines a value in time, gradient keys represent values across the selected input parameter (such as over the angle of Slope). You can add keys by middle-clicking along the length of the gradient input and then dragging the key icon up or down to adjust the value. The grayscale bar gives visual feedback as to how the values fade from one key to the next. White produces a 100% density attenuating toward black at 0% density. If you open the Gradient Editor, you can specify values above 100%.

Size VMap

Specifies an embedded Weight Map on the target surface and uses its values to control the scale of the elements connected to the generated particles. Doing this eliminates the need to create custom image maps. You can select any available Weight Map from this list to control the scale of the resulting particles. Weight Map values work as a multiplier over the regular sizing. A value of 1 produces the unmodified 100% size and fades toward 0 to produce 0% scale. Weight values can also be greater than 1 for added scale control.

Size Gradient Input

Specifies the input criteria that Modo uses to control the scale of the elements connected to the generated particles based on the Size Gradient.

Size Gradient

Modifies the scale. By using a mini-gradient input, you can modify the density with gradient keys that represent a percentage of the original scale.

Much like how a keyframe defines a value in time, gradient keys represent values across the selected input parameter (such as over the angle of Slope). You can add keys by middle-clicking along the length of the gradient input and then dragging the key icon up or down to adjust the value. The grayscale bar gives visual feedback as to how the values fade from one key to the next. White produces a 100% scale attenuating toward black at 0% density.

Vector VMap

Specifies the vector map to use its values to control the orientation and scale of the elements connected to the generated particles. If you create an embedded vertex vector map on the target surface, you don't need to create custom image maps to do so. With a vector map, you can use the sculpting tools (like with hair guides) to control the replicated elements. Elements controlled by vector Vertex Maps automatically adapt to surface deformations because the vector maps are defined in tangent space.