mirror of
https://github.com/storytold/photocraft.git
synced 2026-10-27 11:27:21 -06:00
Measured on Photoshop 27.11 (scripted: a 128 px square with one glow, sampled pixel by pixel across its edges; outer and inner, both techniques, sizes 10 and 20, spread 0/40 %, choke 0/30 %, Range 50 %): - A Precise glow is 1 - D / (size + 1) beyond the solid spread/choke part, D being the centre-to-centre distance to the shape's edge. PhotoCraft's ramp ended at `size` and the default Range then doubled it, so it stayed solid for half the size and fell off steeply: up to 122 levels off. The raw coverage is now 0.5 at the edge falling to 0 at size + 1, so the shared Range step (v / range) gives Photoshop's ramp at the default 50 %; other Range values are unmeasured. - A centre-source inner glow is exactly 1 - the edge glow, taken after the contour and Range. PhotoCraft inverted before them: the softer centre glow was 115 levels off, the precise one 64. All 16 glow cases are now within 2 levels (10 were 58 to 122 off); softer edge and outer glows are unchanged. On the GPU: the same ramp in fs_mglow, and an "invert after the contour" mode (p0.y = 2) in fs_mfinish for glows only (Satin keeps its own invert). The 44 GPU parity tests pass. Corpus: the two Photoshop precise-glow oracles go from 0.31 / 0.37 to 0.05 worst error (curved anti-aliased shapes, still not under 2/255); nothing else changes. Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>