Soil Particles

This extension's purpose is to visualize simulated soil particles.

To add a Soil Particles extension:

  1. In your scene or mechanism, select Earthwork Systems in the Toolbox.
  2. Double-click Soil Particles to add one, or drag it into the 3D View.

Dynamics Properties

The Dynamics extension (found under Soil Particles in the Explorer panel) collects the relevant data for visualization from the soil simulation system. It then outputs the data via the Particles output. A connection then feeds this data to the Particles input in the Graphics extension, which visualizes the particle data.

Much of this information here is automatic but there are some inputs to configure. These inputs are meant to improve the visuals for dynamically simulated soil particles being reintegrated with the deformable ground upon settling.

  • Merge Transition Duration: Transition time (in seconds) during which a particle will still be displayed after its dynamics counterpart has been merged and reintegrated into a soil grid. After the provided time, the visual representation of the particle will disappear.
  • Merged Particle Gravity Scale: The position of the visual particles, displayed after merging their dynamics counterparts, will be integrated over time according to their last frame's velocity and the gravitational acceleration (g) present in the simulation, according to:


    where dt is the time step, and sg is the unitless Merged Particle Gravity Scale value.
  • Merged Particle Velocity Damping Time: Velocities of merged particles are damped over time according to the provided value (in seconds). In each simulation step, the particle velocity is scaled by
    ,
    where dt denotes the simulation time step, and tv is the merged particle velocity damping time.
  • Merged Particle Shrink Time: Merged particles are shrunk over time according to the provided value (in seconds). In each simulation step, the particle is scaled by
    ,
    where dt denotes the simulation time step, and ts is the merged particle shrink time.

Graphic Properties

The Graphics extension defines the graphical properties of the soil particles generated by the earthmoving operations. These are the moving bits of rocks and earth clumps that create the illusion of soil being displaced, and should not be confused with the particles used for dust and smoke.

Click the Graphics extension under Soil Particles in the Explorer panel. The Properties panel now displays the Graphics properties for the Soil Particles.

  • Visible: If selected, the soil particles appear in the 3D viewport.
  • Cast Shadow: If selected, the soil particles will cast shadows (this is computation intensive).
  • Receive Shadow: If selected, the soil particles will receive shadows cast by other objects.
  • Material Coverage: When applying the SSM Material (see below) to the Screen Space Soil Mesh (SSM), this value (in meters) represents the amount of coverage before repeating the material.
  • SSM Material: Screen Space Soil Mesh (SSM) is a feature that renders a soil material between particles in order to create a smooth and consistent look for soil while keeping computations to a minimum. Use this field to select the material. If this field is left blank, the soil will have no material and appear white. See #SSM Properties
  • Enable Screen Space Mesh Rending: Select this box to turn SSM on.
  • SSM Depth Offset: See SSM Material.
  • Particle Models: These are the visual particle models which will be associated with the dynamics soil particles.
  • Particle Display Percent: This value reduces the amount of particles rendered within the soil mesh.

SSM Properties


  • SSM Depth Offset

    SSM Depth Offset shifts the SSM Particles towards the camera (positive value) or away from the camera (negative value). The value controls how much of the triangle meshes will be visible through the SSM soil. (Valid range is -0.5 to 0.5 m.)

    SSM Depth Offset = 0.0SSM Depth Offset = -0.02SSM Depth Offset = 0.02

    SSM Blurring Properties

    SSM works by selectively blurring the screen pixel depths to create its effect. You must configure the following parameters for this effect.

    • Blur Sample Count specifies the number of samples the blurring kernel will use. The kernel will sample Blur Sample Count * Blur Sample Count pixels, and if no noise is applied (see below for Noise Influence) the kernel will be square. Without any noise applied, Blur Sample Count needs to be a large value to remove the repeating artifacts. (Valid range of values is 2 to 30.)

      Blur Sample Count = 2Blur Sample Count = 10Blur Sample Count = 20
    • Blur Size and Blur Range Pixel Limit specify the sizes of the blurring kernel. Blur Size sets the size of the blurring kernel in meters (valid range is 0.0 to 0.6 m), and the Blur Range Pixel Limit sets the maximum size of the kernel in pixels (valid range is 0 to 200). During the SSM shader execution, the kernel size in meters will be pegged to the size in pixels. The pixel limit is relevant only when zooming in. The recommended workflow is to initially set the pixel limit to a large value (e.g., 200) then tweak the Blur Size value. After an acceptable Blur Size value is found, then adjust Blur Range Pixel Limit.

      Blur Size = 0 mBlur Size = 0.03 mBlur Size = 0.1 m
      Blur Range Pixel Limit = 0Blur Range Pixel Limit = 30Blur Range Pixel Limit = 70

    Noise is used to offset the pixel coordinates the blurring kernel is sampling. Noise of 0 will keep the kernel square, increasing the noise will add pseudo-randomness to the kernel sampling locations. Use of noise will decrease the repeating patterns in the SSM visualization.

    • Noise Texture: The noise functions are baked into a texture. If no noise texture is supplied, a default Perlin noise texture will be assigned. Otherwise, you can supply a custom noise texture by clicking the details button in the Noise Texture field and selecting a texture from the Explorer panel.
    • Noise Frequency controls the amount of detail as a result of the noise offset. (Valid range of values is 0.0 to 30.0.)

      Noise Frequency = 0.0Noise Frequency = 1.0Noise Frequency = 2.0
    • Noise Influence controls the amplitude of the noise offset. Increasing the influence increases the potential sampling area of the depth blurring kernel. (Valid range of values is 0.0 to 300.0.)

      Noise Influence = 0.0Noise Influence = 1.0Noise Influence = 4.0

      NoteThe two factors which directly influence the performance are the Blur Sample Count and the size of the blurring kernel. Blur Sample Count can be kept low by combining noise with its effect.

    SSM Examples

    The following table demonstrates the effects of different SSM settings on the soil particle outcome.

    Soil Particle Graphics SettingsTexture UsedFinal Look

Particle Model

Each dynamics soil particle will be associated with one of the visual particle models in the provided list. When this association takes place (on birth of the dynamics soil particle), a random scale factor (see min/max random scales) is also selected and the visual model scaled accordingly (on top of the uniform scale factor).

This parameter has the following sections:

  • Size: Sets the number of particle models available.
  • Geometry: Selects the graphics geometry for this particle model.
  • Material: Selects the graphics material to use for this particle model.

A Graphics Gallery with the 3D models of the rocks and clumps needs to be added to the scene. The graphic nodes of the rock models in the Graphics Gallery can be deleted since we only need the geometries, textures and graphics materials.

NoteOnly one particle model is required to display all soil particles. Nevertheless, for esthetic reasons, it is still recommended to add more than one particle model. This will create variations in the displayed particle shapes and create a more natural look. Additionally, a single particle model can be composed of multiple small grains. This way, multiple visual grains will be associated with a single dynamics soil particle, which will greatly enhance the visual fidelity of the particle simulation.