The Surface Scattering rollout is part of the Scatter parameters.


Parameters


This submenu is only available when the scattering mode is set to 2D - On Surfaces.

Mode – Specifies the surface scattering mode. See the Mode Example below.

Random Distribution – Scatters instances randomly on all mesh objects.
UV Grid – Uses UV mapping to scatter instances in regular patterns.





Example: Mode 

This example shows the difference between Random Distribution and UV Grid modes. The scene for this example is set in inches.

Random Distribution Before image
UV Grid After image



Random Distribution


Instances Count – Gives the total number of instances on all Host objects. Note that adding Area Modifiers or defining Slope Limitation will decrease this number. If the Per Area option is enabled, the scattering is defined by the density. See the Instances Count Example below.

Per Area – When enabled, the number of instances is determined by the count combined with the size of the host's surface. The value specifies the length of the distribution area's side/edge. If the Count value is set to 1, this number determines the relative density of the instances. See the Per Area Example below. 

Density – Determines the approximate count of instances based on texture input. Black color in the texture discards all instances in the respective area. Areas colored with white receive the maximum number of instances. See the Density Examples below.

Map Channel – Determines the UV channel.


Rhino8_VRay6.2_Scatter_Parameters_Surface



 


Example: Instances Count

This example shows the exact instances count on a host object. The scene for this example is set in inches.

Example: Per Area

The number of instances here is determined by the count combined with the size of the host's surface. The value specifies the length of the distribution area's side/edge. The scene for this example is set in inches.



01_RandomDistribution_InstancesCount_1000

Instances Count = 1000

02_RandomDistribution_InstancesCount_2500

Instances Count = 2500

04_RandomDistribution_InstancesCount_10000

Instances Count = 10000

01_PerArea_InstansesCount1000_PerAreaOff

Instanses Count = 1000; PerArea = Off

03_PerArea_InstansesCount1000_PerArea1000

Instanses Count = 1000; PerArea = 1000

05_PerArea_InstansesCount1000_PerArea4000

Instanses Count = 1000; PerArea = 4000

07_PerArea_InstansesCount1_PerArea100

Instanses Count = 1; PerArea = 100

08_PerArea_InstansesCount1_PerArea1000

Instanses Count = 1; PerArea = 1000





Example: Density

The Density determines the approximate count of instances based on texture input. Black color in the texture discards all instances in the respective area. The scene for this example is set in inches. 

01_Density_IC5000_CheckerMap

Instances Count = 5000; Checker Map

Instances Count = 5000; Noise Map

03_Density_IC5000_GradientMap

Instances Count = 5000; Gradient Map






Example: Density Map

Using a Density map generates brand new instance distribution. The total number of instances (approximate to the 'Instance Count' value) is preserved and distributed on all surfaces that correspond to map values above 0 (parts of the map not being purely black). Instances are more likely to be generated in areas with higher Density map values than darker ones. The scene for this example is set in inches. 

Density Map Off Before image
Density Map Checker After image



UV Grid


Pattern – Determines a pattern to use for grid scattering. See the Pattern Example below.

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

Map Channel – Determines the UV channel.

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. See the Spacing Example below.

Jitter – Determines what proportion of the instances are randomly placed. When Jitter is set to 0 all instances are placed according to the UV mapping. When Jitter is set to 1 all instances are randomly placed. See the Jitter Example below.

Offset – Offsets the pattern by the given value (in percentages). Keep in mind that 0 and 1 Offset give the same result, as 1 moves the pattern by one whole repetition. See the Offset Examples below.

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


Rhino8_VRay6.2_Scatter_Parameters_Surface_UVGrid




Example: Pattern

This example shows the different pattern types. The scene for this example is set in inches. 

Example: Spacing

This example shows how the spacing parameter affects the distances between the Scatter guest objects. The scene for this example is set in inches. 



01_UVGrid_Spacing0x1_PatternGrid

Spacing = 0.1; Pattern = Grid

02_UVGrid_Spacing0x1_PatternRunningGrid

Spacing = 0.1; Pattern = Running Grid

03_UVGrid_Spacing0x1_PatternHexagonalGrid

Spacing = 0.1; Pattern = Hexagonal Grid

