User Tools

Site Tools


You are not allowed to perform this action
reference_guide:thinkingparticles_nodes:operator_nodes:shape:implicitshape

ImplicitShape

This operator creates an iso-surface based on particle information; which is usually used for representing a fluid surface or any other kind of surface based on a point cloud. There are several algorithms available in creating surfaces out of point clouds.

Operator Inputs

ON - (Bool) This input data stream determines whether the operator is considered 'on' or 'off.' You can connect other operators to this input channel such as a Bool Helper to activate/deactivate the whole operator.

Time - (Time) This input data stream is used to define the local time for the operator when the user wants to override the default system time.

Particle - (Particle) This input data stream reads in the currently selected particle group that is to be given a standard shape. The data stream MUST be connected and will be highlighted yellow if it is not.

The remaining input parameters are identical to the UI controls. For more information about the use of an individual parameter check out the descriptions below.

Operator Outputs

This operator has no outputs

 

Rollout Menu

Type - lets you choose between different surfacing algorithms. A description of the current implementation can be found at the end of this document. To advance to the descriptions click HERE

Scale - by default, the particle size defines the size of the implicit surface volume. This scale factor allows to adjust the size without changing the particle size. A value of 0.5 would create isosurface volumes that are half of their original particle size.

Isovalue - defines the “melting” force or how much the ISO surface volume is confined to its spherical shape.

Mesh Smoothing - defines the amount of post smoothing the generated ISO-surface. the higher this value the smoother it will appear. Keep in mind nothing comes for free; the surface accuracy will degrade a lot the higher this value is.

Iterations - sets the amount of iterations for the mesh smoothing algorithm. It defines actually how often the code will look over the surface to smooth it out.

Position Smoothing - defines the amount of position smoothing. A value of 1 will use the maximum displacement possible of the particle positions before it creates the ISO-surface.

Iterations - sets the amount of iterations for the position smoothing algorithm. It defines actually how often the code will look over the particles to smooth the positions out.

Neighborhood - sets the search radius that actually defines the 'neighborhood' of a particle. All particles found within this radius are considered for position smoothing.

Max. Field Value - sets the maximum field value; used for  the ISO surface generation. This value can be used to optimize the surface generation speed. The Max. Field value should be as close to the Isovalue setting as possible. If this value is equal to or lower than the Isovalue setting; no mesh will be generated.

Setting this value too high will at some point show no effect at all and might increase render time.

Vertex Merge - due to various optimization methods in the multi-threaded surface generation it is possible that surface gaps might show up. If this is the case, use this value to stitch the surface together within those problematic areas.

Stretch and Squish

This ISO-surface operator offers enhanced algorithms to overcome the bumpy surface issue that can show up when using ISO-surface methods in general. The following controls are meant to create a smoother (flat) surface.

Stretch Factor - fast moving particles can stretch the ISO-surface based on their velocity and direction of travel. This option is usually useful to bridge gaps when fluids are falling or moving fast.

Squish Factor - this option allows to squish or flatten the ISO-surface along the perpendicular to the axis of travel, only. This results in a elongated disc shaped flat ISO-surface.

Low Velocity - defines the low velocity threshold for when to apply the stretch function for the ISO-surface.

High Velocity - sets the high velocity threshold for when to apply the stretch function for the ISO-surface.

Resolution

Viewing - sets the resolution for the viewport representation of the ISO-surface. ISO-surface are mathematically described surfaces created out of a volume of particles. The sampling rate; or the accuracy of sampling the volume to create a surface representation

Rendering - sets the resolution for the rendering representation of the ISO-surface. ISO-surface are mathematically described surfaces created out of a volume of particles. The sampling rate; or the accuracy of sampling the volume to create a surface representation

Material

Material Swatch - sets the material to be used by the ISO-surface. Click the button to get a standard 3ds Max material browser.

Material ID - sets the material id for the main implicit surface. When used with a Multi Sub material this can be adjusted.

Data To Mapping Channel

UVW - defines the particle Data channel to be used as the UV mapping channel.

Mapping ID - sets vertex color channel ID to store the UVW data

