PostSpec
data class PostSpec(val bloom: Float = 0.8f, val bloomRadius: Float = 0.04f, val threshold: Float = 0.4f, val vignette: Float = 0.28f, val grain: Float = 0.012f, val glitch: Boolean = true, val aberration: Float = 0.0025f, val scanlines: Float = 0.0f)
The finishing pass laid over a drawing: light spilling out of the bright parts, colour fringes towards the edges, darker corners, a little grain, and for a few drawings the lines of an old screen.
Bloom is the one that matters. A real camera, and a real eye, sees a bright light bleed into what is around it, and a picture without that looks like a diagram of light rather than light. It is why the same drawing looks cheap on one screen and expensive on another.
The amounts are fractions: 0 is off. bloomRadius is a share of the shorter side of the screen, and threshold is how bright a part has to be before it spills at all. glitch only ever does anything in the second after a drop.