pc_lod_chain — 3D resolution op

• Datenarten: points → table

• Aufruf: import fullseye as fs; fs.ledger.pc_lod_chain(points, spacing, levels=3, seed=0) (die Implementierung direkt: import meshres; meshres.pc_lod_chain(points, spacing, levels=3, seed=0); aus dem Register: ops3d.get("pc_lod_chain"))

Verwendung

Poisson-Disk-Stufen mit sich verdoppelnden Abständen (table).

Level 0 ist die Eingabe; in Level *k* liegen keine zwei Punkte näher beieinander als spacing × 2^(k−1). Gibt levels (Liste von Wolken), spacings, counts zurück.

Ablauf: Level 0 = die eingegebene Punktwolke (eine validierte float64-Kopie). Level k (1..levels) ist das unmittelbar vorhergehende Level, auf das pc_poisson_disk(prev, spacing * 2**(k-1), seed=seed + k - 1) angewendet wird (das Ausdünnen ist kumulativ, daher sind die Punkte eines groben Levels stets auch in den feineren Levels enthalten = verschachtelt). Punkte werden nicht verschoben (keine Schwerpunktverschiebung wie bei Gittermittelung).

Argumente: points (N, 3) (endlich, höchstens MAX_POINTS), spacing > 0 (minimaler Punktabstand von Level 1, in derselben Einheit wie die Koordinaten), levels eine ganze Zahl 1..16, seed der Zufallsstartwert für die Besuchsreihenfolge des Poisson-disk (deterministisch, wenn fest).

Rückgabewert (dict): levels (Liste von levels + 1 Arrays der Form (n_k, 3)), spacings ([0.0, spacing, 2*spacing, ...]; 0 für Level 0), counts (Punktanzahl je Level), n_levels (levels + 1).

Validierung (ValueError): falsche Form, nicht endlich oder zu viele Punkte / spacing nicht positiv / levels keine ganze Zahl oder außerhalb des Bereichs.

Hinweis: Die Punktanzahl jedes Levels sinkt als Faustregel ~ Fläche / spacing_k^2 jeweils auf 1/4 (Faktor 4), aber dünn besetzte Bereiche (ursprünglicher Punktabstand größer als spacing_k) werden nicht ausgedünnt und bleiben. Was entfernt wurde, zählt pc_thinning_report(points, levels[k]). Für Mesh-LOD siehe mesh_lod_chain.

Hintergrundwissen (Physik und Konventionen hinter diesem Operator)

• depth_sensors — Tiefensensoren — Messprinzipien, Werte realer Geräte, wie Messlücken entstehen

Referenzen (Beispieldaten, Literatur)

• Katalog der Beispieldaten (Download-URLs / Lizenzen) — 2-D nutzt skimage.data (BSD/Public Domain) plus synthetische Bilder, 3-D nennt Download-URLs echter Datenquellen (Stanford, PDS, …).

• Herkunft und Literatur der Operatoren — die Quellen der Forschung/Verfahren, auf denen diese Operatorfamilie beruht.

Ausführbare Beispiele (verifizierte Samples, die diesen Operator wirklich aufrufen)

• mesh_resolution_demo — py -3.11 examples_3d/mesh_resolution_demo.py

Typkompatible Folge-Operatoren (nehmen table als Eingabe)

fuse_to_voxel · mesh_select_lod

Gleiche Kategorie (resolution)

mesh_edge_stats · mesh_detail_map · mesh_split_long_edges · mesh_isotropic_remesh · mesh_sample_points · mesh_lod_chain · mesh_select_lod · mesh_reduction_report


*Provenance: meshres.py — 3D Operator-Registry. Diese Notiz wird von tools/opdocs.py md erzeugt (nicht von Hand bearbeiten).*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.