For MPMSolver's materials.water.
For new FluidSurface(mpm, preset.surface).
Optionalabsorption?: [number, number, number]Beer–Lambert absorption of the water, per metre (linear RGB): pure water loses red first.
Optionaledge?: numberWater thickness (m) over which the rim of the water fades in (anti-aliased edges; a thin film is still a reflecting surface).
Optionalfoam?: numberMost whitewater coverage, 0…1.
OptionalfoamColor?: stringColour of whitewater (aerated, fast or broken water), #rrggbb.
OptionalfoamDensity?: numberHow opaque aerated water gets per metre of thickness (whitewater is translucent where thin).
OptionalfoamSpeed?: [number, number]Speeds (m/s) over which water turns to whitewater: none below the first, all above the second.
Optionalior?: numberIndex of refraction (sets the Fresnel reflectance; 1.333 for water).
Optionaliterations?: numberSmoothing passes (each a horizontal and a vertical blur), 0…4.
Optionalmist?: numberOpacity of one spray particle's mist.
OptionalmistSize?: numberWidth of a spray particle's mist, in particle spacings.
Optionalradius?: numberParticle sphere radius, in particle spacings (Δx/2). About 1 makes neighbours overlap into one surface.
Optionalrefraction?: numberHow far the background shifts through the surface, per metre of water thickness (screen fraction).
Optionalresolution?: numberResolution of the offscreen passes relative to the drawing buffer (0.25…1).
Optionalroughness?: numberMicrofacet roughness of the sun highlight (0.02 glassy … 0.3 rippled).
OptionalscatterColor?: stringColour of the in-scattered light (silt, algae), #rrggbb.
Optionalshutter?: numberExposure time of the mist's motion blur, seconds (streak length = speed × shutter).
Optionalsky?: [string, string, string]Reflected sky when no envMap: zenith, horizon and ground colours, #rrggbb (scaled by the lighting's ambient).
Optionalsmoothing?: numberDepth smoothing radius, in particle radii (world space; the bilateral filter keeps silhouettes).
Optionalspray?: [number, number]Spray: water where the solver's grid is nearly empty (a node mass of a full cell of 1000 kg/m³ = 1) is drawn as soft mist, not as surface; all mist below the first value, all surface above the second (needs a source with a grid).
Optionalstreaks?: numberContrast of the flow-aligned streaks in falling whitewater, 0…1.
OptionaltagRadius?: numberRadius multiplier of tagged particles (buffers.state.z ≠ 0, e.g. rain splashes): small drops, not blobs.
Optionalturbidity?: numberIn-scattering by suspended matter, per metre: 0 is glass-clear, tens is opaque mud within centimetres.
A water preset:
watermaterial parameters plus the matching FluidSurface look.