Skip to content
Русский

Paper — bg_paper

Everything above paints light, before the tonemap, and the tonemap’s shoulder never reaches 1: bg_bright = 1 over a white stop comes out a light grey, and no bg_* value gives display white. bg_paper = 1 paints the same backdrop as paper instead (ADR-0270).

ParamDefaultWhat it does
bg_paper00 paints the backdrop as light, everything above. 1 paints it as paper, under the finished picture. Structural: read as on at 0.5 and above, with nothing in between.

At 1 the frame starts transparent, the scene and the post chain draw as they always do, and the tonemap turns their light into a picture. The backdrop is then painted underneath at display values, and the picture is laid over it by the scene’s own coverage: a pixel reads tonemap(scene) + (1 - coverage) * paper. Every bg_* param above keeps its meaning — the ramp, the fan, the band, the vignette — except that bg_bright is now a display value, not a light. So:

  • A #ffffff stop at bg_bright = 1 is 255, and a pixel the scene fully covers is exactly what it would be over black. The figure is not lifted to get a white ground, which is what binding exposure up does.
  • Paper is not light. It does not bloom, the kaleidoscope does not fold it, trails do not smear it, and exposure does not move it. A preset that switches between the two routes changes how its ground answers every one of those.
  • Additive light over paper composites by its coverage, not by adding. A swarm particle on white reads as a coloured mark, not as a brighter spot, because adding light to white has nowhere to go. Content written for a black ground does not port to paper unchanged; an opaque figure, such as a present = "solid" voxel, is what paper is for.
  • A gradient on paper is not dithered. The display write’s dither covers the scene only. A flat paper cannot band; a paper ramp at 8 bits can.
  • multiply cannot darken the paper. The paper is under the whole chain, so a [layer] with blend = "multiply" has nothing to darken where the first layer is empty, and the paper shows there unchanged — as a lit backdrop already does.
  • Ink sees the paper. Ink remaps the finished picture, ground included, so ink_amount on a paper preset remaps its own page — a second way to lose the white.
  • Two paper presets cut their grounds at a dissolve. One paper is drawn per frame: the incoming preset’s when it has one, else the outgoing one’s. Between a paper preset and a light one the ground fades with its side.

The white has to be a stop the coordinate actually lands on. bg_hue = 1 sits on the palette’s wrap seam: the coordinate repeats, so at exactly 1 the gradient’s last colour is blended with its first. A palette from near-black at 0 to white at 1 gives a mid grey there, not white. End the palette on a short flat run and aim bg_hue inside it:

[palette]
stops = [
{ at = 0.0, color = "#1e1e1e" },
{ at = 0.6, color = "#4a4a4a" },
{ at = 0.98, color = "#ffffff" },
{ at = 1.0, color = "#ffffff" },
]
[params]
bg_paper = "1"
bg_bright = "1"
bg_hue = "0.99"
bg_shade = "1"
bg_shade_end = "1"

bg_shade and bg_shade_end at 1 take out the ramp’s default 0.72 tilt, which paper keeps like every other bg_* default.

Built from f4f807a at version 0.178.0. This site tracks main and is not versioned per release.