fullseye

trace_sensor_rays — OPTICS lensrender op

使い方

Trace rays from sensor points through exit-pupil points backwards to object space -> dict.

pixel_xy_mm (M, 2) are points (x, y) in the image plane (lens-frame axes, the image is inverted); pupil_xy_mm (K, 2) are points in the exit-pupil plane (default: 16 hexapolar samples of :func:exit_pupil_samples). All M x K pairs are traced through every surface from the last to the first (Snell’s law at wavelength_um with the dispersion of each medium, conics and aspheres, mirrors, the semi-diameters as apertures, total internal reflection); the sensor plane is the system’s image plane (or the paraxial image of an object at focus_mm) moved by defocus_mm along the light. The table has origin / direction (M, K, 3): where the ray leaves the first surface and its unit direction into the scene (NaN where lost), transmission (M, K) - 1 for a ray that gets out, or with fresnel=True the product of the unpolarised Fresnel transmittances of the refracting surfaces (no coating, no absorption), 0 for a lost ray - vignetted (M, K) (any loss: a semi-diameter, a miss, TIR), tir, geometry_mm2 (cos^2(theta) / d^2 of the pupil sample seen from the sensor point, the weight of the irradiance integral), z_sensor_mm, z_pupil_mm and wavelength_um. Reversibility is exact: a forward ray from raytrace.ray_bundle traced back from its image point through its exit-pupil point returns to its entrance point (tested to 1e-9 mm and 1e-12 in direction).

ファミリ共通の入力契約(fail-closed)

optics の全 op は入力を検証してから計算する(黙って通さない):

詳しい使い方ガイド

参考(サンプルデータ・文献)

実行できる例(この op を実際に呼ぶ検証済みサンプル)

型が繋がる次の op(table を入力に取れる)

abcd_matrix · wavefront_stats · sfr_from_edge · paraxial_trace · seidel_coefficients · spot_stats · tolerance_analysis · wavefront_from_opd

同カテゴリ(lensrender)

lens_scene · exit_pupil_samples · scene_radiance · render_scene_through_lens · bokeh_shape · render_ghost_overlay · render_compare_prescriptions


Provenance: lensrender.py — OPTICS operator registry. この per-op ノートは tools/opdocs.py md が自動生成(手編集しない)。

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