Home / Docs-Technical WhitePaper / 26-EFT.WP.STG.Lensing v1.0
Chapter 4 — View Geometry and Occlusion (LOS/NLOS/Shadowing)
One-sentence goal: Provide a unified geometric–measure formulation for LOS/NLOS decisions and the shadow region Shad, construct the visibility function vis and its weighting rules for graph kernels and energies, and ensure the spectral–variational dual forms are consistent and auditable.
I. Scope & Objects
- Inputs
- Graph & geometry: G = (V, E, w); node locations r_i ∈ R^d with unit(r_i) = "m", dim(r_i) = [L]; optional normals/elevations h_i.
- View domain & cameras/observers: view domain Ω_view, camera/observer set C = {c}, imaging intrinsics/extrinsics (if used) K_c, R_c, t_c.
- Occluders & terrain: B = { B_k } (polygonal meshes / voxels / DEM) or a distance field φ_occ(x).
- Time base & references: tau_mono, ts, RefCond = { frame, L_type, φ_occ.hash, Δℓ }.
- Outputs
- los(i, c) ∈ {0, 1}, vis_i(Ω) ∈ [0, 1], shadow set Shad(Ω); edge gates m_ij(Ω); updated W_vis(Ω) or m_{ij}(Ω).
- Dual-form gap delta_form_lens (spectral kernel vs. variational energy driven by geometric occlusion).
- Constraints & boundaries
- Support d ∈ { 2, 2.5, 3 }; LOS defined by line-/ray-vs-solid intersection; probabilistic visibility may average over time/camera sets.
- Excludes physical radiative transfer and tropospheric/ionospheric effects (see EFT.WP.Metrology.PathCorrection v1.0).
II. Terms & Variables
- View mapping & frusta: π_view: V → Ω_view, camera frustum FOV_c; visibility weights W_vis = diag( vis_i ) with unit(vis) = 1, dim(vis) = [1].
- Rays & paths: gamma_{i→c}: [0, L_{ic}] → R^d, t_hat = d gamma / d ell / | d gamma / d ell |, L_{ic} = ( ∫_{gamma} 1 d ell ).
- Occlusion indicator/density: χ_B(x) ∈ {0,1} or continuous occlusion density κ_occ(x) with unit(κ_occ) = "1/m", dim = [L^{-1}].
- Visibility & shadowing: los(i, c) = 1 if visible, else 0; T_vis(i, c) = exp( − ( ∫_{gamma_{i→c}} κ_occ d ell ) ); Shad(Ω) is the shadow region under light direction s_hat.
- Distances & metrics: Euclidean d_E and graph distance d_G; thresholds tol_LOS, tol_shadow.
- Time fields: offset/skew/J record compute–publish discrepancies (see …TimeBase v1.0).
III. Postulates P714-*
- P714-1 (Explicit measures): Any ray-based integral is written as ( ∫_{gamma_{i→c}(ell)} • d ell ); endpoints and the parameterization of gamma_{i→c} must be traceable.
- P714-2 (View-first policy): Check π_view(i) ∈ FOV_c before occlusion; otherwise set los(i, c) = 0.
- P714-3 (Occlusion monotonicity): If B1 ⊆ B2 then los_{B2}(i, c) ≤ los_{B1}(i, c); T_vis is monotonically non-increasing in κ_occ.
- P714-4 (Dual forms in parallel): Compute both the geometric–spectral form K_vis(L; Ω) and the variational form E^vis(x; Ω); record delta_form_lens.
- P714-5 (Unit consistency): check_dim( vis * x_in − x_in ) = "[same]"; mixing T_fil and T_trans is forbidden.
- P714-6 (Temporal consistency): For sliding windows win = { Δt_win, Δt_slide }, the time average of vis_i must declare its measure and weights.
IV. Minimal Equations S714-*
- S714-1 (LOS decision: hard occlusion)
los(i, c) = 1 iff ( ∫_{gamma_{i→c}} χ_B( x ) d ell ) = 0 and π_view(i) ∈ FOV_c; otherwise 0. - S714-2 (Soft occlusion / probabilistic visibility)
T_vis(i, c) = exp( − ( ∫_{gamma_{i→c}} κ_occ(x) d ell ) ),
vis_i(Ω) = ( ∑_{c∈Ω} w_c * T_vis(i, c) * 1_{ π_view(i) ∈ FOV_c } ) / ( ∑_{c∈Ω} w_c ). - S714-3 (Shadow domain projection)
Along the light ray γ_{x→light}: shadow(x) = 1 − exp( − ( ∫_{γ_{x→light}} κ_occ d ell ) );
Shad(Ω) = { x ∈ Ω_view | shadow(x) ≥ tol_shadow }. - S714-4 (Edge/kernel weighting rules)
- Node weights: W_vis = diag( vis_i );
- Edge gates: m_{ij}(Ω) = min( vis_i(Ω), vis_j(Ω) );
- Visibility Laplacian: L^vis = D(m) − A ⊙ m;
- Spectral kernels: K_vis = ( I + β L^vis )^{−1} or K_vis = exp( −τ L^vis ).
- S714-5 (Variational energy & equivalence)
E^vis(x; Ω) = (1/2) x^T L^vis x; in the quadratic case,
x' = K_vis x_in is equivalent to
x' = argmin_x ( (1/2) || x − x_in ||_2^2 + (β/2) x^T L^vis x ). - S714-6 (Dual-form gap & stability)
delta_form_lens = || x'_{spec} − x'_{var} ||_2, and ρ(K_vis) ≤ 1 holds for diffusion/Tikhonov kernels.
V. Metrology Pipeline M71-4 (Ready → Geometry → Visibility → Synthesis → Persist)
- Ready: unify coordinate frames (see EFT.WP.STG.Dynamics v1.0, §2); lock RefCond, Δℓ (ray step), and FOV_c.
- Occluder geometry: build φ_occ(x) from DEM/mesh/point-cloud or voxelize χ_B(x); compute φ_occ.hash / χ_B.hash.
- LOS computation: for each pair (i, c), frustum-cull → ray-march ( ∫_{gamma} • d ell ) for intersection to obtain los(i, c) or T_vis(i, c).
- Aggregation & smoothing: aggregate over cameras/time to get vis_i(Ω); optionally denoise vis via graph-based morphology (TV_G/heat) to remove speckle.
- Graph weighting synthesis: produce W_vis, m_{ij}, L^vis, and the spectral kernel K_vis; solve the variational form in parallel and record delta_form_lens.
- Checks & publication: evaluate coverage, jitter, ρ(K_vis), and residuals; persist results into manifest.lens.
VI. Contracts & Assertions C71-4x (suggested thresholds)
- C71-41 (Adequate step size): Δℓ ≤ min_thickness / 2 (half the thinnest occluder thickness).
- C71-42 (View coverage): coverage = ( |{ i | ∃ c, π_view(i) ∈ FOV_c }| / |V| ) ≥ 0.9 (task-tunable).
- C71-43 (Jitter control): within a window, jitter = median_i std_t( vis_i ) ≤ 0.05.
- C71-44 (Spectral stability): ρ(K_vis) ≤ 1 + ε (recommend ε ≤ 0.02).
- C71-45 (Dual-form gap): delta_form_lens ≤ tol_lens, default tol_lens = 1e−3 * || x_in ||_2.
- C71-46 (Units & dimensions): check_dim( vis * x_in − x_in ) = "[same]"; dim(κ_occ) = [L^{−1}] must be declared.
- C71-47 (Shadow consistency): when a light direction s_hat is enabled,
| Shad_{t+1} ⊖ Shad_t | / | Ω_view | ≤ 0.02 (in the absence of abrupt light changes).
VII. Implementation Bindings I71-4* (interfaces, I/O, invariants)
- build_occluder_field(DEM|mesh|pc, params) -> { χ_B | φ_occ }, meta
out: mesh/voxel/distance-field; meta = { hash, resolution, bounds }. - compute_frustums(C, intrinsics, extrinsics) -> { FOV_c }
inv: frustum boundaries are oriented and closed. - trace_los(r_i, c, χ_B|φ_occ, Δℓ) -> { los(i, c) | T_vis(i, c) }, metrics
metrics: step counts, hit rates, near/far clipping stats. - aggregate_visibility(los|T_vis, weights, win) -> vis_i(Ω)
- compose_visibility_graph(G, vis) -> { W_vis, m, L^vis, K_vis }
- solve_vis_variational(x_in, L^vis, β|τ, opts) -> x'_{var}, report
- eval_delta_form_lens(x'_{spec}, x'_{var}) -> delta_form_lens
- assert_visibility_contracts(ds, rules) -> report
- emit_lens_manifest(results, policy) -> manifest.lens
Invariants: Δℓ > 0; hash(*) is traceable; ρ(K_vis) and delta_form_lens are recorded; unit/dimension checks pass.
VIII. Cross-References
- Graph kernels & Chebyshev approximation: EFT.WP.STG.Dynamics v1.0, Chapter 4; stability & rigidity: Chapter 9.
- View mapping & probabilistic-visibility energies: EFT.WP.STG.Lensing v1.0, Chapter 2.
- LOS/NLOS scenarios & multipath: EFT.WP.Metrology.PathCorrection v1.0, Chapter 7.
- Eventized shadow-boundary changes & worldline fragments: EFT.WP.Particle.TopologyAtlas v1.0, Chapter 6.
IX. Quality & Risk Control
- SLI/SLO: track coverage, jitter, ρ(K_vis), delta_form_lens_p99, latency_p95, fp/fn_LOS (if labels exist).
- Fallbacks: if occlusion fields are missing → degrade to W_vis = I; if ρ(K_vis) exceeds limits → reduce β/τ or dilute m_{ij}; if jitter is high → increase temporal smoothing or refine Δℓ.
- Audit: retain evidence for building χ_B / φ_occ, step sizes and hit rates, the Shad sequence and its rate of change, contract pass rates, and anomalous samples.
Summary
- This chapter unifies LOS/NLOS/Shadowing via ray-measure formulations, derives visibility weights W_vis and edge gates m_{ij}, and aligns them with spectral kernels and variational energies.
- Minimal manifest.lens.* keys:
occluder.hash, frustums.*, Δℓ, W_vis.hash, m.hash, L^vis.hash, K_vis.meta, delta_form_lens, contracts.*, u/U, signature.
Copyright & License (CC BY 4.0)
Copyright: Unless otherwise noted, the copyright of “Energy Filament Theory” (text, charts, illustrations, symbols, and formulas) belongs to the author “Guanglin Tu”.
License: This work is licensed under the Creative Commons Attribution 4.0 International (CC BY 4.0). You may copy, redistribute, excerpt, adapt, and share for commercial or non‑commercial purposes with proper attribution.
Suggested attribution: Author: “Guanglin Tu”; Work: “Energy Filament Theory”; Source: energyfilament.org; License: CC BY 4.0.
First published: 2025-11-11|Current version:v5.1
License link:https://creativecommons.org/licenses/by/4.0/