FX P5: Slipstream extensions — HDR point, normals/motion/avatar-mask semantics, per-effect scope #548

Closed
opened 2026-10-08 06:28:04 +00:00 by sky_line · 1 comment
Owner

Part of epic #542 (from #186). Design + code citations are in the epic; read it first.

Size: M (3-4 d)

Expose data injected ReShade cannot get. Needs P1 + the avatar mask from the cel track.

Scope

  • HDR injection point (opt-in per effect): after bloom, before recordTonemap (llcleanrenderervk.cpp:26661 -> :26718), on mHdr RGBA16F linear, exposure-scaled. Advertised as BUFFER_COLOR_SPACE 2 / bit depth 16.
  • Custom texture semantics: SLIPSTREAM_NORMAL (view-space normal at display res; forces the normal pre-pass twin, as AO does), SLIPSTREAM_MOTION (mMotion convention, UV units cur-prev), SLIPSTREAM_AVATAR_MASK, SLIPSTREAM_SCENE_HDR. Plus a __SLIPSTREAM__ version macro. Display-res + unjittered resolves for render-res inputs.
  • Per-effect scope host feature: whole frame / avatars only / everything except avatars, with feather. The host keeps the pre-effect image and lerps by the resolved mask.
  • Document the extensions in a short fx/README for effect authors.

Done when

  • A stock SweetFX effect set to "avatars only" changes only avatar pixels (attachments + hair included), stably under TAA and camera motion.
  • A sample effect reading SLIPSTREAM_NORMAL / MOTION shows correct data at render scale 1 and < 1.
  • An HDR-point effect sees linear values > 1 and the tonemapper still applies after it.
Part of epic #542 (from #186). Design + code citations are in the epic; read it first. **Size:** M (3-4 d) Expose data injected ReShade cannot get. Needs P1 + the avatar mask from the cel track. **Scope** - **HDR injection point** (opt-in per effect): after bloom, before `recordTonemap` (`llcleanrenderervk.cpp:26661 -> :26718`), on `mHdr` RGBA16F linear, exposure-scaled. Advertised as `BUFFER_COLOR_SPACE 2` / bit depth 16. - **Custom texture semantics:** `SLIPSTREAM_NORMAL` (view-space normal at display res; forces the normal pre-pass twin, as AO does), `SLIPSTREAM_MOTION` (`mMotion` convention, UV units cur-prev), `SLIPSTREAM_AVATAR_MASK`, `SLIPSTREAM_SCENE_HDR`. Plus a `__SLIPSTREAM__` version macro. Display-res + unjittered resolves for render-res inputs. - **Per-effect scope** host feature: whole frame / avatars only / everything except avatars, with feather. The host keeps the pre-effect image and lerps by the resolved mask. - Document the extensions in a short `fx/README` for effect authors. **Done when** - [ ] A stock SweetFX effect set to "avatars only" changes only avatar pixels (attachments + hair included), stably under TAA and camera motion. - [ ] A sample effect reading `SLIPSTREAM_NORMAL` / `MOTION` shows correct data at render scale 1 and < 1. - [ ] An HDR-point effect sees linear values > 1 and the tonemapper still applies after it.
sky_line added this to the Slipstream project 2026-10-08 06:28:04 +00:00
Author
Owner

Done: FX P5 (Slipstream extensions: HDR point, normal/motion/avatar-mask semantics, c7db7e9b38). Shipped in 1.2.0 Beta 4/5 (ReShade effects + cel shading).

Done: FX P5 (Slipstream extensions: HDR point, normal/motion/avatar-mask semantics, c7db7e9b38). Shipped in 1.2.0 Beta 4/5 (ReShade effects + cel shading).
sky_line 2026-10-09 09:25:22 +00:00
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#548
No description provided.