Color - defines the particle Data channel to be used as vertex color.

Mapping ID - sets vertex color channel ID to store color information in the implicit surface.

Vector - defines the particle Data channel to be used as 3 point vector.

Mapping ID - sets vertex color channel ID to store 3 point vector information

Vector 1 - defines the particle Data channel to be used as 3 point vector.

Mapping ID - sets vertex color channel ID to store 3 point vector information

Vector 2 - defines the particle Data channel to be used as 3 point vector.

Mapping ID - sets vertex color channel ID to store 3 point vector information

Vector 3 - defines the particle Data channel to be used as 3 point vector.

Mapping ID - sets vertex color channel ID to store 3 point vector information

Tip:
You can easily use a vector to control three values at once. Vertex Color in a mesh (implicit) allows you to access each component individually from within the material editor. An R component could be used as a diffuse factor, a G component could be controlling the reflectivity and a B component could be controlling the transparency of a material.

 

Bubble

bubbles_cube.jpg

ImplicitShape allows you to automatically create trapped air bubbles in a fluid. Use this option to control the density of the air bubbles and their size. Keep in mind that those bubbles are real geometry and need a certain resolution of the ISO-surface to be properly visible.

Bubble - check this option to enable automatic air bubbles within the implicit surface.

Count Ratio - defines the amount of air bubbles based on the particle amount of the fluid. A value of 1 means that every particle will become an air bubble.

Radius - defines the size of the air bubbles as fraction of the scale value of the ISO surface.

Variation - values greater than 0 will add a size variation to the air bubbles. A value of 1 will create the maximum variation in size possible.

Margin -sets the distance to the enclosing surface (hull). Air bubbles will not appear when the distance is closer to the hull than set in this parameter.

Material-ID - lets you set a sperate material ID for the air bubbles in the implicit surface.

Surfacing Types

There are two available options right now:

  • Blob(6.0)
  • Surface (6.3)

The first option; Blob (6.0) was introduced with the release of  thinkingParticles 6.0, it is the standard Meta-Ball' algorithm used to create stretchy blob surfaces.

ISO Value = 0.5 Particle Size 10 (Grid (10)) ISO Value = 0.5 Particle Size 10 (Grid (10))
ISO Value = 0.5 Particle Size 16 (Grid (10)) ISO Value = 0.5 Particle Size 20 (Grid (10))

As shown in the illustrations above, the Blob method is good for connecting 2 or more particles that can also stretch based on the speed they travel. It's the most common method used to create fluid surfaces as it handles detachment (drops) pretty well.

Surface (6.3)

This method offers an alternate algorithm that is meant to be rather used on point clouds instead of a few individual points on space. The more particles the more pleasing the result will be. The following examples use an identical setup as shown above, even though it is not the suggested usage scenario.

ISO Value = 0.5 Particle Size 10 (Grid (10)) ISO Value = 0.5 Particle Size 15 (Grid (10))
ISO Value = 0.5 Particle Size 16 (Grid (10)) ISO Value = 0.5 Particle Size 20 (Grid (10))

Below, we demonstrate the intended use of the Surface 6.3 method in direct comparison to the Blob 6.0 method. Both images use the exact same settings without any further adjustments.

Blob 6.0  vs.. Surface  6.3

Below results are with unmodified settings; both algorithms use the same input settings.

Blob 6.0 : Visible 'Blobbyness' very round edges Surface 6.3: Less blobby more surface detail

The main intend to use the Surface 6.3 algorithm is to reconstruct a flat surface out of a point cloud. This algorithm is pretty good at achieving this; it must be stated that for this algorithm to work it needs a minimum amount of particles in close proximity. Find below an example of the same point cloud as shown above ; but with adjusted settings. In general Surface 6.3 can handle much larger Scale factors as well as ISO values of up to 0.86 or 90.

This algorithm is not able to use the stretching or squishing functions.

©2024, cebas Visual Technology Inc.

.

reference_guide/thinkingparticles_nodes/operator_nodes/shape/implicitshape.txt · Last modified: 2024/01/24 18:35 by 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki