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