fix algining xynova texture to uv printing fixture.

This commit is contained in:
ykcheungab
2026-09-29 16:33:31 +08:00
parent 267334d543
commit 37e3e8400b
33 changed files with 758477 additions and 886701 deletions
+26 -2
View File
@@ -78,6 +78,22 @@ texture_patch:
texture_patch_views:
enabled: true
pattern_camera: cam_sensor # the pattern every layout carries, same source as `compute`
# Per-view page sizing. Measured here: the uv_1/uv_2 layouts are 21.1989 x 23.2003 mm
# (aspect 0.9137) and 21.2001 x 23.2003 mm (aspect 0.9138) — PORTRAIT. `vector:` above says
# 18.5 x 16.4 (aspect 1.1280), which is LANDSCAPE, so the artwork was stretched 23% in the
# wrong direction. `auto` derives the page per view and proves the layout really is a
# bounds-projection from the named camera before using the result.
#
# `px_per_mm: 200` reproduces the existing density exactly (3700/18.5 = 200.0).
#
# `fixed` keeps `texture_patch.vector`, which unwrapped layouts (`produce`, `compute`)
# require — they are not projections.
#
# Overlay note: the scene render is 250x250 while these layouts are 0.9138 aspect, so set the
# render resolution to the emitted raster size and use "Stretch to fill".
page:
mode: auto
px_per_mm: 200
pairs:
- id: uv_1
camera: cam_uv_1 # REGION camera
@@ -87,10 +103,18 @@ texture_patch_views:
uv_map: uv_2
merge:
mode: authored # honour the 45-edge seam marked on the mesh
incidence_limit_deg: 62.0 # measured on this part: hole fraction 0.0002 at 62 deg
# RE-MEASURED 2026-09-29 after the region cameras moved (cam_uv_1 az 318.9 -> 308.3,
# elevation -43.3 -> -24.5, distance 37.6 -> 32.6 mm). Sweep at min_triangle_coverage 0.60:
# 62deg -> hole 0.0480 FAILS max_hole_fraction (a visible bald patch of 29.6 mm^2)
# 65deg -> hole 0.0130 passes, but barely
# 70deg -> hole 0.0001 passes with margin <-- current
# The limit is a property of the camera poses and the surface, so MOVING THE CAMERAS
# INVALIDATES IT. Re-run the sweep after any re-pose. min_triangle_coverage is not binding
# here: relaxing it to 0 changes nothing at 62 or 70 degrees.
incidence_limit_deg: 70.0
min_footprint_mm2: 2.0e-3
min_triangle_coverage: 0.60
max_hole_fraction: 0.02
max_hole_fraction: 0.02 # enforced: the run fails above this rather than shipping a gap
component_policy: best_coverage
seam:
boundary: use_seam