mesh_to_points — 3D transform op

• Data kinds: mesh → points

• Call: import fullseye as fs; fs.ledger.mesh_to_points(vertices, faces, samples=20000, seed=0) (implementation को सीधे call करना हो तो import match3d; match3d.mesh_to_points(vertices, faces, samples=20000, seed=0), registry से लेना हो तो ops3d.get("mesh_to_points"))

उपयोग

mesh (vertices + faces) → surface point cloud (area-weighted uniform sampling)। mesh→point cloud conversion।

प्रक्रिया: triangle tri = vertices[faces] के area 0.5·|(b−a)×(c−a)| को probability मानकर samples face replacement के साथ चुने जाते हैं, हर face पर u, v ~ U(0,1) लिया जाता है, और u + v > 1 हो तो उसे (1−u, 1−v) पर मोड़ दिया जाता है (uniform barycentric)। Point = a + u(b−a) + v(c−a)। seed से default_rng fixed होता है, इसलिए वही arguments देने पर वही point cloud मिलता है।

• vertices (V,3) float, faces (F,3) int (0 से शुरू होने वाले vertex index)।

• Return value (samples, 3) float64। Face की संख्या चाहे जो हो, ठीक samples points।

• सभी face degenerate हों (area का योग 0), तो probability NaN हो जाती है और rng.choice ValueError देता है।

• Normal साथ नहीं आते (estimate_point_normals से जोड़ें)। Area weighting के कारण बड़े face पर ज़्यादा points आते हैं,

और यह vertex density पर निर्भर नहीं करता।

आगे: points_to_voxel / icp_point2point_3d / match_pca।

संदर्भ (sample data, साहित्य)

• Sample data catalog (DL URL / license) — 2-D के लिए skimage.data (BSD/public) + synthetic, 3-D के लिए real data sources (Stanford/PDS आदि) के DL URL।

• Operators का स्रोत और संदर्भ — इस op family के मूल research/methods के स्रोत।

चलाए जा सकने वाले उदाहरण (verified samples जो सच में यह op call करते हैं)

• mesh_decimate — py -3.11 examples_3d/mesh_decimate.py

वे अगले ops जिनसे type जुड़ता है (points को input के रूप में लेते हैं)

points_to_voxel · gaussians_to_voxel · estimate_point_normals · to_points · match_points_ncc · match_pca · moment_axes · icp_point2point_3d

इसी category के (transform)

points_to_voxel · gaussians_to_voxel · mesh_to_voxel · depth_to_points · voxel_to_mips · voxel_to_mesh · tsdf_from_depth · signed_distance_field


*Provenance: match3d.py — 3D operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*

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