Square Enix © Goodbye Kansas

Table of Contents

This page provides information about Chaos Scatter integration in V-Ray for Maya.


Overview



Chaos Scatter is a powerful instancing and distribution tool that allows you to easily populate scenes with selected objects. This is especially useful for outdoor scenes that need to be filled with greenery, rocks, grass etc.

See the video for an example workflow.


UI Paths

UI Path: V-Ray menu > Chaos Scatter


UI Path: V-Ray shelf > Chaos Scatter button






Workflow



To use Chaos Scatter within Maya, go to the V-Ray shelf and click the Chaos Scatter button.

Add your target object in the Targets Objects field. These are the objects that have models scattered over them.

Then, add the scattering object into the Models field - this is the model that scatters over.

You'll see the result immediately in the viewport.


Objects


Targets 2 – Specifies the object(s), on which the instances are scattered. Targets can be mesh objects, curves and proxies.

Factors – This option is only available when On Surfaces scattering is set to Random distribution or the scattering mode is set to 3D - In Bounding Box. Determines how many instances are scattered on the currently selected Targets object(s). Note that for the Factors option to work correctly, you need at least two target objects.

Models 2 – Specifies the objects which are scattered on the Targets object(s). Models can be mesh objects, proxies, Volume Grid, and lights.

Frequencies – This option is only available when there are more than one Models objects. Determines the frequency of the currently selected instanced object in relativity to the others.


Scattering



Enable – Enables scattering.

Scatter Type – Specifies in which mode scattering is applied.

1D - On Curves – Scattering mode where objects are scattered along curves. Open or closed curves can be used for this.
2D - On Surfaces – Scattering mode where objects are scattered on surfaces. It doesn't matter if the surface is horizontal, vertical, or part of a complex 3D object.
3D - In Bounding Box – Scattering mode where objects are scattered inside the object's bounding box. Keep in mind that bounding boxes are cube-shaped; therefore, using this mode on a round object scatters instances in a cube around it. This mode is useful when scattering dust particles inside a room, fish in an aquarium, books on a bookshelf, and similar.

Seed – Determines the random distribution used. Changing this value causes random permutations of the scattered objects(s).

Temporal Consistency – When enabled, instances are scattered in the selected Rest-pose Frame and stick to the surface, even if they get deformed in other frames. Otherwise, instances get scattered in each frame separately, which might cause anomalies. Note that Temporal Consistency does not work in IPR yet.

If the Temporal consistency option is enabled, Avoid collisions does not apply to frames outside the initial Rest-pose frame.

Rest-pose Frame – Determines the initial frame, where the instances are scattered for all following frames. The specified frame with Rest-pose must correspond to the first frame of the animation.

Avoid Collisions – When enabled, instances colliding with each other get discarded. This results in no overlaps between instances. Note that enabling this option might lower the number of instances.

Avoid Collisions Spacing – Controls the bounding boxes' size to detect collisions. Smaller values result in denser instances with some collision; higher values result in larger distances between instances. Values above 1 mean the distance between objects is larger than their bounding boxes.

Convert to Maya instances – Instanced geometry is converted into separate, modifiable objects by pressing this button. It is compatible with Maya geometry and lights, V-Ray lights and proxy meshes. After conversion, all objects are grouped in the Outliner, allowing for individual selection.


Curve Scattering


The options in this menu are active when the scattering mode is set to 1D - On Curves.

Spacing – Determines the spacing between instances in scene units.

Jitter – Randomly jitters instances along the curve. Each instance has Spacing applied on both its sides, except the instances at the end of the curve. The Jitter value is divided between those two Spacings. In order to allow instances to jitter in all their Spacing distance, the Jitter needs to be set to 2.

Offset – Determines how much the instances are offset in one direction of the curve. When set to 1, all instances replace the one after them, as the offset is equal to the whole value of the Spacing.

Follow Curve – Determines how scattered instances are oriented along the curve. Assigning a value of 1, makes instances follow the curve and are oriented along the local tangent direction.


Surface Scattering


The options in this rollout are active when the scattering mode is set to 2D - On Surfaces.

Distribution – Specifies the distribution mode of the objects.

Random distribution – This mode scatters instances randomly on all mesh objects. It is enabled by default.
UV Map – This mode uses UVW mapping to scatter instances in regular patterns.

Map Channel – Determines which UV map channel is used for the scattering when UV Map Distribution mode is selected.

Map Channel Name – Specifies the UV Map Channel name.



Random Distribution



Count – Defines an exact number of instances to scatter - either overall, or per area in the case of scattering defined by density (Per Square option). The number is always limited by the Instance Count Limit option.

Per Square – When enabled, the number of instances to scatter is defined by density (Count per square having the given edge length). The number of instances is always limited by the Instance Count Limit option.

