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.
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
|
See also#
- The PhysicalNoise class to edit Physical Noise nodes via API
- The data/samples/physicals/noise_00 sample
- The fragment from the video tutorial on physics demonstrating the noise effect
Main Concepts#
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 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:
- Run the project with UnigineEditor.
-
On the Menu bar, click Create -> Physics -> Physical Noise.
-
Click somewhere in the world to place the Physical Noise.
A new Physical Noise node will be added to UnigineEditor, and you will be able to edit it via the Parameters window.
Editing Physical Noise#
In the Physical Noise section (Parameters window -> Node tab), you can adjust parameters of the Physical Noise.
Node Parameters#
The following parameters are used to set conditions of the size of the Physical Noise node.
Edit Size |
Toggles the editing mode for the Physical Noise node. When enabled, the Physical Noise box sides that can be resized are highlighted with the colored rectangles. To change the size of a side, drag the corresponding rectangle. |
---|---|
Physical Mask | 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. These 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.
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 at run time.
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.
|
||||
Image Size | Size of the noise texture image in pixels. |