Camera: optional speed-based FoV (widens when moving fast, eases back) -- off by default #663

Closed
opened 2026-10-11 03:31:44 +00:00 by sky_line · 1 comment
Owner

An optional speed-based field of view, as in racing and flight games: the camera's FoV widens as you move fast and eases back when you slow down, so speed feels fast. Off by default and never forced on.

Behaviour

  • Speed source: the camera's anchor velocity, meaning your avatar, or the vehicle or object you're sitting on (flying, driving, boats, aircraft, vehicles). Use the anchor's own velocity, smoothed, not raw camera movement. Orbiting, Alt-cam and manual camera moves must never trigger it, and neither should a teleport or region-crossing jump.
  • Curve: no change below a start speed, then the FoV ramps up to a maximum extra amount at a top speed. Use an ease (smoothstep) curve, not linear.
  • Smoothing: different time constants for widening (quick) and returning (slower), so it never pumps or jitters with speed noise. Clamp it frame-rate-independently.
  • Applies on top of the user's current FoV (CameraAngle / the zoom), and only to the main world view. Not to snapshots unless the user asks (or optionally keep the live FoV), not to mouselook unless enabled separately, not to reflection probes, mirrors or shadow views.
  • Disabled automatically in Build/edit mode, Pose Studio, Photo Studio's camera tools and the TPS camera's aim mode (or make it configurable).

Settings (Preferences > Move & View > Camera)

  • On/off. The default is off.
  • Strength: the maximum extra FoV, e.g. +10° default, up to +30°.
  • Speed range: start speed and full-effect speed in m/s, with sensible defaults for avatar flight versus vehicles. One pair to start; per-mode later if needed.
  • Optional: a separate toggle for mouselook.

Notes

  • Motion blur (#118): the FoV change itself must not add camera-motion blur. Its motion vectors come from the projection change, so exclude the FoV delta, or treat it like camera rotation, which is already excluded.
  • TAA/FSR: the projection changes every frame while ramping, so make sure history reprojection uses the real per-frame projection. It should already, but test for ghosting at the edges.
  • Comfort: keep the default modest. A large FoV kick can cause motion sickness for some users, which is another reason it's opt-in.
An optional **speed-based field of view**, as in racing and flight games: the camera's FoV widens as you move fast and eases back when you slow down, so speed *feels* fast. **Off by default** and never forced on. ## Behaviour - **Speed source:** the camera's anchor velocity, meaning your avatar, or the vehicle or object you're sitting on (flying, driving, boats, aircraft, vehicles). Use the anchor's own velocity, smoothed, not raw camera movement. Orbiting, Alt-cam and manual camera moves must never trigger it, and neither should a teleport or region-crossing jump. - **Curve:** no change below a start speed, then the FoV ramps up to a maximum extra amount at a top speed. Use an ease (smoothstep) curve, not linear. - **Smoothing:** different time constants for widening (quick) and returning (slower), so it never pumps or jitters with speed noise. Clamp it frame-rate-independently. - **Applies on top of** the user's current FoV (`CameraAngle` / the zoom), and only to the main world view. Not to snapshots unless the user asks (or optionally keep the live FoV), not to mouselook unless enabled separately, not to reflection probes, mirrors or shadow views. - **Disabled automatically** in Build/edit mode, Pose Studio, Photo Studio's camera tools and the TPS camera's aim mode (or make it configurable). ## Settings (Preferences > Move & View > Camera) - On/off. The default is **off**. - Strength: the maximum extra FoV, e.g. +10° default, up to +30°. - Speed range: start speed and full-effect speed in m/s, with sensible defaults for avatar flight versus vehicles. One pair to start; per-mode later if needed. - Optional: a separate toggle for mouselook. ## Notes - **Motion blur (#118):** the FoV change itself must not add camera-motion blur. Its motion vectors come from the projection change, so exclude the FoV delta, or treat it like camera rotation, which is already excluded. - **TAA/FSR:** the projection changes every frame while ramping, so make sure history reprojection uses the real per-frame projection. It should already, but test for ghosting at the edges. - **Comfort:** keep the default modest. A large FoV kick can cause motion sickness for some users, which is another reason it's opt-in.
sky_line added this to the Slipstream project 2026-10-11 03:31:44 +00:00
Author
Owner

Shipped in 1.3.0 Beta 5 (v1.3.0-beta.5). Closing.

Shipped in **1.3.0 Beta 5** (v1.3.0-beta.5). Closing.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
sky_line/Slipstream#663
No description provided.