fix cli redundant images
finger-xynova first design completed
This commit is contained in:
@@ -52,6 +52,59 @@ texture_patch:
|
||||
thickness_px: 3
|
||||
color: [1.0, 0.0, 0.0, 1.0] # red reference cross
|
||||
|
||||
# Multi-view production textures (`orisys-design texture-views`).
|
||||
#
|
||||
# `cam_uv_1` / `cam_uv_2` already existed in this blend; `uv_1` / `uv_2` and the seam were
|
||||
# added to `sensing_surface`. Verified: the marked seam is a valid cut — 45 edges splitting
|
||||
# the surface into 2 components of 308.314 / 308.311 mm^2 (50.0 / 50.0) — and at the default
|
||||
# 62 degree limit the partition leaves 0.100 mm^2 of hole (fraction 0.0002), well inside
|
||||
# max_hole_fraction. Coverage: 4960/5007 triangles owned, 20454 + 21483 fragments emitted.
|
||||
#
|
||||
# NOTE: this revision contains SIX sensing-surface variants (`sensing_surface`, `_0`, `_0918`,
|
||||
# `_0928`, `_45`, `_918_s`). `_0928` is the only one carrying the seam and `uv_1`/`uv_2`, so
|
||||
# `sensing_surface` is a copy of it. Two consequences to be aware of:
|
||||
# 1. `_0928` is a COINCIDENT duplicate of `sensing_surface` at identical coordinates. The
|
||||
# `EXCLUDE` collection has `exclude=False`, so it is not actually excluded from the view
|
||||
# layer, and the raycast hits the duplicate instead of the target. That rejects every
|
||||
# fragment and the region cameras return 0 — `texture-views` now fails loudly and names
|
||||
# the intercepting object rather than writing blank textures. `_0928` is hidden.
|
||||
# 2. The probe/render baseline (`build/probe/finger-xynova/r01/probe_frames.npz`) was built
|
||||
# from the 2508-vertex `sensing_surface_918_s`, while `sensing_surface` has 2584 vertices.
|
||||
# `tests/test_render.py::test_end_to_end_render_manifest` therefore fails on the vertex
|
||||
# count. That is a fixture/stale-baseline mismatch, not a texture bug: either regenerate
|
||||
# the probe frames for the current surface, or author the seam and the extra UV layouts
|
||||
# on whichever surface is canonical. `expected.*` below would have caught this and is
|
||||
# still read by nothing.
|
||||
texture_patch_views:
|
||||
enabled: true
|
||||
pattern_camera: cam_sensor # the pattern every layout carries, same source as `compute`
|
||||
pairs:
|
||||
- id: uv_1
|
||||
camera: cam_uv_1 # REGION camera
|
||||
uv_map: uv_1
|
||||
- id: uv_2
|
||||
camera: cam_uv_2
|
||||
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
|
||||
min_footprint_mm2: 2.0e-3
|
||||
min_triangle_coverage: 0.60
|
||||
max_hole_fraction: 0.02
|
||||
component_policy: best_coverage
|
||||
seam:
|
||||
boundary: use_seam
|
||||
pins: []
|
||||
# Empty band along the seam, to absorb two-pass registration error. Default total width is
|
||||
# 2 x alignment_tolerance_mm = 0.2 mm, half per file; `total_mm` overrides the derivation.
|
||||
gap:
|
||||
enabled: false # false = hard butt at the seam, no band at all
|
||||
apply: post_process # post_process = straight edge | geometry_trim = sawtooth
|
||||
treatment: no_print # the band carries nothing
|
||||
alignment_tolerance_mm: 0.1 # per-pass placement accuracy, mm
|
||||
print:
|
||||
base_fill: owned # white ground, clipped by the seam
|
||||
|
||||
# Post-generation printability inspection (`orisys-design inspect`). Advisory
|
||||
# only: it reports a verdict but never blocks generation or changes exit codes.
|
||||
# Millimetres are measured on the vector page declared above.
|
||||
|
||||
Reference in New Issue
Block a user