Square Size – The specified value is the edge length of a square defining an area for computing the scatter density. The length is measured in world units.

Density Texture 1 – Allows a black and white texture map to be assigned. The map determines how the instances are scattered on the surface.


UV Map


Pattern – Determines a pattern for the scattering.

Grid – Rectangular grid.
Running Grid – Rectangular grid with every other row offset by half of the grid spacing.
Hexagonal Grid – Arranges instances into hexagons.

Lock V – When enabled, the values of the V coordinate for Spacing, Jitter and Offset are locked to the U coordinate's values.

Spacing – Scales the pattern in UV space. When Spacing is set to 1, the pattern occupies the whole space. When Spacing is set to 0.5, the pattern is repeated twice.

Jitter – Determines what percentage of the instances are randomly placed. When Jitter is set to 0, all instances are placed according to the UVW mapping. When Jitter is set to 1, all instances are randomly placed.

Offset – Offsets the pattern by the given value. Keep in mind that 0 and 1 Offset gives the same result, as 1 moves the pattern by one whole repetition.



Edge Trimming


Enable Edge Trimming – Toggles the Edge Trimming function, which "trims the edges" of the Scater geometry, removing any instances that scatter outside of the Target Objects or the Include/Exclude Objects.

The typical use cases of Edge Trimming include:

  • Grass lawns - in case of using large grass clumps, no individual grass blades will be growing outside of the defined area.
  • Carpets - in case of using large clumps of strands, no individual strands will be placed outside of the carpet area.
  • Pebbles, rocks, bark chippings, or any other objects which you need to distribute within some specific boundary and make sure no instances stick outside of that boundary (determined based on the mesh element pivot precision).

In addition to making the scattering look more refined and natural, the edge trimming feature boosts performance by removing some of the instances you save from RAM and making parsing time shorter.

See the example for more.



Edge Trimming V-Ray Proxy Files


V-Ray Proxy files are often created in other software, not Maya. This may result in their axes having a different orientation than the native Maya one. Having axes with a different orientation obstructs Chaos Scatter from trimming the instances properly. This is the case for all Chaos Cosmos assets and proxies created in V-Ray for 3ds Max. You need to adjust their axes if you want to scatter such proxy files and use Edge Trimming. To do so:

  • Go to the proxy object's attributes, and in the Basic Parameters rollout, enable the Flip Axis option.
  • In the Scatter Object's attributes, go to the Transformations rollout > Rotation and disable the Preserve Model Rotation option.




Enable the Proxy's Basic Parameters > Flip Axis


Disable the Scatter object's Translations > Rotation > Preserve Model Rotation option




Example: Enable Edge Trimming

Turning on the Edge Trimming function deletes all grass strands that are outside of the Target Object, creating a clean line, imitating that the grass has been professionally cut.


OFF Before image
on After image




Slope Limitation


Slope Limitation limits scattering only to 'slopes' at certain angles. It can be used to create realistic spread of trees on curved surfaces, for instance. The lower the Angle range is set, the smaller the angle at which scattering stops.

Up Axis – The angles are measured either between the Local Up Axis and the surface normal, or the World Up Axis and the surface normal. You can select which up normal to use:

LocalWhen enabled, the Slope Limitation is measured according to the up vector of each individual Targets object.
World – When enabled, the Slope Limitation is measured according to the world Y-axis up vector for all Targets objects in the scene.

Min Angle/Max Angle – Defines a range of angles to which the scattering is limited. Instances outside of this range get filtered out.

When using the Local Up Axis, freeze the scale of the model.




Bounding Box Scattering



The options in this rollout are active when the scattering mode is set to 3D - In bounding box.

Count – Defines an exact number of instances to scatter - either overall, or per a volume in the case of scattering defined by density (Per Cube). The number is always limited by the Instance Count Limit option.

Per Cube – When enabled, the number of instances to scatter is defined by density (Count per cube having the given edge length). The number of instances is always limited by the Instance Count Limit.

Cube Size – Specifies the edge length of the cube defining a volume for computing scattering density (Count, Per Cube). The length is measured in world units.




Transformations


Translation

Moves the instances From the given distance To the given distance on the corresponding axis (in scene units). A Map 1 can be attached. RGB maps can be used to control translations in specific axes (Red = X; Green = Y; Blue = Z). Grayscale maps control all axes proportionally.

Map Mode – Determines how the map is interpreted to control the translation.

Map Fixed – Black areas of the map represent the From values. White areas of the map represent the To values. No randomization occurs.
Random Amount – Black areas of the map do not have any randomization applied. In the white areas of the map full randomization occurs. The From and To values represent the lowest and highest translations allowed for the randomization.

Map Axes – Determines along which axes the Map is applied.

