Houdini 20.0 Nodes Geometry nodes

Kelvin Wakes Deformer 1.0 geometry node

Deforms input geometry in the shape of water wakes that form behind objects moving at a constant speed.

Since 19.5

Kelvin wakes refer to the steady-state wave patterns that develop behind objects moving on water at a constant speed. Shapes of these wakes do not change, but they are dragged continnually by motion of the floating body. This node generates such wakes; it can be used to cheaply emulate waves from a ship or ripple patterns that emerge behind floating characters.

First input to this SOP is the geometry that will be deformed. The Deformation Target parameter must be set according to the type of this input: Points or Heightfield. In either case, deformation is done in the plane perpendicular to Up Axis.

Second input to the Kelvin Wakes Deformer SOP must contain the objects that generate the wakes. When Input is set to Objects as Points, points of this geometry each represent a floating body whose constant velocity is expected in the v attribute. For a turning object, the path must be converted to a curve and Input set to Trajectory Curve. In this mode, only a single curve is accepted at a time–but wakes from more objects can be added by chaining multiple nodes.

Note

Although this node produces correct results for gentler turns, it may have trouble at higher curvatures or when different parts of the curve are in close proximity.

Parameters

Up Axis

Deformation is done in the plane perpendicular to this axis. That is, coordinates of each point are projected to this plane before the deformation function is calculated.

Gravity

Acceleration due to gravity. Larger values of Gravity result in less deformation and smaller wavelengths for the generated waves.

Deformation Target

Type of geometry to deform. The value of this parameter must correspond to the type of the first input.

Input

Specifies type of the second input. When set to Objects as Points, each point will generate a wake behind it based on its velocity (stored in the v attribute). When set to Trajectory Curve, a single curve is expected representing the object’s path.

Note

The curve is linearly extrapolated beyond its endpoints. That is, the object is assumed to move in a straight line before reaching the curve (before Curve Start Frame) and after hitting its end.

Curve Start Frame

When Input is set to Trajectory Curve, the object will reach the beginning of the curve at this frame.

Traversal Speed

Speed at which the object traverses its path. With a larger Traversal Speed, the object will move along the curve faster and generate waves of longer wavelength.

Note

This operator works with the assumption that objects move with a constant speed; thus, this parameter cannot be animated.

Supersample

Distance calculations may be blocky near turns, and supersampling can help to mitigate this. Turn this feature on if you notice blockiness in the pattern. The distance should be set large enough to smooth out the problematic areas, but small enough to avoid larger scale distortion.

Falloffs

Edge Blend

The amount of flattening near outer edges of the wake. Larger values perform more gradual blending, but may deteriorate the internal pattern.

Suppress Radius

The amount of flattening near the generating body. This is required to remove unphysical spikes close to the object.

Attenuate by Distance

When enabled, heights of waves farther from the generating object are reduced.

Falloff Range is Relative to Speed

When this is turned on (along with Attenuate by Distance), values in the Falloff Range will be relative to the object’s speed; that is, bodies that are moving faster will have longer wakes. If Falloff Range is Relative to Speed is disabled, values in the Falloff Range represent absolute distances.

Falloff Range

Controls the distance at which the disturbances behind the boat are attenuated, when Attenuate by Distance is turned on.

Spectrum

Magnitude Multiplier

Controls the overall amplitude of the wakes.

Magnitude Ramp

Determines magnitudes of the wave coefficients at each angle. Values near the middle and endpoints of this ramp control transverse and divergent components, respectively. Transverse waves face in the same direction as the object, while divergent components are responsible for the patterns that emerge near wake edges. Left and right sides of this ramp correspond to the respective sides of the wake.

Phase Offset

A global phase offset for the wave coefficients. Changing this value will shift the wake pattern without changing the shape.

Phase Ramp

Determines phases of the wave coefficients at each angle. You can use this ramp to tweak the look of the waves without affecting the overall shape. Left and right sides of this ramp correspond to the respective sides of the wake.

Output

Displacement

When enabled, the specified point attribute will store the amount of displacement at each point. Only available when Deformation Target is set to Points.

Deformation Mask

When enabled, the specified point attribute will store the mask applied at each point. This mask is calculated using parameters under the Falloffs section. Only available when Deformation Target is set to Points. When Input is Objects as Points, the exported value corresponds to the mask from the closest object.

Local Coordinates

When enabled, the specified point attribute will store the two-dimensional local coordinate of each point with respect to the floating body. First coordinate is aligned with motion of the object, while the second is perpendicular. Only available when Deformation Target is set to Points. When Input is Objects as Points, the exported value corresponds to coordinates in the frame of the closest object.

Height Layer

Name of the layer to adjust when Deformation Target is set to Heightfield.

Geometry nodes