01_UVGrid_PatternGrid_Spacing_0x1

Pattern = Grid; Spacing = 0.1

02_UVGrid_PatternGrid_Spacing_0x25

Pattern = Grid; Spacing = 0.25

03_UVGrid_PatternGrid_Spacing_0x5

Pattern = Grid; Spacing = 0.5

05_UVGrid_PatternGrid_Spacing_U0x1_V0x25

Pattern = Grid; Spacing = U 0.1; V 0.25

06_UVGrid_PatternGrid_Spacing_U0x1_V0x5

Pattern = Grid; Spacing = U 0.1; V 0.5





Example: Jitter

This is how Jitter affects the random placement of Scatter Guest objects. When set to 0, all instances are placed according to the UVW mapping. When set to 100, all instances are randomly placed. The scene for this example is set in inches. 

01_UVGrid_PatternGrid_Jitter_0

Pattern = Grid; Jitter = 0

04_UVGrid_PatternGrid_Jitter_1

Pattern = Grid; Jitter = 1

05_UVGrid_PatternGrid_Jitter_2

Pattern = Grid; Jitter = 2





Example: Offset by Single Axis - V

For this example, the Pattern is set to a rectangular Grid. Here, the offset is applied to the U axis only (the Lock V option is disabled). The scene for this example is set in inches. 

Example: Offset Locked UV 

For this example, the Pattern is set to a rectangular Grid. The offset is applied to both the U and V axes (the Lock V option is enabled). The scene for this example is set in inches. 



Pattern = Grid; Offset = U 0; V 0

Pattern = Grid; Offset = U 0; V 0.25

Pattern = Grid; Offset = U 0; V 0.5

Pattern = Grid; Offset = U 0; V 0.75

Pattern = Grid; Offset = U 0; V 1

Pattern = Grid; Offset = U 0; V 0

Pattern = Grid; Offset = U 0.25; V 0.25

Pattern = Grid; Offset = U 0.5; V 0.5

Pattern = Grid; Offset = U 0.75; V 0.75

Pattern = Grid; Offset = U 1; V 1



Slope Limitation


Limits scattering only to 'slopes' at certain angles. The lower the angle range is set, the smaller the angle at which scattering stops. See the Slope Limitation Examples below.

Local – The slope limitation is measured according to the up vector of each individual guest object.1
World – The Slope Limitation for all guest objects is measured relative to world up vector.

Angle From – The lower limit of the range outside which instances get filtered out. 

Angle To – The upper limit of the range outside which instances get filtered out. 


Rhino8_VRay6.2_Scatter_Parameters_SlopeLimitation



Example: Slope Limitation

This is an example of how the slope limitations work. The scene for this example is set in inches. 


01_SlopeLimitation_Local_0-180

Slope Limitation = Local; Angle From = 0; Angle To = 180

02_SlopeLimitation_Local_0-45

Slope Limitation = Local; Angle From = 0; Angle To = 45

04_SlopeLimitation_Local_15-45

Slope Limitation = Local; Angle From = 15; Angle To = 45

(Rotated) Slope Limitation = Local; Angle From = 15; Angle To = 45 

06_SlopeLimitation_Rotated_World_15-45

(Rotated) Slope Limitation = World; Angle From = 15; Angle To = 45 




Example: Multiple Hosts Slope Limitation

This example shows how a group of multiple guest objects can be distributed over several more than one host object. The scene for this example is set in inches. 


0-180 Before image
45-180 After image



Edge Trimming


Edge Trimming – Trims elements of instances outside of the host boundaries. It affects both host objects and Area modifiers.

Edge trimming is used to trim scattered instances consisting of multiple mesh elements so that they stay within the boundaries of the host objects, taking into account the modifiers added to the Area Modifiers list. If an origin of any integral part of the instance (any sub-mesh element of the instanced model) falls outside of the area specified by the scatter, such part is not rendered. This is a simplification, but you can imagine the origin as a point on the host object from which an element is growing.

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 origin 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.





Example: Edge Trimming


Off Before image
On After image

Notes


  • 1There is no Local space in Rhino. As a result, this mode uses the World space Up vector. This option is exposed in the UI to ensure interoperability with other V-Ray products where a distinction between local and world positions is valid.



Was this helpful?