Step – Determines a fixed distance by which all instances translate. If the values is left at zero, instances are translated continuously. Values greater than the difference between To and From result in all instances translating to the value of To.

Step Axes – Determines along which axes the Step is applied.



Rotation


Rotates the instances From the given degrees up To the given degrees continuously. A Map 1 can be applied. RGB maps can be used to control the rotation of each axes individually ( Red = X; Green = Y; Blue = Z). Grayscale maps control the rotation of all axes proportionally.

Map Mode – Determined how the map is interpreted to control the rotation.

Map Fixed – Black areas of the map represent the From values. White areas of the map represent the To values. All values in between are on the grayscale spectrum. No randomization occurs.
Random Amount – Black areas of the map have no randomization applied. In white areas of the map full randomization occurs. The From and To values specify the lowest and highest rotation allowed for the randomization.

Map Axes – Determines along which axes the Map is applied.

Step – Determines a fixed degree by which all instances rotate for the enabled axes. If the value is set to 0, instances are rotated continuously. Values greater than the difference between To and From result in all instances rotating to the value of To.

Step Axes – Determines along which axes the Step is applied.

Normal Alignment – When a value different than 0 is entered, the instances are aligned according to the world Y axis. A value of 0 means the objects are following the target surfaces curve and 1 means they are fully upright along Y. This is useful when the Targets object is curved and the Models objects need to remain vertical, not follow the curve of the surface, e.g. trees on a mountain.

Preserve Model Rotation – When enabled, instances preserve the original rotation of the Instanced model object. Otherwise, the original rotation is ignored. This is useful when scattering proxy files; for more information, see the Edge Trimming Proxy Files section.


Scale


Scales the instances From the given value To the given value continuously. When Uniform Scaling is enabled, the X axis values are applied on the whole Distribute-on target object. A Map 1 can be applied. RGB maps can be used to scale axes individually ( Red = X; Green = Y; Blue = Z). Grayscale maps control the scale of all axes proportionally.

Map Mode – Determines how the map is interpreted to control the scale.

Map Fixed – Black areas of the map represent the From values. White areas of the map represent the To values. All values in between are on the grayscale spectrum. No randomization is applied.
Random Amount – Black areas of the map have no randomization applied. In white areas of the map full randomization occurs. The From and To values represent the lowest and highest scale allowed for the randomization.

Map Axes – Determines along which axes the Map is applied.

Step – Determines a value for scaling that is applied to all instances. Values greater than the difference between To and From result in all instances scaling to the value of To.

Step Axes – Determines along which axes the Step is applied.

Uniform Scaling – When enabled, all instances in all axes are scaled according to the values of the X axis.

Preserve Model Scale – When enabled, instances preserve the original scale of the Models object.



Areas


Include – Scatters the models only inside the curve or mesh objects included in this list. The curves cannot be the same as the Target objects. See the example below for more information.

Exclude – Scatters the models everywhere on the Target objects, except in the areas where the curves or meshes from the list are located. The curves/meshes cannot be the same as the Target objects. This option is useful, for instance, for removing instances of grass/trees from areas where a house needs to be located.

Near/Far – This option is only active when a curve or mesh from either list is selected. Determines the falloff distance from the selected curve/mesh to the selected axis plane. If the selected curve/mesh is from the Include Curves list, instances within the falloff distance are included. If the selected curve/mesh is from the Exclude Curves list, instances within the falloff distance are excluded.

If an open curve is used (start and end points are not connected), the value of the Far parameter needs to be higher than 0.

Scale – Scale factor further affecting the instances between the near and far falloff.

Density – The density factor further affecting the instances between the near and far falloff.

Proj. Axis – Indicates on which axis the include or exclude object(s) affects the scattered model. Note that this option affects scattered models in both directions of the axis.




Example: Include Curves Animation


Chaos Scatter parameters can be animated. In this example, the Include Curves list is animated. You can create effects like growing a forest using the Near and Far parameters.


Viewport



Preview Type – Determines the way the instances are displayed in the viewport. This is not reflected when rendering.

None – Nothing is displayed in the viewport.
Point – Displays each instance as a point.
Wire Box – Displays each instance as a wireframe of a box.

Random Color by Model – Every model is assigned a random color, which is then used for every instance of that model.

Preview Instance Limit – Specifies the maximum number of instances displayed in the viewport.



System


Instance Count Limit – Limits the maximum number of instances. Note that this option does not determine how many instances are created. Instead it serves as a measure to avoid scattering too many instances and causing a crash.

Use Local Rayserver – Changes the scatter type internally. For certain use cases when displacement is used, it can make rendering faster.


Notes


  1. Density Texture and maps added to Translation, Rotation and Size are not represented in the viewport. For more information on texture interpolation, see the Texture Filter section.
  2. If you are using groups (of objects) for Models or Targets, it is recommended to bake the pivots first.