sdf_csg op• Datenarten: sdf × sdf → sdf
• Aufruf: import fullseye as fs; fs.ledger.sdf_intersect(a, b) (die Implementierung direkt: import sdf_ops; sdf_ops.sdf_intersect(a, b); aus dem Register: ops3d.get("sdf_intersect"))
• GPU: nein (nur CPU-Referenzimplementierung)
Der Schnitt zweier SDFs, A∩B = das elementweise max(a, b) (innen nur, wo beide innen sind).
Die Null-Isofläche ist der gemeinsame Teil beider Grenzen. Sowohl innerhalb als auch außerhalb gelten im Allgemeinen keine strengen SDFs, es können jedoch geringere Entfernungsgrenzen festgelegt werden.
Berechnung: „np.maximum(np.asarray(a, float64), np.asarray(b, float64))“. pro Element max, also liegt ein Punkt nur dann innerhalb (negativ) A∩B, wenn „a < 0“ und „b < 0“ ist. Die Form muss nur konsistent übertragen werden (wenn nicht, numpys „ValueError“). Es werden keine weiteren Tests durchgeführt. NaN wird propagiert, „±inf“ wird strikt propagiert („max(a, -inf) = a“).
Eingabe: Zwei SDFs, die im selben Raster ausgewertet wurden („sphere_sdf“ / „box_sdf“ / (wie die Ausgabe von „esdf“, inneres Negativ und äußeres Positiv). Die Entfernungseinheit ist dieselbe wie die Eingabe.
Rückgabe: ein float64 der Form nach der Übertragung. „<= 0“ ist die Besetzung von A∩B.
Achtung:
• Äußere Werte können kleiner sein als der wahre Abstand: Außerhalb des Schnittpunkts, wenn der Punkt außerhalb von A und außerhalb von B liegt Wenn „max(a, b)“ der Abstand „zur am weitesten entfernten Oberfläche“ ist, ist die Oberfläche von A∩B weiter entfernt. Es gibt Dinge (Untergrenze). Die Null-Isofläche ist exakt.
• Wenn kein gemeinsamer Teil vorhanden ist, sind alle Elemente positiv (Belegung 0) und es tritt kein Fehler auf.
• Wird zum „Schneiden“ von CSG verwendet, z. B. zum Schneiden einer Kugel mit einem Kasten oder zum Herstellen eines Prismas mit zwei Kasten. Das Subtrahieren von B von A ist „sdf_subtract“.
• 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.
• gear_metrology — py -3.11 examples_3d/gear_metrology.py
• render_beauty — py -3.11 examples_3d/render_beauty.py
• sdf_csg — py -3.11 examples_3d/sdf_csg.py
sdf als Eingabe)sdf_to_occupancy · fuse_to_voxel · integrate · extract_surface_points · query_distance · sdf_union · sdf_subtract · sdf_smooth_union
sdf_csg)grid_coords · sphere_sdf · box_sdf · plane_sdf · cylinder_sdf · torus_sdf · capsule_sdf · sdf_union
*Provenance: sdf_ops.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.