球ではなく立方体のキャビティを新設し,一辺 L を 120〜360mm の全 10 条件でスイープして,
球(TEST_15 の最良設計 similar_radial)と内面積で対応づけて比較した(2026-08-31〜09-01).
「球のほうが理想積分球だから有利」という素朴な予想は成り立たず,同じ内面積なら立方体が
一貫して球より均一(構造 CoV で球の 0.62〜0.89 倍,L=120 のみ互角)で,L=280 の時点で
球の全 10 条件の最良値を超えた.両指標とも L に対し厳密に単調改善で頭打ち未到達.
懸念だった「四隅の写り込み」は方位フーリエ m=4 成分で直接定量し,
検出限界(系統誤差床 ±0.1%)レベルでほぼゼロであることを確認した.
関連:
TEST_15 の結論は「効き目の序列は 板直下の喉 > 接合の相似・G2 化 > 球半径そのもの」だった. つまり律速はキャビティの大域形状ではなく,評価板まわりの局所幾何である.ここから仮説を立てた.
立方体にはロフトも接合も存在しない. 評価板は矩形,立方体の上面も矩形なので,板は上面の
開口にそのまま嵌まる.TEST_15 で苦労した「矩形→円の遷移」「接合の曲率不連続」「板直下の喉」と
いう問題群が構造的に消える.しかも立方体の上面は板の縁から外へ広がる水平な天井そのもので,
TEST_15 最良の「リム水平出し」(similar_radial)が目指した形と一致する.
一方で立方体は「ランバート光源を壁に置くと壁面照度が一様になる」という球だけが持つ性質を失う. どちらが勝つかは実際に回さないと分からない——これが実験の主眼である.製作面でも立方体は 3D プリント・組立が容易なはずで,実機化の観点でも意味がある.
材質・センサ・レンダ設定・LED の面積と radiance・評価板の位置は TEST_15 から一切変更していない. 変えたのは筐体メッシュ(球ロフト → 立方体)と,それに従属する LED の Z・バッフル径だけである.
| 項目 | 値 |
|---|---|
| レンダ | spp=1024 / max_depth=16 / 512² / llvm_ad_rgb / path / orthographic (50×52) |
| 内壁材質 | blendbsdf ρ=0.85 / ω=0.05 / α=0.1(TEST_11〜15 と直接比較するため校正値 ρ≈0.81 は不使用) |
| 光源 | 円板 半径 1.7662mm(面積 9.8mm² 保存)・board_baffle 構成(底面中心に密着・評価板向き +Z) |
| バッフル | LED の 10mm 手前・板の全点から LED を隠す最小半径 ×1.05・厚み 1mm(TEST_15 と同じ閉形式) |
| 評価 | configs/eval_baseline_dng_target_shape.yaml(linear + mean アンカー 207.82) |
| 評価板 | 99×102mm・キャビティ側の面は z=−4.5mm・全条件で不変 |
scripts/generate_cube_housing.py で閉ソリッドをスクリプト生成する.上から順に,
天井 z=0 と板照明面 z=−4.5 の間の 4.5mm の窪みは球スイープと同一条件で残した(交絡なし). 球版と違い全ての面が平面なので三角形分割は物理(法線・交差)に影響しない.周方向サンプルは 半ステップずらしてメッシュエッジが XZ / YZ 対称面に乗らないようにし(TEST_15 のすり抜け対策), 矩形の隅には厳密角の頂点を挿入して面取りを防いだ.外面の天板は z=+3 に持ち上げ,内面天井との 共面(ゼロ厚)を避けている.
L の下限は 102mm(評価板 99×102mm が上面に収まる限界).天井余白を考慮し 120mm から振った. 実行は段階的で,まず傾向を安く見るため両端+中間の 5 条件(120/160/200/280/360), 傾向が確認できた後に残り 4 条件(140/180/240/320),さらに発表資料の整理時に 球スイープと同数(10 条件)に揃える 10 条件目として L=220 を追加した(いずれもユーザー指示).
| L mm | LED_z | 内面積 mm² | 開口比 | バッフル R |
|---|---|---|---|---|
| 120 | −119.5 | 86,994 | 11.61% | 8.18mm |
| 140 | −139.5 | 118,194 | 8.54% | 7.24mm |
| 160 | −159.5 | 154,194 | 6.55% | 6.55mm |
| 180 | −179.5 | 194,994 | 5.18% | 6.01mm |
| 200 | −199.5 | 240,594 | 4.20% | 5.59mm |
| 220 | −219.5 | 290,994 | 3.47% | 5.24mm |
| 240 | −239.5 | 346,194 | 2.92% | 4.95mm |
| 280 | −279.5 | 470,994 | 2.14% | 4.50mm |
| 320 | −319.5 | 614,994 | 1.64% | 4.16mm |
| 360 | −359.5 | 778,194 | 1.30% | 3.90mm |
レンダラのバージョンについて: 先行 5 条件は mitsuba 3.8.0,後続 5 条件(140/180/220/240/320)は 3.7.1 で
レンダしている.2 段階目の直前に Windows Smart App Control が 3.8.0 同梱の
IlmThread-mitsuba.dll 1 個をレピュテーション判定でブロックし始め(vtk 9.6.1 と同型=
TEST_13 検査 8.ファイルは 2 週間無変更のまま
クラウド側の判定だけが反転),mitsuba が import 不能になったため 3.7.1 に固定した
(pyproject.toml に理由コメント).混在の妥当性は 2 通りで検証した.全テスト
(絶対放射量の解析解検証込み)1043 件が 3.7.1 で全通過,および L=120 のアンカー再レンダで
3.8.0 と比較して構造 CoV が小数 4 桁まで一致(0.0379)・輪帯 min/max 差 +0.0002・
輪帯プロファイルの最大差 1.17σ(中央値 0.46σ)=統計的に区別不能.
レンダ前に TEST_13 / TEST_15 で常設した検証を一通り当てた.
audit_scene_normals で裏向き面 0・シェーディング法線逸脱 ≤0.06°(L=120 / 360 の 2 条件)球と立方体の比較では「同じ大きさ」の定義が自明でない.多重反射の理論では放射輝度は総内面積と 開口比で決まるため,内面積を揃える解釈を採用した(積分球としての比較).スイープ自体は キリの良い L で振り,比較は内面積を横軸にした曲線の重ね描き+対数内挿で行う. なお内面積を揃えると立方体は球より深さが約 3 割浅い(球は中心が板から −0.92r 下にあるため 縦に長い.例: 球 r=250 は深さ 480mm,同内面積の立方体は 341mm).
立方体化しても輝度分布は球と同じ同心円状のドームで,四角い模様は現れない. 極座標分解では L=120 で動径分散 118 に対し方位分散 5.96(angular_ratio 0.048)=構造の 95% 以上が同心円成分で,球(r=88 で 116 vs 4.0)と同じ内訳である.
理由は 3 つ.① board_baffle 構成の一次照射(バッフル裏 → 床の明るいリング)が軸対称で,
板の照度は cos 重みで真下方向が支配するため,1 バウンス目の分布が筐体形状によらず軸対称になる.
② ρ=0.85 の多重拡散反射が 2 バウンス目以降の放射を等方化し,壁の形の情報を洗い流す.
③ 仮に板縁基準の成分があっても,その等高線が四角く見えるのは四隅の近傍だけである.
これは TEST_15 の「効くのは板直下の局所幾何であって大域形状ではない」の裏返しの確認であり, 輪帯(方位平均)プロファイルによる比較が立方体に対しても正当であることを意味する.
立方体 10 条件の実測(構造 CoV / 輪帯 min/max は TEST_15 と同一の定義・スクリプトで算出):
| L mm | 生 CoV | 構造 CoV | 輪帯 min/max | 中心/周辺比 | 勾配 | 生 mean |
|---|---|---|---|---|---|---|
| 120 | 0.0802 | 0.0379 | 0.858 | 1.105 | 9.49% | 1.336 |
| 140 | 0.0831 | 0.0280 | 0.894 | 1.078 | 7.20% | 1.022 |
| 160 | 0.0842 | 0.0220 | 0.919 | 1.060 | 5.68% | 0.801 |
| 180 | 0.0916 | 0.0184 | 0.930 | 1.050 | 4.74% | 0.643 |
| 200 | 0.0939 | 0.0163 | 0.934 | 1.044 | 4.19% | 0.525 |
| 220 | 0.1026 | 0.0147 | 0.944 | 1.039 | 3.78% | 0.437 |
| 240 | 0.1077 | 0.0135 | 0.945 | 1.035 | 3.41% | 0.368 |
| 280 | 0.1143 | 0.0109 | 0.960 | 1.026 | 2.55% | 0.272 |
| 320 | 0.1296 | 0.0098 | 0.961 | 1.022 | 2.13% | 0.209 |
| 360 | 0.1355 | 0.0090 | 0.964 | 1.018 | 1.76% | 0.165 |
構造 CoV・輪帯 min/max・中心/周辺比・勾配のいずれも L に対して厳密に単調改善で,
10 本の輪帯プロファイルは交差せずサイズ順に並ぶ(球 similar_radial と同じ素直な効き方).
生 CoV が L とともに増えるのは輝度低下(おおむね 1/面積)による MC ノイズで,TEST_15 の作法
どおり構造成分で比較する.内面積を横軸に球 similar_radial(10 条件)と重ね,対数内挿で
同一面積の値を比べると:
| L mm | 構造 CoV 立方体 | 球(内挿) | 比 | 輪帯 min/max 立方体 | 球(内挿) |
|---|---|---|---|---|---|
| 120 | 0.0379 | 0.0359 | 1.05 | 0.858 | 0.853 |
| 140 | 0.0280 | 0.0313 | 0.89 | 0.894 | 0.873 |
| 160 | 0.0220 | 0.0271 | 0.81 | 0.919 | 0.891 |
| 180 | 0.0184 | 0.0240 | 0.77 | 0.930 | 0.901 |
| 200 | 0.0163 | 0.0217 | 0.75 | 0.934 | 0.916 |
| 220 | 0.0147 | 0.0201 | 0.73 | 0.944 | 0.920 |
| 240 | 0.0135 | 0.0189 | 0.72 | 0.945 | 0.921 |
| 280 | 0.0109 | 0.0166 | 0.66 | 0.960 | 0.939 |
| 320 | 0.0098 | 0.0152 | 0.65 | 0.961 | 0.944 |
| 360 | 0.0090 | 0.0145 | 0.62 | 0.964 | 0.947 |
similar_radial と同じ傾向)つまり ムラの「形」は球と同じで,「量」(ドームの深さ)が 2〜4 割浅い.TEST_15 で球側に 施した改良(喉の除去・リム水平出し)は,立方体では最初から構造的に備わっている形であり, それを上回った事実は「球固有の等照度性より,板まわりの局所幾何の素直さが効く」ことを示す.
立方体固有の懸念「四隅が暗くなる」を,輪帯ごとの方位プロファイルの **cos 4φ 成分(m=4)**で
直接定量した(scripts/analyze_fourfold_component.py).四回対称の構造は対称性から m=4 にしか
現れず,板は鏡映対称なので信号は板軸に揃った符号付き係数 a4(正=四隅が暗い)だけに出る.
直交成分 b4 は対称性からゼロのはずで,生きたノイズ対照になる.球側の a4 は評価系
(長方形 ROI・楕円ビン・ノイズ)が作る背景値を与える.
| ペア(同内面積) | 立方体 a4 | 球 a4 | 差 |
|---|---|---|---|
| L=120 vs r=88 | −0.264±0.027% | −0.031% | −0.233% |
| L=140 vs r=100 | −0.212±0.030% | +0.020% | −0.231% |
| L=160 vs r=110 | −0.058% | −0.032% | −0.026% |
| L=180 vs r=135 | −0.074% | +0.012% | −0.086% |
| L=200 vs r=150 | +0.017% | −0.037% | +0.054% |
| L=220 vs r=150 | −0.004% | −0.037% | +0.033% |
| L=240 vs r=170 | −0.082% | −0.049% | −0.033% |
| L=280 vs r=200 | +0.105% | −0.073% | +0.177% |
| L=320 vs r=250 | −0.037% | −0.020% | −0.017% |
| L=360 vs r=250 | −0.144% | −0.020% | −0.124% |
結論: 立方体化による四回対称ムラは ±0.1%(系統誤差床)〜最大 0.26% で,角のフィレット等の 対策は不要.小型化の下限を決める要因は隅ではなく辺の余白である.
board_baffle は実機の LED 配置(下/左/右 3 基板)とは無関係な理想化である点も球と同じangular_ratio の跳ね上がり(L=360 で 0.71)は今回も見かけ.分母の動径分散が 118→7.1 に
潰れたためで,方位分散の絶対値(6→17,mean 比 ~2%)で読むこと(TEST_15 の再確認)pytest.exe ランチャも同時にブロック.こちらは python -m pytest で回避).犯人の特定は
LoadLibraryExW を DONT_RESOLVE_DLL_REFERENCES 付きで全 DLL に当て,WinError 4551
(ポリシーブロック)と 126(依存欠落の巻き添え)を切り分けるのが確実.同一バージョンの
再インストールはハッシュが同じため無効で,対処は別バージョンへの固定(vtk 9.4.2 と同じ).
レンダラの途中変更はアンカー再レンダで等価性を確認してから混在させること# 幾何生成のみ(3D 配置確認用.レンダはしない) uv run python scripts/sweep_cube_size.py --prepare-only # 半割り断面(レンダ前の配置確認) uv run python scripts/show_scene_cutaway.py --scene configs/_tmp_cube_size/scene_board_baffle_L200.yaml # 遮蔽の検証(評価板から LED へのレイが全て遮られることを実測) uv run python scripts/verify_baffle_occlusion.py --scene configs/_tmp_cube_size/scene_board_baffle_L200.yaml # スイープ本体(全 9 条件.レンダ + 評価.既存結果は再利用される) uv run python scripts/sweep_cube_size.py # 球との比較図 + 集約表(内面積で対応づけ) uv run python scripts/build_cube_sphere_comparison.py # 四隅の痕跡の定量(m=4 成分) uv run python scripts/analyze_fourfold_component.py
出力: output/cube_size_sweep/board_baffle/(条件別 10 ディレクトリ + summary.csv).
mitsuba 3.7.1↔3.8.0 のアンカー比較は output/cube_size_sweep/_anchor_check_mitsuba371/L120/.
比較図は cube_vs_sphere.png,m=4 解析は fourfold_component.png,
レンダ前 3D 確認は output/cube_size_sweep/_placement_check/cutaway_L*.png.
board_baffle 構成・評価の作法・球側の全データ