Begin with recognizable reflected content, then use tint, blur and masks to blend it into the scene.
Visibility, color and offset#
| Control | Meaning |
|---|---|
| Strength / Opacity | Both multiply visibility, range 0–1, including when Visual Effects is off. |
| Reflection Color | Multiplicative RGBA color. White preserves captured color; alpha affects transparency. Controlled by Color Enabled. |
| Tint / Tint Strength | Multiplicative blend from white toward the chosen RGBA tint, with 0–1 strength. Tint Enabled retains/disables it. |
| Brightness | RGB multiplier, 0–4. One preserves brightness; source Light 2D settings are unchanged. |
| Saturation | Zero is grayscale, one preserves source saturation, up to two increases it. |
| Offset | Sampling displacement in local plane units. Destination and silhouette remain fixed. |
Optional appearance fields require Visual Effects and their individual flags. Begin with white color, modest tint, brightness/saturation one and zero offset. Lower opacity over a separate water bed. Disable optional color/tint while comparing captured lighting.
Blur#
| Setting | Behavior |
|---|---|
| Blur | Enable optional blur and Visual Effects. Mirror can use it. |
| Radius | 0–4 capture texels; Lightweight uses source texture texels. It is not world-space distance. |
| Low Cost | Three-sample approximation in the display shader. |
| Five Tap | Five-sample approximation for a smoother result with additional sampling cost. |
| Pixel Art | Pixel Safe Distortion suppresses blur. Smooth is suitable for an intentionally softened look. |
| Lightweight atlas | Tight-packed UV distortion/blur is rejected; use rectangular/unpacked sprites or Planar. |
For wet stone, use a shallow Planar destination, apply Wet Floor or try opacity near 0.45 with a Low Cost radius around 1, then add a restrained fade/tint. Compare at the final capture resolution because texel size affects the apparent world-space blur. This fixed-tap blur does not implement physically accurate rough reflections or a general post-processing stack.
Vertical and horizontal fades#
| Field | Interpretation |
|---|---|
| Fade | Enable fading and Visual Effects; at least one axis must be enabled. |
| Vertical Fade | Normalized depth away from the plane: zero at the top, one at the bottom. |
| Fade Start / End | Normalized vertical range. End must exceed Start; invalid ranges are sanitized. |
| Horizontal Fade | Symmetric transition from center toward both sides. |
| Horizontal Start / End | Independent range: zero at center, one at left/right edges. |
| Fade Intensity | Zero adds no fading; one can fully remove distant/edge output. Lower values retain some visibility. |
Both masks multiply when enabled. Try vertical start 0.15, end 1 and intensity 0.65 for a quiet lake. A puddle may also benefit from horizontal fade.
SetReflectionFade(vertical, horizontal, start, end, intensity) copies the same range to both axes. For independent horizontal values, edit Effects.HorizontalFadeStart/End and call NotifyVisualEffectsChanged().
Soft destination edges#
Soft Edges enables Visual Effects and blends inward from the destination rectangle. Edge Softness is normalized 0–0.5; increasing it uses more of the rectangle for the blend.
For an irregular shape, use the source Sprite's alpha for curved borders and holes. Soft Edges remains a rectangular mask rather than a distance field around each silhouette boundary. A soft hole boundary must be present in the sprite's alpha.