rullino
    Preparing search index...

    Variable bilateralConst

    bilateral: MultipassFilter<
        {
            sigmaRange: {
                default: 0.08;
                description: "How different in colour a neighbour may be and still be averaged in. Low keeps edges; high approaches a plain blur.";
                label: "Colour sigma (ΔE)";
                max: 0.5;
                min: 0.01;
                step: 0.005;
                type: "float";
            };
            sigmaSpace: {
                default: 3;
                description: "How far the smoothing reaches, in pixels.";
                label: "Spatial sigma (px)";
                max: 20;
                min: 0.5;
                step: 0.1;
                type: "float";
                unit: "px";
            };
        },
    > = ...

    Edge-preserving smoothing: each neighbour weighs exp(−d²/2σs²) · exp(−ΔE²/2σr²), with ΔE the OKLab distance of the straight colours plus the alpha difference, and the average is taken on premultiplied linear values. Window radius 2σs (max 40 px). A first pass stores OKLab per pixel (rgba16float, like the CPU's rounded intermediate) so the main pass needs no cube roots.