数値指標 (CoV / 勾配 / C/P) は分布のばらつきを集約する量であり,「形そのもの」は捕えない.本ドキュメントはシミュレーション結果と実機の 輝度マップ形状を画像で並べ,改善 Step ごとに形がどう変わったか/変わっていないかを追跡する.
関連:
均一性の数値指標(CoV,勾配 %,中心/周辺比)は 分布の集約値 であり,空間的なピーク位置・対称性・勾配方向 といった「形の特徴」を区別できない.例えば:
両者は 形が全く違うが,どちらも「C/P 比という数値」だけで議論すると同じ尺度上に並んでしまう.シミュレーションを実機に近づけるには数値だけでなく形の一致も必要.

生成スクリプト: scripts/build_luminance_evolution_panel.py.
Step 8-8 で導入した mean 揃え正規化 をパネル生成にも適用している.具体的には:
この表示方針により 「シミュが実機色域を逸脱している事実」が視覚的に直接見える.数値 (CoV / 勾配) だけでは伝わらない「分布の広がりの違い」と「形(ピーク位置・対称性)の違い」が同時に確認できる.
実機 vs シミュ全 Step を並べて見て判明したこと:
| パネル | 形の特徴 | 共有 colorbar での見え方 |
|---|---|---|
| 実機 (TARGET) | ROI 中央〜下に明るい楕円状の大きな領域.左右にほぼ対称.カメラ系の異方性(光学系の周辺減光 + ISP LSC 補正残差)に支配される典型パターン | 全体が中間色(実機色域内)でグラデーション.CoV=0.0426 の穏やかな分布 |
| Step 8-1 (出発点,linear + mean 正規化) | ROI 下端のみ明るく,上端に向かって単調に減衰する Y 軸単調勾配.LED 配置の物理的事実(下・左・右の 3 基板 U 字型配置で上対応の基板なし)を素直に反映 | 下端は白く完全飽和,上端は黒く振り切れ.実機色域に収まらない急峻な勾配.CoV=0.1826 |
| Step 8-3 (OETF 適用後,sRGB) | 数値指標は半減(CoV 0.183 → 0.089)したが,輝度マップの形は出発点と区別がつかない.OETF はピクセル値の単調変換で相対順序を変えないため形は構造的に不変 | Step 8-1 と全く同じ形.CoV だけが半減(OETF の非線形圧縮で分布が縮む)が,飽和パターンは継続 |
| Step 8-7 (発光面 size 1.5×1.5,linear + mean 正規化) | 絶対値スケールは 2.83× 上昇したが,形は出発点と同じ Y 軸単調勾配.形状指標がほぼ不変だったことと整合 | Step 8-1 と区別不能の形.mean 正規化で表示スケールが完全に揃う |
| Step 8-9 (LED 位置を Fusion STL から正確化,linear + mean 正規化) | LED 位置を「3+ギャップ+3」の実機配置に直したが,形は依然として Y 軸単調勾配.数値指標 CoV/勾配/C/P も 1% 以内の微変化 | Step 8-1 と区別不能の形.LED 位置の数 mm 誤差は多重反射で平滑化される |
| Step 8-10 (LED 配光を spot emitter で表現,cutoff=90/beam=30) | 数値指標は悪化(CoV +4%, 勾配 +15%, C/P +5%)が,目視で下端の明るい領域が中央寄りに集中.X 方向の対称性が部分的に改善.Y 方向の偏りは不変 | 他の 4 シミュは下端が X 全幅で明るいが,spot は下中央のみが集中して明るい.左右端はやや暗く,実機の中央ピーク楕円の X 方向成分に部分的に符号一致 |
| Step 8-11 (データシート従順版,cos^1.2 相当 spot + R=0.89) | spot 集中度を上げる (FWHM 112°) + 反射率を 0.89 に.Step 8-10 と 8-9 の中間の数値.形は依然 Y 軸単調勾配で 8-10 の X 方向効果は cos^1.2 と反射率上昇が打ち消し合いやや緩和 | Step 8-10 と類似の形だが集中度がわずかに緩和.データシート従順度を上げても形は変わらないことを確定 |
Step 8-3 OETF は「指標数値の符号化ドメイン不一致」を解消したのみで,シミュの形は実機の形に近づいていない.OETF は単調変換であり,ピクセル間の相対順序を保つため形は不変.
| Step | 種別 | 形への影響 |
|---|---|---|
| 8-1 spp 校正 | MC ノイズ低減(線形平均化) | 形不変 |
| 8-2 反射率スイープ | 線形ゲイン + 一様な多重反射スケール | 形ほぼ不変 |
| 8-3 OETF 順方向適用 | 単調変換(非線形だが順序保存) | 形不変 |
| 8-4 max_depth 検証 | 多重反射の打ち切り位置(一様寄与) | 形ほぼ不変 |
| 8-5 3D 可視化改善 | 表示側の変更(物理計算には不介入) | 形不変 |
| 8-6 LED 物性確定 | 線形ゲイン(radiance 値の校正) | 形不変 |
| 8-7 発光面サイズ検証 | 局所幾何との縮退(絶対値変化)+ 点光源近似 | 形不変 |
| 8-8 linear mean 正規化 | 表示用の線形ゲイン(指標は不変) | 形不変 |
| 8-9 LED 位置の Fusion STL 反映 | LED 数 mm 移動,多重反射で平滑化 | 形不変 |
| 8-10 LED 配光を spot emitter | LED 中央集中型配光で X 方向の対称性に変化 | X 方向の対称性が部分改善(Y 方向は不変) |
| 8-11 データシート従順版 (cos^1.2 spot + R=0.89) | spot 集中度上昇 + 反射率上昇の打ち消し合い | 形は不変(8-10 と類似),数値指標は 8-10 と 8-9 の中間 |
8-10 / 8-11 で 「形を変える可能性のある変更」は LED 指向性 (spot config) のみ であり,これは数値指標を悪化させたが目視で X 方向の対称性向上を確認.Step 8-11 でデータシート従順度を上げても形は構造的に変わらない.依然として Y 方向の中央ピークは LSC モデル化が必要.
実機の輝度マップ形状(中央付近にピークを持つ楕円状)は,
実機の形 = シミュの Y 軸勾配(LED 配置由来) + カメラ系の動径補正(LSC 残差)
として説明可能.シミュ側にこの 動径補正 を加えない限り,形を実機に合わせることはできない.
mean 揃え + 共有 colorbar 表示により判明したこと: シミュ vs 実機は 形(ピーク位置・対称性)が違う だけでなく 分布の広がり(CoV)も違う(実機 0.0426 vs シミュ 0.18+ 系で約 4.3×).LSC モデル化はこの両方を同時に縮める可能性があるが,どちらが先に解消するかは実装してみないと分からない.
Step 8-12 で perspective sensor + scalar_rgb + spp=4096 で path と ptracer を直接比較.bot/top 比が path 2.035 vs ptracer 2.006 で誤差 1.4% で一致 = Helmholtz 相反原理が Mitsuba 上でも「形について」実証された.
絶対値は Mitsuba 実装の正規化差で 1.99× 違うが,形(空間パターン)は同じ.これにより**「光線追跡の方向を変えれば形が変わるかも」という直感が物理的にも実装的にも成立しないこと**が確定し,LSC モデル化が唯一の道であることが強化された.
TEST_01 Step 8-N 候補(LSC 順方向モデル) は,単に「指標残差 1.6〜1.9× を縮める」だけでなく,「シミュの空間勾配パターンに動径補正を重ね,実機の中央ピーク形状を作る」根本的な構造的改善 である.
LSC は ROI 中心からの距離に依存する動径ゲインで,
→ 以後の改善判断はこの 2 軸(数値 + 形)で行う.数値残差だけ追っていると「形は変わっていない」改善で満足してしまう恐れがある.
uv run python scripts/build_luminance_evolution_panel.py
出力先: docs/06_TEST/figures/luminance_map_evolution.png(.gitignore 対象.再生成可能)
luminance.npy)から 生輝度配列 を読み込みconfigs/eval_real.yaml の roi 設定)configs/eval_baseline.yaml の roi 設定)apply_mean_anchor) で mean=146.7146 に統一hot cmap + 同一 vmin/vmax で描画scripts/build_luminance_evolution_panel.py の PANELS リストに 1 エントリ追加するだけで自動でパネルに並ぶ:
PANELS = [
# 既存エントリ ...
{
"loader": _load_sim_linear, # or _load_sim_oetf / _load_real
"args": (ROOT / "output" / "<new_step_dir>" / "luminance.npy",),
"title": "Step 8-N: <description>",
"subtitle": "<scene/eval setting>",
},
]
追加後はパネルを再生成し,本ドキュメントの「観察された事実」表に 1 行追加する.
figures/luminance_map.png)の規約scripts/build_luminance_evolution_panel.pydocs/06_TEST/figures/luminance_map_evolution.png(.gitignore 対象)