fadeEnvelope

function fadeEnvelope
cinematic.ts:324
fadeEnvelope(window: FadeWindow, frame: number) → number

Opacity at frame for a fade-hold-fade window.

Ramps are smoothstepped rather than linear because the measured pixel-count ramps are S-shaped — a linear dissolve reads as mechanical against the reference.

The correction is applied to the rise only, and that asymmetry is evidence rather than convenience. A captured render put every credit's threshold crossing exactly four frames late and none of them early on the way out, so the leading edge needed THRESHOLD_FRACTION and the trailing edge was already right. Applying it symmetrically instead left the main logotype at 70% opacity nine frames after the reference had lost it.

The window degenerates gracefully: a title whose fade-out starts on its last visible frame simply drops over one frame.

windowFadeWindow
Undocumented
framenumber
Undocumented
Returnsnumber