fullseye

transport_matrix_radiosity — OPTICS light_transport op

使い方

Light-transport matrix of a Lambertian concave cross-section: radiosity B = T E with T = (I − diag(ρ)F)^-1 diag(ρ).

The radiosity equation B = ρ E + ρ F B (E = irradiance from the projector, F from :func:form_factors_2d) is solved for the matrix that maps any irradiance pattern to the radiosity the camera sees. The direct part is diag(ρ); everything else is global (interreflection).

albedo is a scalar or one value per patch, each in [0, 1). n_bounces None solves exactly; an integer k >= 0 returns the Neumann partial sum Σ_{m<=k} (diag(ρ)F)^m diag(ρ) — light that has bounced at most k times between patches (0 = direct only).

Returns a dict (a table) with kind = "lt_transport", transport (P, P), direct (P,) = the diagonal direct part ρ, albedo, form_factors, opening_form_factors (P,), n_bounces, gain_bound = max_i ρ_i Σ_j F_ij (< 1, bounds the Neumann series) and the profile.

Raises ValueError: not a groove_profile table; an albedo outside [0, 1), non-finite, or of the wrong length; n_bounces not None or an integer in [0, 10000].

ファミリ共通の入力契約(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

同カテゴリ(light_transport)

groove_profile · form_factors_2d · high_frequency_patterns · render_transport · separate_direct_global · fringe_multipath_phase_error · predict_fringe_phase_error · micro_phase_decode


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

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