render op• Data kinds: mesh × vector → image2d
• Call: import fullseye as fs; fs.ledger.shadow_raycast(V, F, light, *, pose=None, intrinsics=None, width: 'int' = 256, height: 'int' = 256, angular_diameter_deg: 'float' = 0.0, samples: 'int' = 1, grid=None, bias=None) -> 'np.ndarray' (implementation को सीधे call करना हो तो import render_shadow; render_shadow.shadow_raycast(V, F, light, *, pose=None, intrinsics=None, width: 'int' = 256, height: 'int' = 256, angular_diameter_deg: 'float' = 0.0, samples: 'int' = 1, grid=None, bias=None) -> 'np.ndarray', registry से लेना हो तो ops3d.get("shadow_raycast"))
mesh पर सीधे rays डालकर sunlight visibility (H,W) ∈ [0,1] लौटाता है (shadow map का उपयोग नहीं)।
1=पूरी तरह रोशन / 0=पूरी तरह shadow। background pixels 1.0 होते हैं। light parallel light की दिशा है (scene→Sun)। angular_diameter_deg light source का apparent angular diameter है (Sun = 0.53°); 0 पर hard shadow, और positive होने पर उस angular radius की disc में samples दिशाएँ फैलाकर औसत लिया जाता है ―― penumbra की चौड़ाई "occluder तक की दूरी × tan(diameter/2)" की geometry के अनुसार ही होती है (asteroid scale पर कुछ cm = hard shadow)। जिन pixels का normal light से उल्टी ओर है (self-shadow) वे 0 होते हैं। bias वह मात्रा है जितना ray origin को normal की दिशा में उठाया जाता है (default = scene diagonal × 1e-5, self-intersection से बचने के लिए)। grid light space के 2-D grid की एक भुजा में cells की संख्या है (default None = faces की संख्या से auto_grid। result grid पर निर्भर नहीं करता, सिर्फ़ speed बदलती है)।
honest: intersection Möller-Trumbore (दोनों तरफ़) है, acceleration 2-D binning (सिर्फ़ parallel light के लिए; point light के लिए cast_shadow इस्तेमाल करें)। transparency, multiple reflection और रंगीन shadow संभाले नहीं जाते।
fail-closed: degenerate mesh, अमान्य light, non-positive size, negative angular diameter/sample संख्या पर ValueError।
• 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 के स्रोत।
• itokawa_regolith_hero — py -3.11 examples_3d/itokawa_regolith_hero.py
image2d को input के रूप में लेते हैं)fuse_to_voxel · fit_poly_surface · eval_poly_surface · surface_form_error · background_flatten · polar_unwrap · fit_zernike · matcap_shade
render)project_points · render_point_depth · render_volume_projection · render_shaded · ambient_occlusion · cast_shadow · phong_shade · matcap_shade
*Provenance: render_shadow.py — 3D operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.