LookSettings class final

The look put on the frame after it has been tone mapped.

Everything here defaults to doing nothing, exactly. Not nearly nothing: a vignette of zero multiplies by one and grain of zero adds zero, so a scene that asks for none of it composites to the same bytes it did before this existed. Forty-four goldens depend on that being exact, and the composite pass already keeps the same promise for ambient occlusion.

Applied in the composite rather than as passes of their own, which is the trade this makes against a chain of full-screen effects: one pass, one read of the scene, and no intermediate target — at the cost that the order is fixed. The order is the one a camera imposes and is not arbitrary: the lens disperses colour before the sensor sees it, so chromatic aberration reads the scene at offset coordinates; grading is a decision about a displayable image and so follows the tone map; grain and vignette are the film and the barrel, and come last.

Constructors

LookSettings({double contrast = 1.0, double saturation = 1.0, double temperature = 0.0, double vignette = 0.0, double vignetteRoundness = 1.0, double grain = 0.0, double chromaticAberration = 0.0, double dither = 0.0, Vector3? lift, Vector3? gamma, Vector3? gain, double whiteBalance = 0.0, double tint = 0.0, TextureHandle? lut, double lutStrength = 1.0})
const

Properties

chromaticAberration → double
Radial colour dispersion, in screen widths at the corner. 0.005 is visible without reading as a fault.
final
contrast → double
Pivoted about mid grey, so raising it does not also raise exposure.
final
dither → double
Ordered noise added after the sRGB encode, in output steps — gfx-24n.
final
gain → Vector3?
What is multiplied, per channel, so the highlights move and black stays. Null is neutral, the same as one. See lift.
final
gamma → Vector3?
The exponent, per channel, so the midtones move and both ends stay. Null is neutral, the same as one. See lift.
final
gradesThroughLut → bool
Whether lut will actually be sampled this frame.
no setter
grain → double
Amplitude of per-pixel noise, 0 to about 0.1.
final
hashCode → int
The hash code for this object.
no setterinherited
isNeutral → bool
Whether any of this changes the picture at all.
no setter
lift → Vector3?
What is added, per channel, so the shadows move and white stays — gfx-27n. Null is neutral, the same as zero.
final
lut → TextureHandle?
A colour table, as a strip of N slices of N×N — gfx-18n's own row.
final
lutStrength → double
How much of lut to apply, 0 to 1.
final
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
saturation → double
Zero is luminance alone; above one pushes past the original chroma.
final
temperature → double
Warm above zero, cool below, in the range −1 to 1. A gain on red against blue rather than a true white-balance conversion: this is a look control, and a scene lit at the wrong colour temperature should be fixed at the light rather than here.
final
tint → double
Green above zero, magenta below, in the range −1 to 1. The other axis of whiteBalance, and takes its green out of red and blue rather than adding light, so a tint alone changes the hue and not the level.
final
vignette → double
How far the corners are pulled down, 0 to 1.
final
vignetteRoundness → double
1 keeps the falloff circular whatever the aspect; 0 lets it follow the frame and reach the short edges sooner.
final
whiteBalance → double
Warm above zero, cool below, in the range −1 to 1 — gfx-27n.
final

Methods

copyWith({double? contrast, double? saturation, double? temperature, double? vignette, double? vignetteRoundness, double? grain, double? chromaticAberration, double? dither, Vector3? lift, Vector3? gamma, Vector3? gain, double? whiteBalance, double? tint, TextureHandle? lut, double? lutStrength}) → LookSettings
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toString() → String
A string representation of this object.
inherited

Operators

operator ==(Object other) → bool
The equality operator.
inherited