Scatter

density

Density of scattered objects. Type: real number. Units of objects per m^2.

seed

Random number generator seed. Type: positive integer. Default value 1.

view_culling

If true, remove instances not in direct camera view. Type: boolean. Default value false.

orient_normal

If true, align instances along the target object normal, instead of vertically. Type: boolean. Default value false.

scale_std_dev

Standard deviation of instance scale. Type: real number. Unit: dimensionless. Default value: 0.

height_std_dev

Standard deviation of instance height (z-scale). Type: real number. Unit: dimensionless. Default value: 0.

evenness

Controls evenness of scattering. 0 = very clumpy, 1 = very even. Type: real number. Default value: 0.

z_offset

Translate all instances by this value. Type: real number. Unit: meteres. Default value: 0.

shader

Object scattering can be controlled with shaders, as in the following example:

<scatter>
    <name>the scatter</name>
    <prototype_object_uid>4000</prototype_object_uid>

    <shader>
      <shader>
        <![CDATA[				
def evalScale(int index) float :
  pow(normalOS().z, 5.0)
				
def evalCreate(int index, vec3 p) bool :
  normalOS().z > 0.8
        ]]>
      </shader>
    </shader>

    <density>2</density>
    <evenness>1</evenness>
    <target_object_uid>2000</target_object_uid>
  </scatter>

evalScale determines the scaling of the object instance, and evalCreate determines if the object is created or not.