Luxar Viewer API Documentation - v2026.9.22
    Preparing search index...

    Variable CAPSULE_JOINT_PACKET_MIN_RADIUS_PXConst

    CAPSULE_JOINT_PACKET_MIN_RADIUS_PX: 4 = 4.0

    Width gate for the joint packet: below this stencil half-width (CSS px) the vertex stage skips the packet math, so hairline scenes pay nothing for the deficit rule — EXCEPT where the turn is SHARPER THAN 120° and BOTH of my raw radii reach CAPSULE_MIN_RADIUS_PX (#1495).

    ANGLE: past 120° the bisector cuts my rod LENGTHWISE, so the skipped packet costs real light — short partner (ql = 0.4 r), −0.28 of peak at 135° (r = 1.5) to −0.72 at 160° (r = 3.5) against −0.05…−0.12 for a congruent joint at the same angle and radius, a difference that is ≤0.03 up to ~90°. (That subtrahend is the congruent joint's own packet-suppressed deviation, itself part chop.) A WIDENING partner is not part of the case: its far end clears this gate, so its packet already refills the cut. The test reuses the sharp clause's > 0.5 axis-dot, agreeing by DUPLICATION, not construction — 16 shader literals (4 surfaces × 2 ends × {gate, clause}) against this model's one sharpTurn, so no pin covers the clause copies.

    FLOOR: capsuleLegWidthScale dims a sub-floor leg while the deficit cancels the partner's UNSCALED profile, so a pair at different scales OVER-fills (+0.14…+0.16 at 175° with one end sub-floor) — a bead, the artifact class this primitive exists to remove. It closes that half ONLY: fade can still disagree between legs (block comment below), so the exactness condition is "the partner's SCALED field <= mine everywhere", NOT "widthScale == 1". The price is real — a drawable sub-floor taper (own raw 1.2 → 3.0) would measure −0.05…−0.07 with a packet against −0.33…−0.79 gated, and −0.002…−0.004 against −0.03…−0.10 with a congruent partner and no bead at all. A dim gap over a bright bead is the trade, not a free win.

    COST is fragment work, not stencil area (the kept half-disc already spans sin(turn/2) >= 0.87 of the disc past 120°): a live packet makes every foreign-side fragment evaluate the partner rod instead of discarding, and past 120° that region runs lengthwise along the rod — 18.3% of a leg's own covered footprint at 121°, 27.5% at 150°, 56.8% at 175° (r = 2, len 12; 15.8/23.4/50.9 at r = 3.5) against 12–15% at a gentle joint. The thin-line fill arm was NOT re-run, and the perf benches are not obviously immune: their walk draws every step independently, so 24.9% of their joints turn past 120°, and whether their drawn radius lands in the band this opens depends on framing (not measured).

    All radii and residual measurements in this block are CSS-pixel values; fragment-work percentages vary with the render-target scale.

    THREE RESIDUALS, all pinned by the sweep: a joint at or below 120° still hard-cuts (−0.19 at ql = 0.4 r, −0.39 at 0.05 r, r = 3.5); the angle threshold is hard, so a projected bend sweeping it pops (−0.175 → 0.000 across 119.5° → 120.5°, r = 2); the floor is harder still (raw 1.4999 → 1.5 goes −0.21 → 0.000 at 125°, −0.72 → 0.000 at 175°) — a zoom sweeps that one.