Programming
Fundamentials
Setting Up Development Environment
UnigineScript
High-Level Systems
C++
C#
UUSL (Unified UNIGINE Shader Language)
File Formats
Rebuilding the Engine and Tools
GUI
Double Precision Coordinates
API
Core Library
Containers
Engine Classes
Node-Related Classes
Rendering-Related Classes
Physics-Related Classes
Bounds-Related Classes
GUI-Related Classes
Controls-Related Classes
Pathfinding-Related Classes
Utility Classes

Physical Noise

A physical noise is a cuboid shaped area that adds a distribution flow based on a volumetric noise texture. The physical noise enables to simulate a force field that affects particles and physical bodies with a spatial 3D noise.

Notice
The physical noise can affect only a cloth, a rope or a rigid body. Also you should remember that a rigid body requires a shape to be assigned.

For example, if you add the physical noise for particles, you can get the following:

Noise is disabled
Noise is enabled. A colored square is a noise image texture.

Notice
The physical noise will affect particles only if their physical mass is nonzero. The physical mass for the particles can be set on the Params tab of the Nodes panel.

See also

  • A PhysicalNoise class to edit physical noise nodes via UnigineScript
  • A data/samples/physicals/noise_00 sample

Main Concepts

Notice
The calculations described below are added for better understanding of the physical noise parameters.

The direction of the force, which affects particles and physical bodies inside the physical noise box, is stored in the noise texture: a 3D texture, each texel of which stores force direction. The noise texture that is used for the physical noise can be adjusted via UnigineEditor.

When the physical body falls within the physical noise box, the force at the current point starts to affect it. This force is calculated as follows:

Here:

Name Description
force The resulting force that affects the physical body at the current point.
force_direction Direction of the force vector that is stored in the the color of a texel of the noise texture.
force_multiplier Force multiplier.
threshold Threshold distance along the axes.

The force_direction is obtained from the noise texture as follows:

As the force_direction is a vector, the calculation is actually performed as follows:

The pixel_color is obtained by sampling a pixel with the given coordinates from the noise texture. The pixel coordinates are calculated as follows:

Here:

Name Description
pixel_color Color of the noise texture pixel that stores direction of the force vector.
pixel_coordinates Coordinates of the noise texture pixel that stores direction of the force vector.
body_position Local coordinates of the physical body (relative to coordinates of the physical noise node).
step Sampling step.
offset Sampling offset
threshold Threshold distance along the axes.

Adding Physical Noise

To add a physical noise to the scene via UnigineEditor:

  1. Run UnigineEditor.
  2. On the Menu bar, click Create -> Effect -> Physical Noise.

  3. Click somewhere in the world to place the physical noise.

The new physical noise node will be added to UnigineEditor and you will be able to edit it via the Nodes panel.

Editing Physical Noise

On the Noise tab of the Nodes panel, you can adjust parameters of the physical noise.

Notice
To better understand how the following parameters affect the resulting force inside the physical noise node, see the chapter on Main Concepts.

Node Parameters

The following parameters are used to set conditions of the size of the physical noise node,

Physical Physical mask. The physical mask of the physical noise must match the physical mask of the physical object. Otherwise, the physical noise won't affect the object.
Size Size of the physical noise box along the axes in units.
Threshold Threshold distance along the axes. The threshold determines the distance of gradual change from zero to full force value. This values are relative to the size of the physical noise box. It means that the threshold values should be less than the size of the physical noise box.

Texture Sampling Parameters

The following parameters are used for pixel sampling from the generated noise texture.

Notice
You can animate a force field in run-time by changing these parameters.
Offset Sampling offset along the axes.
Step Size of the sampling step along the axes.

Force Multiplier

Force Force multiplier. The higher the value is, the higher the value of the resulting force that affects an object inside the physical noise node will be.

Texture Generation Parameters

The following parameters are used to generate a noise texture that will be used in run-time.

Notice
It is not recommended to change values of the following parameters in run-time as the noise texture will be regenerated and the performance will decrease.
Scale Scale of the noise texture. The minimum value is 0, the maximum value is 1.
Frequency Number of octaves for the Perlin noise. The higher the value is, the more details the noise texture has. The minimum value is 0, the maximum value is 16.

Frequency = 1
Frequency = 16
Size Size of the noise texture image in pixels.
Last update: 2017-07-03