mirror of
https://github.com/visioncortex/vtracer.git
synced 2026-10-03 17:31:19 -07:00
Fix spline ballooning on sparse slices (visioncortex 0.9.1)
A splice slice with very uneven point spacing — a few-pixel jog followed by a long straight leg, which the walker produces around thin strands — was fitted by a single cubic that interpolated every sample exactly while swinging up to ~30 px sideways between them (the fit error was only measured at the samples). On the Cityscape sample at -p 8 -g 28 the maroon strand's wall bulged across its 2 px gap; a long-standing defect present in pre-1.0 vtracer as well. The fix lives in visioncortex 0.9.1 (densify slices with witness points, keep the full multi-cubic chain): the mosaic's shared-boundary spline fitter switches to the new fit_points_with_beziers so open segments get the same treatment as stacked mode. Verified against the exact pixel-mode rasterization — the fitted wall now matches it at every probed row — with identical path counts and only +3 cubics across the whole Cityscape output. All three workspaces (core, py, nodejs) carry a [patch.crates-io] entry pointing at the local visioncortex until 0.9.1 is published. Regression coverage for spline handle anchoring; re-bless goldens tests/spline_fit.rs traces the real reproduction (the Cityscape sample at color precision 8 / gradient step 28, whose maroon region contains a 1 px by 330 px strand) through both compositors and asserts the property the sparse-slice bug violated: every cubic's control points stay within its shape's on-curve bounding box plus a 15 px allowance. The ballooning fit put a handle 25 px outside the whole shape, so the margin is decisive in both directions. The sample photo is decoded via a test-only image dev-dependency. The synthetic goldens are re-blessed: the fitting fix shifts fixture coordinates slightly (witness points refine fits even on clean shapes); the old files still passed the render-diff, so the visual change is sub-tolerance, but goldens should byte-match intentional behavior. Depend on published visioncortex 0.9.1; drop local path patches
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Generator: visioncortex VTracer 1.0.0-alpha.1 -->
|
||||
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="48" height="40">
|
||||
<path d="M0,0C15.84,0,31.68,0,48,0c0,13.2,0,26.4,0,40c-15.84,0-31.68,0-48,0C0,26.8,0,13.6,0,0Z" fill="#FFFFFF"/>
|
||||
<path d="M24,0c3.96,0,7.92,0,12,0c0,13.2,0,26.4,0,40c-3.96,0-7.92,0-12,0c0-13.2,0-26.4,0-40Z" fill="#000000"/>
|
||||
<path d="M0,0C3.96,0,7.92,0,12,0c0,13.2,0,26.4,0,40c-3.96,0-7.92,0-12,0C0,26.8,0,13.6,0,0Z" fill="#FFFFFF"/>
|
||||
<path d="M0,0C16,0,32,0,48,0c0,13.33,0,26.67,0,40c-16,0-32,0-48,0C0,26.67,0,13.33,0,0Z" fill="#FFFFFF"/>
|
||||
<path d="M24,0c4,0,8,0,12,0c0,13.33,0,26.67,0,40c-4,0-8,0-12,0c0-13.33,0-26.67,0-40Z" fill="#000000"/>
|
||||
<path d="M0,0C4,0,8,0,12,0c0,13.33,0,26.67,0,40c-4,0-8,0-12,0C0,26.67,0,13.33,0,0Z" fill="#FFFFFF"/>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 512 B After Width: | Height: | Size: 488 B |
Reference in New Issue
Block a user