Add Component ‣ Crest ‣ Inputs ‣ Crest Shape FFT

Switch To Scripting

FFT wave shape.

Related: Animated Waves, Wave Spectrum, Water Inputs

Properties

Mode

The mode for this input.

See the manual for more details about input modes. Use AddComponent(LodInputMode) to set the mode via scripting. The mode cannot be changed after creation.

    Paint

Hand-painted data by the user.

    Spline

Driven by a user created spline.

    Renderer

Attached ‘Renderer’ (mesh, particle or other) used to drive data.

    Global

Covers the entire water area.

    Texture

Data driven by a user provided texture.

Weight

Scales the input.

Queue

The order this input will render.

Order is Queue plus SiblingIndex

Blend

How this input blends into existing data.

Similar to blend operations in shaders. For inputs which have materials, use the blend functionality on the shader/material.

    Off

No blending. Overwrites.

    Additive

Additive blending.

    Alpha

Applies the inverse weight to the target.

Basically overwrites what is already in the simulation.

    Alpha Clip

Same as alpha except anything above zero will overwrite rather than blend.

Feather

The width of the feathering to soften the edges to blend inputs.

Inputs that do not support feathering will have this field disabled or hidden in UI.

Follow Horizontal Wave Motion

How this input responds to horizontal displacement.

If false, data will not move horizontally with the waves. Has a small performance overhead when disabled. Only suitable for inputs of small size.

Bicubic Sampling

Whether to use bicubic sampling to reduce artifacts.

This is only needed when using gerstner waves without normal maps or small waves to hide artifacts.

Mode

Spline

Driven by a user created spline.

Related: Spline Mode

Spline

The Crest Spline to use with this input.

Override Radius

Whether to override the spline’s radius.

Radius

The radius of the spline.

Override Subdivisions

Whether to override the spline’s subdivisions.

Subdivisions

Increasing subdivision increases the geometry density.

Mostly useful for water level changes. High values can reduce staircasing effect.

Wave Multiplier

Weight multiplier to scale waves.

Feather Wave Start

Feathers waves across the spline (ie across width). Reverse the spline to swap direction.

Paint

Hand-painted data by the user.

LeftClick, hold and drag to add waves orientated along the drag direction. Hold Shift-LeftClick to remove.

Related: Paint Mode

Data

Stores the editor paint data.

Baked Texture

Stores the standalone paint data.

Bake On Save

Automatically re-bakes the texture on save.

This will only work after the first bake.

Show Baked Texture

Force the input to use the baked paint data for standalone.

World Size

Change the world size of the painted area. Will not delete data when shrinking.

Requested Texel Density

The resolution of the output.

Output texture resolution will scale to the world size based on this value - basically how many texels per unit (meters).

Maximum Resolution

The maximum resolution of the output.

If one dimension exceeds this value, it will be clamped, and the smaller dimension will be scaled down proportionally.

Brush Size

Size of the brush.

Brush Strength

Strength of the brush.

Normalize Stroke Magnitude

Whether to normalize the magnitude of the brush stroke.

Directional data will will use the magnitude of the stroke as the brush strength. With this option enabled, it will normalize, and use the Brush Strength property instead. Normalizing will give more consistent strokes.

Clamp Output Magnitude

Whether to clamp the magnitude of the output.

When disabled, the output (ie the texture) can exceed the maximum wave strength of the spectrum, as this is effectively a multiplier on a per-pixel basis. Use responsibly.

Texture

Data driven by a user provided texture.

Related: Texture Mode

Texture

Texture to render into the simulation.

Multiplier

Multiplies the texture sample.

This is useful for normalized textures. The four components map to the four color/alpha components of the texture (if they exist).

If you just want to fade out the input, consider using weight instead.

Negative Values

Whether the texture supports negative values.

Renderer

Attached ‘Renderer’ (mesh, particle or other) used to drive data.

Related: Renderer Mode

Renderer

The renderer to use for this input.

Can be anything that inherits from Renderer like MeshRenderer, TrailRenderer etc.

Disable Renderer

Forces the renderer to only render into the LOD data, and not to render in the scene as it normally would.

Override Shader Pass

Whether to set the shader pass manually.

Shader Pass Index

The shader pass to execute.

Set to -1 to execute all passes.

Check Shader Name

Check that the shader applied to this object matches the input type.

For example, an Animated Waves input object has an Animated Waves input shader.

Check Shader Passes

Check that the shader applied to this object has only a single pass, as only the first pass is executed for most inputs.

Waves

Spectrum

The spectrum that defines the water surface shape.

Evaluate Spectrum At Run Time Every Frame

Whether to evaluate the spectrum every frame.

When false, the wave spectrum is evaluated once on startup in editor play mode and standalone builds, rather than every frame. This is less flexible, but it reduces the performance cost significantly.

Apply Advanced Spectrum Controls

Whether to apply the options shown when “Show Advanced Controls” is active.

Respect Shallow Water Attenuation

How much these waves respect the shallow water attenuation.

Attenuation is defined on the Animated Waves. Set to zero to ignore attenuation.

Sea Level Only

Whether global waves is applied above or below sea level.

Waves are faded out to avoid hard transitions. They are fully faded by 1m from sea level.

Override Global Wind Direction

Whether to use the wind direction on this component rather than the global wind direction.

Global wind direction comes from the Water Renderer component.

Wind Direction

Primary wave direction heading (degrees).

This is the angle from x axis in degrees that the waves are oriented towards. If a spline is being used to place the waves, this angle is relative to the spline.

Override Global Wind Speed

Whether to use the wind speed on this component rather than the global wind speed.

Global wind speed comes from the Water Renderer component.

Wind Speed

Wind speed in km/h. Controls wave conditions.

Override Global Wind Turbulence

Whether to use the wind turbulence on this component rather than the global wind turbulence.

Global wind turbulence comes from the Water Renderer component.

Wind Turbulence

How turbulent/chaotic the waves are.

Wind Alignment

How aligned the waves are with wind.

Generation Settings

Resolution

Resolution to use for wave generation buffers.

Low resolutions are more efficient but can result in noticeable patterns in the shape.

Time Loop Length

FFT waves will loop with a period of this many seconds.

Level of Detail

Include In Drop Detail Height Based On Waves

Whether the maximum possible vertical displacement is used for the Drop Detail Height Based On Waves calculation.

This setting is ignored for global waves, as they always contribute. For local waves, only enable for large areas that are treated like global waves (eg a storm).

Culling

Override Culling

Whether to override automatic culling based on heuristics.

Maximum Vertical Displacement

Maximum amount the surface will be displaced vertically from sea level.

Increase this if gaps appear at bottom of screen.

Maximum Horizontal Displacement

Maximum amount a point on the surface will be displaced horizontally by waves from its rest position.

Increase this if gaps appear at sides of screen.

Collision Data Baking

Enable Baked Collision

Enable running this FFT with baked data.

This makes the FFT periodic (repeating in time).

Time Resolution

Frames per second of baked data.

Larger values may help the collision track the surface closely at the cost of more frames and increase baked data size.

Smallest Wavelength Required

Smallest wavelength required in collision.

To preview the effect of this, disable power sliders in spectrum for smaller values than this number. Smaller values require more resolution and increase baked data size.

Baked Time Loop Length

FFT waves will loop with a period of this many seconds.

Smaller values decrease data size but can make waves visibly repetitive.