Plush

PostProcessSettings#

PlushEngine · Type index

Namespace: PlushEngine

Camera-owned, backend-neutral post effects. Zero intensity/blur disables an effect; tonemapping remains mandatory for the linear HDR 3D target; optional display effects follow it.

public sealed record PostProcessSettings(float BloomIntensity = 0, float BloomThreshold = 1, float BloomScatter = 4, float FocusDistance = 10, float FocusRange = 5, float MaxBlurPixels = 0)

Record properties#

PropertyTypeAccessConstructor default
BloomIntensityfloatget; init;0
BloomThresholdfloatget; init;1
BloomScatterfloatget; init;4
FocusDistancefloatget; init;10
FocusRangefloatget; init;5
MaxBlurPixelsfloatget; init;0

Members: Chromostereopsis · ColorFilter · Contrast · Dither · EyeEffects · Gamma · GazeFocus · GazeFocusDepth · Grain · Organicism · OrganicismAberration · OrganicismClearRadius · OrganicismColor · OrganicismGaze · OrganicismMotion · OrganicismPattern · OrganicismSize · OrganicismSpeed · Saturation · Vignette · VignetteSoftness

Chromostereopsis#

public float Chromostereopsis { get; init; }

Chromostereopsis: a subtle depth-graded tint, warmer nearer than the camera's window distance and cooler beyond it, 0..1. Red tends to look nearer than blue, so the tint reinforces depth, most strongly through glasses that bend colours (ChromaDepth) and slightly for bare eyes. 0 is off.

ColorFilter#

public string ColorFilter { get; init; }

Initial value: "#FFFFFF"

Linear RGB filter before exposure and tonemapping, expressed as an sRGB hex colour. White is neutral.

Contrast#

public float Contrast { get; init; }

Initial value: 1

Display-space contrast around middle grey; 1 is neutral.

Dither#

public float Dither { get; init; }

Static, zero-mean output dither, 0..1 (one 8-bit code value peak to peak). Zero disables it.

EyeEffects#

public bool EyeEffects { get; init; }

Eye effects (ViewerEyes, camera face tracking): the view blinks with the viewer, refocuses and adapts to the light after their eyes rest, softens when they have not blinked for a long time, and dims while nobody is in front of the screen. Off by default; without tracking it does nothing.

Gamma#

public float Gamma { get; init; }

Initial value: 1

Display-space midtone gamma; 1 is neutral, values above 1 lift midtones.

GazeFocus#

public float GazeFocus { get; init; }

Gaze focus: depth of field focused where the viewer looks (ViewerGaze.Point), blurring up to this many pixels away from that depth (by GazeFocusDepth). 0 is off; while no gaze is known the ordinary depth of field applies.

GazeFocusDepth#

public float GazeFocusDepth { get; init; }

Initial value: .5f

How much depth gaze focus keeps sharp, in diopters each side of the focus (1 / metres). The default 0.5 is gentle (focused at 1 m, sharp from 0.67 to 2 m; past 2 m, sharp to the horizon); 0.3 is about a human eye; lower is shallower, like a wide-open lens. Gaze focus measures blur this way, not by FocusRange.

Grain#

public float Grain { get; init; }

Animated monochrome grain, 0..1 (maximum amplitude 5% of display range). Zero disables it.

Organicism#

public float Organicism { get; init; }

Organicism: a subtle, ever-changing breakup of the image anchored to the world (a sub-pixel warp plus brightness and colour modulation from a looping 3D noise at each pixel's world position), 0..1. Zero disables it. 2D, text and overlays never get it.

OrganicismAberration#

public float OrganicismAberration { get; init; }

Chromatic aberration along Organicism's warp, 0..1: red and blue shift apart where the image breaks up.

OrganicismClearRadius#

public float OrganicismClearRadius { get; init; }

Initial value: .25f

The radius of Organicism's clear zone around the gaze, as a fraction of the view's height.

OrganicismColor#

public float OrganicismColor { get; init; }

Initial value: .3f

What Organicism modulates, 0..1: 0 brightness only, 1 colour only.

OrganicismGaze#

public float OrganicismGaze { get; init; }

How much Organicism clears where the viewer looks (ViewerGaze.Point), 0..1: 0 is even across the image, 1 leaves the gaze point clean and the periphery broken up.

OrganicismMotion#

public OrganicMotion OrganicismMotion { get; init; }

How Organicism's noise moves through its loop.

OrganicismPattern#

public OrganicPattern OrganicismPattern { get; init; }

The kind of noise Organicism breaks the image up with.

OrganicismSize#

public float OrganicismSize { get; init; }

Initial value: .1f

The size of Organicism's largest blotches in metres; its detail goes down to an eighth of it.

OrganicismSpeed#

public float OrganicismSpeed { get; init; }

Initial value: 24

How fast Organicism changes: sixteenths of its loop per second (16 is one loop a second; 24 the default). The change is continuous, so slow speeds glide rather than step. Zero holds it still.

Saturation#

public float Saturation { get; init; }

Initial value: 1

Display-space saturation; 0 is monochrome, 1 is neutral.

Vignette#

public float Vignette { get; init; }

Corner darkening, 0..1. Zero disables it.

VignetteSoftness#

public float VignetteSoftness { get; init; }

Initial value: .5f

How far the vignette extends inward from the image corners, 0.01..1.

OrganicMotion · OrganicPattern

Source#