fullseye

scene_material — OPTICS scene op

使い方

材質を 1 つ作る。kind は lambert / conductor / dielectric の 3 種。

3 種しか無いのは混ぜると黙って間違うからで、増やすなら型を分ける (拡散か・金属か・透明か で光線の行き先が根本的に変わる)。

lambert: albedo(スカラまたは RGB 3 要素)だけを使う完全拡散。 conductor: metal(glassmirror.METALS)の複素屈折率で色が決まり、 finish(metalfinish.FINISHES)で異方性ローブの幅が決まる。色は指定しないroughness_um は面粗さ Rq [µm]。鏡面として返る割合が exp(-(4πσcosθ/λ)²) で決まる(Davies 1954 / Bennett-Porteus 1961)ので、 鏡面(0.01 = 研磨)か拡散寄り(1.0 = 梨地)かはこの 1 つで決まる。 波長が式に入るので、同じ面でも光源の波長で見え方が変わる。 dielectric: glass(raytrace.glass_catalog())の Sellmeier 分散で屈折し、 sigma_per_mm の Beer–Lambert で吸収する。

返り値: 上記を検証済みで格納した dict(他の scene_* op にそのまま渡す)。

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

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

詳しい使い方ガイド

背景知識ガイド(この op の手前にある物理・規約)

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

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

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

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

同カテゴリ(scene)

scene_plane · scene_sphere · scene_box · scene_cylinder · surface_defect · surface_finish · random_defects · scene_difference


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

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