mesh_process op• Data kinds: mesh → normals
• Call: import fullseye as fs; fs.ledger.vertex_normals(mesh) -> 'np.ndarray' (implementation को सीधे call करना हो तो import mesh_props; mesh_props.vertex_normals(mesh) -> 'np.ndarray', registry से लेना हो तो ops3d.get("vertex_normals"))
triangle mesh के vertex normals (area weights के साथ समेटे गए unit normals)। → (N,3)।
हर triangle के cross-product vector (= face normal × 2·area) को उसके 3 vertices पर scatter-add किया जाता है, फिर हर vertex पर normalise किया जाता है। इससे area-weighted average बनता है जिसमें बड़े (अधिक महत्वपूर्ण) faces का योगदान अधिक होता है, और दिशा faces के winding order से एकरूप रहती है। normals_orient.estimate_normals (point cloud PCA, sign अनिश्चित) के विपरीत, दिशा तय करने का कोई अतिरिक्त चरण ज़रूरी नहीं।
Args:
mesh: (vertices (N,3), faces (M,3)) का tuple।
Returns:
(N,3) के unit vertex normals।
Raises:
ValueError: shape अमान्य, index सीमा से बाहर, या ऐसा vertex हो जिसका normal परिभाषित न हो सके (कोई incident face नहीं /
योगदान एक-दूसरे को काटकर शून्य) तब।
• blender_interop — Blender के साथ उपयोग — shape बनाएँ, fullseye से मापें (सावधानियाँ: axes, units, ground truth)
• 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 के स्रोत।
• mesh_props — py -3.11 examples_3d/mesh_props.py
normals को input के रूप में लेते हैं)icp_point2plane · compute_fpfh · shot_descriptor · fuse_to_voxel · reflect · refract · normal_consistency · ransac_cylinder
mesh_process)laplacian_smooth · taubin_smooth · decimate_qem · face_normals · mesh_area · vertex_curvature · face_areas · mesh_volume
*Provenance: mesh_props.py — 3D operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.