optics op• Data kinds: vector × vector → vector
• Call: import fullseye as fs; fs.ledger.normal_from_reflection(incident, reflected) (implementation को सीधे call करना हो तो import match3d; match3d.normal_from_reflection(incident, reflected), registry से लेना हो तो ops3d.get("normal_from_reflection"))
incident + reflected से mirror surface का normal वापस निकालता है (deflectometry)। n ∝ (r − d), incident के विपरीत दिशा में।
ज्ञात pattern के reflection का अवलोकन → surface normal → integrate करके specular आकार। specular (reflective) वस्तुओं के आकार मापन का मूल।
incident (surface की ओर जाती incident दिशा) और reflected (surface से निकलती reflected दिशा) को unit करता है, और n = unit(r − d) का sign इस तरह तय करके कि n·d <= 0 (incidence के विरुद्ध = incident side पर बाहर की ओर) हो, लौटाता है (unit vector)। r == d हो तो zero vector। अंतिम axis को vector माना जाता है, इसलिए (N,3) batch भी चलता है (sign का निर्णय पूरे batch के dot product के योग से केवल 1 बार होता है)।
उपयोग: ज्ञात pattern की reflection image से हर pixel का normal बनाना (normal map), integrate_normals से height में integrate करना, render_shaded से रूप दोहराना, reflect से cross-check करना।
• 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 के स्रोत।
• sensor_seg — py -3.11 examples_3d/sensor_seg.py
vector को input के रूप में लेते हैं)fuse_to_voxel · reflect · refract · cast_shadow · shadow_raycast · carve_look_at · sample_surface
optics)reflect · refract · fresnel_reflectance · snell_angle
*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.