diff --git a/CLAUDE.md b/CLAUDE.md index 336b948..cf3aac7 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -10,6 +10,7 @@ 補足: 内部キャリブ調整は一旦中断し、**シミュ結果の見せ方(3D ビュー)改善**を実施.評価板実レンダ投影 → **path ベイク(`baker.py` mode="path"、多重反射込み per-face、scalar_rgb)** 追加 → 全メッシュ統一着色(共有 lit-clim・log・単一カラーバー)を既定化、`--render` は任意のテクスチャ投影オプション(評価板 E=π·L/ρ で同一スケール)、`--bake-cache` で 1 回計算→以後即時、`--opacity`/`--hide-below`/`--bake-smooth`/`--bake-scale` を追加.さらに **path ベイク max_depth を render 設定から独立(`--bake-max-depth`、既定 16)**=後段多重反射を積分、**幾何カリング(`--cull-outward` 既定 ON、外向き ≈0 面を非描画)**=暗殻の濁り/見かけ段差を解消、マーカー個別非表示フラグ、を追加.実装完了. 既知の制約(受容済み): per-face ベイクはメッシュ境界の継ぎ目・粗メッシュのブロック感・低 samples の MC ノイズ・scalar_rgb の遅さ(高 samples 非現実的)あり.精細な評価は 2D `sm-evaluate` で行う(不変).隣接内壁の見かけ段差は調査の結果「外向き ≈0 面の混在」が主因と判明=幾何カリングで解消(内壁照度自体は物理どおりほぼ均一). 次のアクション(可視化・コミット後の別タスク): シーム/粒状感の解消には全メッシュ UV 統合+シームレスライトマップベイク(別プロジェクト規模).必要時に別途 `/implement`.path ベイク高速化(wavefront/GPU)も別タスク. +補足: **実機搭載 LED の物性確定**(LED Paradise LP-2835D90VW / Ra98 SunLightLED 2835 4000K、Vf 3.1V・If 60mA・Φv 16–19 lm @60mA・配光角 120°・規格通り 60mA 駆動前提).規格値から独立推定した radiance ≈ 2030 W/(m²·sr) は現状校正値 2807 と 1.38× 差で、反射率 0.85→0.89 への調整で物理範囲内に説明可能.既知差分 #3(LED 実 W 値未検証)クローズ.**形状指標への影響なし**(線形ゲイン).配光は厳密 Lambertian 仮定継続(詳細 IES 未提供、実 SMD 2835 のやや前方凸性は ISP LSC と打ち消し合う近似として現状妥当).詳細: [SPEC_03 LED セクション](docs/04_SPEC/SPEC_03_基準設計の物理構成.md#led光源). 次のアクション(キャリブ再開時): 残差に **LSC(ISP レンズシェーディング)順方向モデル**を当てる(物理動機づけ低自由度形、overfitting 回避・取得パラメータ数明記). 実装済みモジュール: diff --git "a/docs/04_SPEC/SPEC_03_\345\237\272\346\272\226\350\250\255\350\250\210\343\201\256\347\211\251\347\220\206\346\247\213\346\210\220.md" "b/docs/04_SPEC/SPEC_03_\345\237\272\346\272\226\350\250\255\350\250\210\343\201\256\347\211\251\347\220\206\346\247\213\346\210\220.md" index 74f3df3..8898163 100644 --- "a/docs/04_SPEC/SPEC_03_\345\237\272\346\272\226\350\250\255\350\250\210\343\201\256\347\211\251\347\220\206\346\247\213\346\210\220.md" +++ "b/docs/04_SPEC/SPEC_03_\345\237\272\346\272\226\350\250\255\350\250\210\343\201\256\347\211\251\347\220\206\346\247\213\346\210\220.md" @@ -35,23 +35,68 @@ ### 物理仕様 +実機搭載 LED は **LED Paradise「Ra98 SunLightLED 2835 チップ LED 4000K」(型番 LP-2835D90VW)** に確定([商品ページ](https://www.led-paradise.com/product/2608)).以下は同商品ページから取得した規格値で、駆動条件は **規格通り 60 mA フル駆動** を前提とする. + | 項目 | 値 | 根拠 | | --- | --- | --- | -| パッケージ | SMD 2835 | [REFERENCE/smd2835_datasheets.png](../../REFERENCE/smd2835_datasheets.png) | -| サイズ | 2.8 × 3.5 mm | データシート(Samsung / Bridgelux / Lumileds 共通) | -| 配光角(ビーム角) | 120°(≒ Lambertian) | データシート | +| 型番 | **LP-2835D90VW** | LED Paradise 商品ページ | +| パッケージ | SMD 2835 | 同上、[REFERENCE/smd2835_datasheets.png](../../REFERENCE/smd2835_datasheets.png) | +| サイズ(外形) | 2.8 × 3.5 mm | 2835 命名規則どおり(現 YAML の `size` と一致) | +| 色温度 | 3800–4250 K(公称 4000 K) | LED Paradise | +| 演色性 Ra | **98**(太陽光近似スペクトル) | 同上 | +| 順方向電圧 Vf | 3.1 V (typ) | 同上 | +| 順方向電流 If | 60 mA (max) | 同上.**実機は規格通り 60 mA で運用する前提** | +| 全光束 Φv | **16–19 lm @ 60 mA**(中央値 17.5 lm) | 同上 | +| 電気入力電力 | Vf × If ≈ **186 mW** | 上記から算出 | +| 配光角(ビーム角) | **120°**(半値全幅、Lambertian と数学的に整合) | 同上 | +| 詳細配光プロファイル(IES) | **未提供** | LED Paradise 商品ページにデータシート PDF 掲載なし | +| 分光分布(SPD) | グラフ未提供(4000K Ra98 と説明のみ) | 同上 | + +※ Ra98 は太陽光のスペクトルに広帯域で近づけた高 CRI 品.本シミュは現状 RGB variant・無彩色等価で運用しており luma 指標には影響しないが、将来のスペクトル化(spectral variant)時に再評価する. + +### 規格値に基づく radiance の独立推定 + +`scene_baseline.yaml` の `radiance = 2807.247 W/(m²·sr)` は実測 PNG mean=146.71 への線形アンカーで決まった**校正値**であり、規格値からの導出ではない.LED 物性が確定したので、**規格値だけから radiance を独立に計算**して校正値と並べる: + +| ステップ | 値 | 備考 | +| --- | --- | --- | +| 全光束 Φv(@60 mA、typ 中央値) | 17.5 lm | 16–19 lm の中央値 | +| LER(4000K 高 CRI 白色 LED の典型値) | ≈ 280 lm/W | 5000K で ~300、3000K で ~260、Ra98 で V(λ) ピーク外帯を多く含むため低め | +| 放射束 Φe = Φv / LER | **0.0625 W** | 1 LED あたり | +| 発光面積 A | 9.8 × 10⁻⁶ m² | 2.8 × 3.5 mm | +| 半球 Lambertian 積分: Φe = L · A · π | | | +| **規格推定 radiance** | **L ≈ 2030 W/(m²·sr)** | 駆動電流 60 mA・LER 280 lm/W・面光源 2835 想定 | +| **現状校正値(mean アンカー)** | 2807 W/(m²·sr) | `configs/scene_baseline.yaml:65` | +| **比** | **2807 / 2030 ≈ 1.38×** | | + +#### 1.38× 差の解釈 + +サニティチェックとして電気→光のウォールプラグ効率を計算すると Φe / P = 0.0625 / 0.186 ≈ **33.6%**(実用 LED として妥当範囲、Cree 等の高効率品で 40%・廉価品で 25–30%).**規格→radiance の換算は物理的に整合**しており、桁・係数とも合っている. + +校正値が規格推定より 1.38× 高い差分は、間接照明設計(LED は評価板から見て反対側を向いており、評価板輝度は **反射率の累積積を経由した**経路でしか決まらない、後述)の下で **LED 単体側ではなく反射率累積側で説明可能**: + +- 暫定 R = 0.85 で integrating sphere 近似 1/(1−R) = 6.67 +- R = 0.89 にすると 1/(1−0.89) = 9.09 で **比 1.36×**(観測差 1.38× と一致) +- マット白プラの実用反射率上限は ~0.92([反射率スイープ参照](#筐体内壁反射率スイープ2026-05-18spp256depth12raw-float-linear))であり、R ≈ 0.89 は **物理範囲内** + +→ **校正値 2807 と規格推定 2030 の差は反射率 0.85→0.89 で説明可能**.現状の暫定 0.85 はやや低めに見積もっていた可能性がある. + +#### 形状指標への影響(重要) + +LED の絶対 radiance は **線形ゲインなので CoV / 勾配 / C/P など無次元の形状指標には不変**.したがって規格値 2030 への置換は形状指標残差(実測との 1.6–1.9× 差)を解消しない.本ドキュメントの「`radiance` を規格推定値で記録する」と「形状指標の残差を詰める」は **独立な作業**であり、前者は物理妥当性の担保・後者は ISP モデル化([既知差分 #6 LSC](#既知の差分-実機との不一致))が本筋. ### モデル化(光の広がり方) - Mitsuba の **AreaLight (rectangle)** として表現 - 発光面の **片面のみ** から放射する(`direction` ベクトルが示す向き側.裏面は完全に発光しない) - 放射分布は **Lambertian**(法線方向で最大,cos(θ) で減衰) - - データシートのビーム角 120° は半値全幅 ±60° に相当し,Lambertian の cos(60°)=0.5 と一致するため矛盾なし -- 各 LED の `direction` は **z 軸マイナス方向 `(0, 0, -1)`** で全 18 個共通.光は -Z 半球側に Lambertian で広がる -- `radiance` は暫定 `1.0 W/sr/m²`(キャリブレーション反復で実機 W 値に校正予定) + - データシート記載は配光角 120°(半値全幅 ±60°)のみ.これを満たす配光のうち最も標準的なのが Lambertian(cos(60°) = 0.5)であり、現実装はこれと数学的に整合 + - **ただし**:実 SMD 2835 はパッケージ内の蛍光体カップ・封止樹脂ドームで配光が純粋な cos^n 形にならないことが多く、典型的には Lambertian よりやや前方凸.LED Paradise は詳細 IES プロファイルを公開していないため厳密検証は不可 + - 仮に実 LED が前方凸であれば**中央/周辺比が上がる方向**=形状指標残差を悪化させるが、これは ISP LSC([既知差分 #6](#既知の差分-実機との不一致))の周辺持ち上げと方向が**逆**であり、現状の「Lambertian + LSC なし」は近似的に「実 LED 前方凸 + 実機 LSC あり」と打ち消し合っている可能性がある.配光精緻化は LSC モデル化とセットで再評価する +- 各 LED の `direction` は **z 軸マイナス方向 `(0, 0, -1)`** で全 18 個共通.**意図的な間接照明設計**:LED 直接光は評価板に届かず、白筐体内壁の多重反射経由でのみ評価板を照らす.これにより評価板輝度は LED radiance と反射率累積の積で決まり、絶対値(mean)と相対分布(CoV/勾配/C/P)の感度は別物になる +- `radiance` は現状 **2807.247 W/(m²·sr)**(実測 mean=146.71 への線形アンカー校正値).規格値からの独立推定は ≈ 2030 W/(m²·sr)(前項参照).差 1.38× は反射率 0.85→0.89 で説明可能で物理範囲内 - 全光束への換算: `Φ [W] = radiance × area × π`(Lambertian 半球積分) - 1 LED あたりの面積: `2.8 × 3.5 = 9.8 mm² = 9.8e-6 m²` - - `radiance=1.0` のとき `Φ = 1.0 × 9.8e-6 × π ≈ 3.08e-5 W`(極めて小さい.実機 LED は ~0.2 W なので約 6500 倍の校正が必要) ### 配置 @@ -258,7 +303,7 @@ 1. **3D プリンタ白素材の反射率の正確な値**: 暫定 `0.85` だが、実物のフィラメント(PLA / PETG / ABS のどれか)と分光反射率データで再校正が必要. 2. **左右 LED 基板の正確な位置・向き**: STL から推定した座標で、Fusion 360 設計とのズレがある可能性. -3. **LED 1 個あたりの実 W 値**: 現状 `radiance=2807.25`(実測 mean=146.7 にスケール校正済み).mean は一致するが、実機 SMD 2835 の規格値(~0.2 W)からの物理的整合性は未検証. +3. ~~**LED 1 個あたりの実 W 値**~~(**物性確定・物理整合確認済み、未対処項目は反射率の再校正のみ**): 実機搭載 LED は LED Paradise LP-2835D90VW(Ra98 SunLightLED 2835 4000K)と確定.規格値(Φv 16–19 lm @60 mA、Vf 3.1V)から独立推定した radiance は ≈ 2030 W/(m²·sr)、現状校正値 2807 との比 1.38× は反射率 0.85→0.89 への調整で物理範囲内(マット白プラ実用上限 0.92)に説明可能.ウォールプラグ効率 33.6% も実用 LED として妥当.[LED セクション「規格値に基づく radiance の独立推定」参照](#規格値に基づく-radiance-の独立推定).**形状指標への影響なし**(線形ゲイン).残る課題は反射率の実フィラメント分光データでの再校正(既知差分 #1). 4. **スマホホルダの実素材**: 推定 `holder_dark` (0.50).実物確認が必要. 5. ~~**linear vs sRGB のドメイン不一致(OETF 欠落)**~~(**最大要因・解消済み**): シミュ linear と実測 gamma 空間 luma を直接突合していた交絡で見かけ差の **約 2/3**.標準 sRGB OETF 順方向適用+実測 mean アンカーを `sm-evaluate` に正規実装して解消(`evaluation/oetf.py` + `EvaluationConfig.oetf`、`configs/eval_baseline.yaml` で有効化).以降の比較は OETF 後ドメインで行う.※ 旧版でここを「主因は ISP レンズシェーディング」としていたのは OETF を抜かした誤り. 6. **【残差の主因候補・未対処】ISP レンズシェーディング補正**: 実測 PNG は実機 ISP の周辺減光電子補正込み、シミュは未補正.OETF 適用後も残る 1.6〜1.9 倍差の主因候補.LSC 順方向モデル(物理動機づけ低自由度形、overfitting 回避)で対処予定.