diff --git "a/docs/03_PLAN/PLAN_02_\351\226\213\347\231\272\343\202\271\343\203\206\343\203\203\343\203\227.md" "b/docs/03_PLAN/PLAN_02_\351\226\213\347\231\272\343\202\271\343\203\206\343\203\203\343\203\227.md" index acef716..693a718 100644 --- "a/docs/03_PLAN/PLAN_02_\351\226\213\347\231\272\343\202\271\343\203\206\343\203\203\343\203\227.md" +++ "b/docs/03_PLAN/PLAN_02_\351\226\213\347\231\272\343\202\271\343\203\206\343\203\203\343\203\227.md" @@ -166,3 +166,70 @@ - **M3(Step 6 完了)**: シミュ・実測の同一評価パイプラインが完成 - **M4(Step 8 完了)**: 基準設計と実測の整合が取れた.ここまでが「環境完成」 - **M5(Step 9)**: 改良案が複数比較できる.プロジェクトの本来目的を達成 + +## 将来検討事項 (Future Considerations) + +### Step 10 候補: Blender + bpy アドオン版(GUI 強化) + +**現時点では未着手.Step 9 完了後に必要性を判断する.** + +#### 動機 + +現行の Mitsuba 版は YAML 手書き + CLI 駆動が中心で,「光源配置を試行錯誤する」「結果を直感的に確認する」操作性は弱い.Step 7 で PyVista 3D ビューアを入れたが,これは結果の確認に限る.**LED の配置・形状・配光プロファイル自体を GUI で試したい段階**になったら Blender アドオン版を別パッケージとして追加する. + +#### 役割分担の見立て + +| 層 | Blender + bpy 版での担当 | +| --- | --- | +| 3D 表示・LED 配置・マテリアル編集 | Blender 標準 GUI | +| 物理レンダリング | Cycles(モンテカルロパストレース) | +| 評価指標(CoV / 3 ゾーン / 放射プロファイル / ROI) | **現行の `uniformity.py`, `evaluation/*.py` を import で再利用** | +| 評価結果の表示 | 自作の `bpy.types.Panel`(Blender サイドバーに CoV 等を表示) | +| 配光プロファイル | IES ファイル直接読込(Blender 標準サポート) | + +#### Cycles を採用する利点 + +- **GUI 操作性**: 3D ビューでのドラッグ配置・ノードベースのマテリアル編集.設計試行錯誤の速度が桁違い +- **IES 配光ファイル対応**: LED メーカー実測配光(CREE / OSRAM 等の `.ies`)をそのまま読み込める.Mitsuba 版では自作実装が必要 +- **任意形状エミッタ**: Emission BSDF + ノードグラフで任意の配光関数を表現可能(Mitsuba の固定 emitter type より柔軟) +- **ぐりぐり回せる 3D ビュー**: PyVista 自作分が不要に + +#### Mitsuba 版を残す理由 + +- **物理量の正確性**: Cycles は Watt 単位の解釈や View Transform の影響を受ける.Mitsuba は標準で W/m² を素直に返す → **キャリブレーションの真値生成は Mitsuba で行う** +- **CI / 自動テスト**: pytest で素直に回る.Blender ヘッドレス CI はやや手間 +- **軽量さ**: Python パッケージのみで完結.Blender 本体(数百 MB)に依存しない + +#### キャリブレーション戦略(Mitsuba ↔ Cycles 整合) + +Cycles の `Light.energy`(W)と評価面の実 lx の対応は,**Mitsuba 版の Step 8 で確定した数値を真値として 1 回校正する**.具体的には: + +1. Step 8 で確定した基準設計 YAML と同じシーンを Blender でも再現 +2. 同じ評価面で CoV / 中心-周辺比を測定 +3. Mitsuba 結果と一致するように Cycles の Light Energy・View Transform(Standard 推奨)・Color Management を調整 +4. 「Mitsuba 1.0 W ≈ Cycles X W」の換算係数を Step 10 のドキュメントに記録 + +これで以降は Blender 版でも物理的に妥当な数値が出る. + +#### 想定パッケージ構成 + +``` +src/sm_tias_lightsim/ # 現行(Python パッケージ) +src/sm_tias_lightsim_blender/ # Step 10 候補(Blender アドオン) + ├── __init__.py # bpy.types.AddonPreferences 登録 + ├── panels.py # サイドバー UI(評価ボタン・CoV 表示) + ├── operators.py # 「評価実行」「YAML エクスポート」等 + └── render_runner.py # Cycles 起動 + 結果取得 +``` + +評価層(`uniformity.py`, `evaluation/*.py`)は Mitsuba に非依存なので **コード変更なしで再利用** できる. + +#### 判断タイミング + +Step 9 完了時点で以下を確認して着手判断する: + +- 自分以外のメンバーがツールを触る必要が出てきたか +- LED 配置・配光の試行錯誤頻度が高く,YAML 手書きが律速になっているか +- IES 配光ファイルでの精密モデル化が必要になったか + +いずれも該当しないなら Mitsuba 版で運用継続.