Renderer · function

jitterClip

source moved in clip space by jitter, which is what a contributed pass does with the frame's jitter (PrepareContext.jitter) to draw where the renderer's own verbs drew this frame.

Explained in Hello world.

function jitterClip(out: Float32Array, source: ArrayLike<number>, jitter: ArrayLike<number>): Float32Array
import { jitterClip } from '@driftengine/core';

Parameters

ParameterTypeDescription
outFloat32Array
sourceArrayLike<number>
jitterArrayLike<number>

In depth

In the camera's own convention, before any correction: jitter is a fraction of the clip square, x rightward and y upward as mat4.perspective has them, so the matrix it applies to is the one the consumer built — a pass then multiplies by clipCorrection or depthCorrection exactly as it would have, and the offset arrives on screen where the renderer's did. Scaled by w, as jitterProjection is, so it is a constant screen offset at every depth.

A zero jitter leaves a finite matrix bit for bit — each term gains a zero — so a frame that is not reconstructed draws exactly what it drew before this existed.