The spacer field allows you to dynamically adapt grass and water surface to other objects in the scene. For example:
- A field spacer can be used to specify area under a building and around it where grass should not grow. Moreover, by using the attenuation factor, it is possible to create thinner grass around the building.
- A field spacer can be set for a boat so that water is not rendered inside it.
Boat without the spacer field: water is inside the boat
Boat with the spacer field: the spacer field cuts water off
- A FieldSpacer class to edit spacer fields by using UnigineScript
- A set of samples located in the data/samples/fields/ folder:
Adding Field Spacer
To add a spacer field in the world via UnigineEditor, do the following:
- On the Menu bar, choose Create -> Effect -> Field Spacer.
- Place the spacer field in the world so that it intersects geometry required to be cut off:
Make sure that the Spacer interaction flag is set for materials applied to grass or water.
- In case of grass, the spacer field should intersect the surface, on which grass grows.
- In case of water, the spacer field should be submerged into water on the required depth. For example, the following pictures demonstrate the same spacer field submerged on different depth:
If you are going to use the spacer field with dynamic objects, it is better to add the field as a child node to this object so that it can correctly affect grass or water geometry.
Editing Field Spacer
In the Field Spacer tab of the Parameters window, the following parameters of the spacer field can be adjusted:
Setting Form of Spacer
|Ellipse||Indicates whether the spacer field is ellipsoid-shaped. If unchecked, the spacer field has a form of a cube.|
Setting Bit Masks
|Field||A field mask. A bit mask that specifies an area of the spacer field to be applied to grass or water. The spacer field will be applied to grass or water only if they have matching masks.|
|Viewport||A viewport mask. A bit mask for rendering the spacer field into the current viewport. For the spacer field to be rendered into the viewport, its mask should match the camera viewport mask.|