Field Remap
Reshapes field values through an input range, curve, and output range. Magnitude-preserving for vector fields.
Category: Fields Menu path: Fields > Field Remap
Ports
| Port | Type | Direction | Description |
|---|---|---|---|
in | scalarField | input | Input field (also accepts vectorField and scalar via compatibility) |
scalarField | scalarField | output | Remapped scalar field |
vectorField | vectorField | output | Remapped vector field (magnitude reshaped, direction preserved) |
Parameters
| Param | Type | Default | Description |
|---|---|---|---|
inMin | scalar | 0 | Input range minimum |
inMax | scalar | 1 | Input range maximum |
outMin | scalar | 0 | Output range minimum |
outMax | scalar | 1 | Output range maximum |
clamp | boolean | true | Clamp input to [inMin, inMax] before remapping |
curve | curveRamp | identity (linear 0-1) | Response curve applied between input and output ranges |
How It Works
Field Remap processes field values through a three-stage pipeline:
- Normalize: Map the input value from [inMin, inMax] to [0, 1].
- Curve: Evaluate through the CurveRamp response curve.
- Scale: Map from [0, 1] to [outMin, outMax].
Scalar field path: Each sampled value goes through all three stages directly.
Vector field path: Magnitude-preserving. The vector is decomposed into length + direction. The length is remapped through the curve. The direction is preserved. This reshapes the speed/strength distribution of a vector field without changing its directional character.
The curve param uses the CurveRamp editor -- an interactive SVG curve with draggable control points, presets (Identity, Ease In, Ease Out, S-Curve), and interpolation modes (Linear, Smooth, Step).
Field Remap is a lightweight CPU node -- it composes lazily with the upstream field. The curve is only evaluated at eval() time when a consumer samples the field.
Usage Examples
Basic: Ease a noise field
Noise.scalarField -> Remap (curve: S-Curve preset). The noise field's linear 0-1 distribution is reshaped into a smoother S-curve, creating more contrast between high and low regions.
Range mapping
Noise.scalarField -> Remap (inMin: 0.3, inMax: 0.7, clamp: true). Only the middle range of noise values are used, creating a more binary (on/off) field.
Speed shaping for advection
Noise.vectorField -> Remap (curve: custom ease-in, outMin: 0, outMax: 2). Vector field magnitudes are reshaped -- slow regions stay slow, fast regions accelerate further. Feed into PointAdvect.
Inverting a field
Remap (outMin: 1, outMax: 0). Flips the field values -- what was 1 becomes 0.
Tips
- The CurveRamp editor supports presets accessible from the curve widget header
- Double-click on the curve to add control points; select and delete to remove them
- Clamp enabled (default) prevents values outside inMin/inMax from producing unexpected output
- The vectorField output preserves flow direction while reshaping magnitude -- ideal for tuning PointAdvect speed
Related Nodes
- FieldMath -- combine two fields with math operations
- Noise -- common upstream field source
- DistanceField -- another field source (shape-based falloff)
- PointAdvect -- consumer of reshaped vector fields
- Math -- scalar Remap operation (simpler, no curve)