mirror of
https://github.com/Matysh/houseplan-card
synced 2026-10-06 14:39:22 +00:00
perf(led): avoid redundant tube and barrier calculations
Preserve exact light fields while culling provably distant occluders, reusing physical tube paths across camera updates and excluding LED emitter data from aligned architectural fingerprints. Cover output equivalence, in-place invalidation, resize tags and hyphenated benchmark chunk hashes. Issue: #788 User-Visible: yes
This commit is contained in:
@@ -6,6 +6,9 @@
|
||||
slightly tilted contours, continuous light without cut-out wedges, and an
|
||||
equally soft falloff at both ends and the outside of sharp turns
|
||||
([#788](https://github.com/Matysh/houseplan-card/issues/788)).
|
||||
- Reduced redundant LED geometry work when moving the camera and computing
|
||||
strip lighting, without thinning the light sources or changing their falloff
|
||||
([#788](https://github.com/Matysh/houseplan-card/issues/788)).
|
||||
|
||||
## v1.79.0-beta.6 — 2026-10-03
|
||||
|
||||
|
||||
@@ -12,6 +12,9 @@
|
||||
координатами и небольшим наклоном, вырезы внутри свечения и резкие края
|
||||
вместо плавного затухания на концах и снаружи острых углов
|
||||
([#788](https://github.com/Matysh/houseplan-card/issues/788)).
|
||||
- Уменьшены повторные вычисления геометрии LED-лент при движении камеры и
|
||||
расчёте свечения — без прореживания источников света и изменения растушёвки
|
||||
([#788](https://github.com/Matysh/houseplan-card/issues/788)).
|
||||
|
||||
## v1.79.0-beta.6 — 2026-10-03
|
||||
|
||||
|
||||
@@ -159,6 +159,11 @@ invisible — the plan simply keeps lighting through a wall or closed door that
|
||||
now exists. Unrelated HA updates preserve the signature and hit the bounded
|
||||
barrier cache. The combined fingerprint, plus source position and radius, keys
|
||||
the per-source region cache (`_glowClipCache`).
|
||||
Top-level LED-strip source data is excluded from this architectural fingerprint:
|
||||
editing an emitter does not change masonry. The full card, static card and
|
||||
accepted resize artifacts use the same tag; every other raw field, scale and
|
||||
bound opening state retains its invalidation semantics. LED shape/radius keys
|
||||
still invalidate the strip's own field.
|
||||
|
||||
The masonry boolean receives room walls after passage cuts plus the cached
|
||||
joined independent body set. Its outer/hole rings are the authoritative
|
||||
@@ -480,6 +485,11 @@ only the geometry differs:
|
||||
diagnostic. The former 2500-fan acceptance bound depended on dropping
|
||||
required vertices/endpoints and was incompatible with the 50×50-point
|
||||
contract; compaction now reduces object/DOM overhead, not geometric detail.
|
||||
The physical tube/hit path is reused across camera updates with exact point,
|
||||
face-context and thickness invalidation; old frame/disconnect entries are
|
||||
evicted. Before exact emitter-circle clipping, a conservative strip-wide
|
||||
bounding box excludes only barriers that cannot reach any emitter disc.
|
||||
This broad phase preserves the exact visibility path strings and all sources.
|
||||
|
||||
`smoke_led_strip_field` compares rasterised production-field pixels with an
|
||||
independent distance/falloff oracle across three radii, both path directions
|
||||
|
||||
Reference in New Issue
Block a user