Skip to main content

MIN_PARTICLE_DENSITY

Constant MIN_PARTICLE_DENSITY 

Source
pub const MIN_PARTICLE_DENSITY: f32 = 0.0005;
Expand description

The smallest [particles] density a preset may ask for (ADR-0069).

At this fraction the scene draws 25 particles at Floor (50 000) and 75 at Rich (150 000) — and that is deliberately far sparser than it first looks like it should be, because the sparse end is the point of the key rather than its degenerate edge.

This value is set from rendered captures, and the first arithmetic argument for it was wrong. The reasoning that picked 0.01 (500 particles) ran: ADR-0065 holds total light invariant by weighting each particle 50 000 / active, so a hundredth of the budget already concentrates a hundred particles’ worth of light into every point, and an order of magnitude below that must clip to white before it reads as a curve. Rendered at fade = 0.95, it does not. The banding first appears around 0.01, and at 0.002 (100 particles) and 0.0005 (25) the Lorenz lobes resolve into visibly cleaner spiral traces. The prediction missed that the trail spreads each particle’s deposit along its whole path rather than piling it on one texel, so concentrating light into fewer particles buys contrast against the background instead of clipping.

So the floor is not protecting a look — it is rejecting a mis-typed magnitude. 0.0005 is the sparsest fraction that has actually been captured rendering as the attractor; below it a preset is asking for single-digit trajectories, which is a few orbits rather than a figure. active_particles separately guarantees at least one particle, so nothing here can produce an empty draw.