poisson_lite — 3D reconstruct op

• Datenarten: points → mesh

• Aufruf: import fullseye as fs; fs.ledger.poisson_lite(points, size=64, sigma=1.0, iso=0.5, normals=None) (die Implementierung direkt: import recon3d; recon3d.poisson_lite(points, size=64, sigma=1.0, iso=0.5, normals=None); aus dem Register: ops3d.get("poisson_lite"))

Verwendung

Punktmenge (N,3) → ein Oberflächennetz (vertices(V,3), faces(F,3)) — eine leichtgewichtige Screened-Poisson-Näherung.

Splattet die Punktwolke in ein size³-Voxelgitter, baut ein Isoflächenfeld und erzeugt daraus mit marching cubes ein Dreiecks-Mesh. Die Ausgabe-Vertices liegen in denselben Weltkoordinaten wie die Eingabe-Punktwolke (inverse Abbildung aus der bbox). bounds ist die bbox der Punktwolke (+ σ-abhängiges padding).

2 Modi:

• normals is None: Die Belegung (occupancy) wird gaußgeglättet und auf [0,1] normiert, das Innere des bei iso binarisierten Oberflächenbands mit binary_fill_holes gefüllt, erneut geglättet und eine einzelne Außenschale bei iso extrahiert. Ein Belegungsfeld (unsigned) ist innen/außen symmetrisch, daher verläuft die Isofläche einer geglätteten dünnen Schale an 2 Stellen, der inneren und der äußeren Flanke, und wird zur konzentrischen Doppelschale. Durch das Füllen des Inneren wird die Innen/Außen-Symmetrie gebrochen, sodass aus geschlossenen Oberflächenproben (sofern relativ zu Gitter / σ dicht genug) eine einzelne Schale entsteht. Offene Flächen werden nicht gefüllt und bleiben dünne Flächen. Sind die Punkte zu dünn / ist σ klein, kann die Füllung durch Lücken auslaufen und zur Doppelschale entarten (für eine exakte Innen/Außen-Entscheidung normals angeben).

• normals angegeben: Aus der winding number der orientierten Punkte wird ein Innen/Außen-Indikatorfeld gebaut, gaußgeglättet und die Oberfläche bei iso (Standard 0.5) extrahiert. Auch mit reinen Oberflächenproben wird das Innere gefüllt und eine geschlossene Fläche erhalten.

Parameters

points : array_like (N,3)

Eingabe-Punktwolke.

size : int

Seitenlänge des Voxelgitters (Standard 64). Größer ist feiner, aber O(size³).

sigma : float

Standardabweichung der Gauß-Glättung (in Voxeln, Standard 1.0). Ein padding von ⌈3σ⌉+2 Voxeln wird automatisch reserviert.

iso : float

Isoflächenniveau. Ein Wert auf dem normierten Feld [0,1] (Standard 0.5).

normals : array_like (N,3) or None

Punktnormalen. Wenn angegeben, winding-number-Modus; bei None Belegungsmodus.

Returns

vertices : numpy.ndarray (V,3) float64

Vertices in Weltkoordinaten.

faces : numpy.ndarray (F,3) int64

Vertex-Indizes der Dreiecke (beziehen sich auf vertices).

Raises

ValueError

Zu wenige Punkte (<4), size zu klein, Belegungs- / Indikatorfeld zu dünn, sodass iso außerhalb des Wertebereichs liegt, usw.

Hintergrundwissen (Physik und Konventionen hinter diesem Operator)

• blender_interop — Zusammen mit Blender — Form bauen, mit fullseye messen (Fallstricke: Achsen, Einheiten, Referenzdaten)

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)

• poisson_surface_recon — py -3.11 examples_3d/poisson_surface_recon.py

Typkompatible Folge-Operatoren (nehmen mesh als Eingabe)

mesh_to_voxel · mesh_to_points · to_points · fuse_to_voxel · ambient_occlusion · cast_shadow · supersample_mesh · render_beauty

Gleiche Kategorie (reconstruct)

alpha_shape_mesh · alpha_shape_boundary · estimate_alpha


*Provenance: recon3d.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.