立体角の限界効果から求めるソフトボックスの最適サイズ

Share

影の柔らかさは、被写体から見た光源の見かけの大きさによって決まる。光源の見かけが大きいほど影のエッジは緩やかに遷移し、柔らかい影が得られる。ソフトボックスを大きくすれば見かけの光源は大きくなるが、その効果には収穫逓減がある。

本稿では、ソフトボックスを均一発光する円盤と近似し、被写体位置から見た立体角を影の柔らかさの代理指標として定式化する。そのうえで、半径を増加させたときの立体角の増加率(限界効果)が最大となる最適半径を解析的に導出する。

モデルの定義

以下の仮定を置く。

  • ソフトボックスを半径 \(R\) ( \(R > 0\) ) の均一発光円盤とする。
  • 被写体上の注目点 \(P\) は円盤の中心軸上にあり、発光面中心からの距離を \(d\) ( \(d > 0\) ) とする。
  • 影の柔らかさの代理指標として、点 \(P\) から円盤を見込む立体角 \(\Omega(R, d)\) を採用する。

なお、本モデルは軸上の1点に対する評価であり、被写体の広がりや光源の配光特性は考慮していない。

解析

円盤が張る立体角

点 \(P\) から円盤の縁を見通す円錐の半頂角を \(\theta_{\max}\) とすると、

$$ \tan\theta_{\max} = \frac{R}{d},\quad \cos\theta_{\max} = \frac{d}{\sqrt{d^2 + R^2}} $$

である。立体角は単位球上の面積として次のように求まる。

$$ \Omega(R, d) = \int_0^{2\pi}\!\!\int_0^{\theta_{\max}} \sin\theta\,d\theta\,d\phi = 2\pi\!\left(1 - \cos\theta_{\max}\right) = 2\pi\!\left(1 - \frac{d}{\sqrt{d^2 + R^2}}\right) \tag{1} $$

限界効果

距離 \(d\) を固定し、式 (1) を \(R\) で偏微分する。

$$ \frac{\partial\Omega}{\partial R} = 2\pi\,\frac{\partial}{\partial R}\!\left(- \frac{d}{\sqrt{d^2 + R^2}}\right) = \frac{2\pi d R}{\left(d^2 + R^2\right)^{3/2}} \tag{2} $$

これが、半径を微小量増加させたときに得られる立体角の増分率、すなわち限界効果である。

最適半径 \(R^\ast (d)\) の導出

限界効果 (2) を最大化する \(R\) を求める。式 (2) の正定数 \(2\pi d\) を除いた部分を

$$ f(R) = \frac{R}{\left(d^2 + R^2\right)^{3/2}} $$

とおき、 \(R\) で微分する。 \(f(R) = R \cdot (d^2 + R^2)^{-3/2}\) に積の微分法を適用すると、

$$ \begin{aligned} f'(R) &= \left(d^2+R^2\right)^{-3/2} + R \cdot \left(-\tfrac{3}{2}\right) \cdot 2R \cdot \left(d^2+R^2\right)^{-5/2} \\[6pt] &= \left(d^2+R^2\right)^{-5/2}\!\left[\left(d^2+R^2\right) - 3R^2\right] \\[6pt] &= \frac{d^2 - 2R^2}{\left(d^2+R^2\right)^{5/2}} \end{aligned} \tag{3} $$

\(d > 0\) 、 \(R > 0\) より分母は常に正であるから、 \(f'(R) = 0\) の条件は

$$ d^2 - 2R^2 = 0 $$

これを解いて、

$$ R^\ast(d) = \frac{d}{\sqrt{2}} \tag{4} $$

を得る。

極大であることの確認

式 (3) の分子 \(d^2 - 2R^2\) の符号を調べる。

  • \(R < d/\sqrt{2}\) のとき \(f'(R) > 0\) (限界効果は増加中)
  • \(R > d/\sqrt{2}\) のとき \(f'(R) < 0\) (限界効果は減少中)

よって \(f(R)\) は \(R = R^\ast\) で極大値をとり、 \(\partial\Omega/\partial R\) も \(R = R^\ast\) で最大となる。

なお、 \(R^\ast\) は \(\Omega(R, d)\) の変曲点でもある。 \(R < R^\ast\) では \(\partial^2\Omega/\partial R^2 > 0\) ( \(\Omega\) は下に凸、加速的に増加)であり、 \(R > R^\ast\) では \(\partial^2\Omega/\partial R^2 < 0\) ( \(\Omega\) は上に凸、減速的に増加)となる。 \(R^\ast\) は立体角の成長が加速から減速に転じる境界点である。

結果

最適半径は被写体距離 \(d\) に正比例する。

$$ R^\ast(d) = \frac{d}{\sqrt{2}} \approx 0.707\,d $$

直径に換算すると、

$$ D^\ast(d) = 2R^(d) = \sqrt{2}\,d \approx 1.414\,d $$
💡
限界効果が最大となる円形ソフトボックスの直径は、被写体距離の \(\sqrt{2} \approx 1.41\) 倍である。

\(R = R^\ast\) における立体角と半頂角は次のとおりである。

$$ \Omega\!\left(R^\ast, d\right) = 2\pi\!\left(1 - \sqrt{\frac{2}{3}}\right) \approx 1.153\;\text{sr} \quad\left(\text{半球}\;2\pi\;\text{sr}\;\text{の約}\;18.4\,\%\right) $$ $$ \theta^\ast_{\max} = \arctan\frac{1}{\sqrt{2}} \approx 35.26° $$

数値例

\(R^\ast(d) = {d}/{\sqrt{2}}\) は \(d\) に線形であるため、 \(d\) の範囲が与えられれば \(R^\ast\) の範囲も一意に定まる。 \(d = 0.01 \sim 100\,\text{m}\) に対し \(D^\ast = \sqrt{2}\,d\) を算出する。代表値は以下のとおりである。

  • \(d = 0.5\,\text{m}\) → \(D^\ast \approx 0.71\,\text{m}\)
  • \(d = 1.0\,\text{m}\) → \(D^\ast \approx 1.41\,\text{m}\)
  • \(d = 1.5\,\text{m}\) → \(D^\ast \approx 2.12\,\text{m}\)
  • \(d = 2.0\,\text{m}\) → \(D^\ast \approx 2.83\,\text{m}\)
  • \(d = 3.0\,\text{m}\) → \(D^\ast \approx 4.24\,\text{m}\)

ポートレート撮影で一般的な灯体-被写体間距離 \(d = 1.0 \sim 2.0\,\text{m}\) に限れば、最適直径はおよそ \(1.4 \sim 2.8\,\text{m}\) となる。

考察

結果の解釈

\(R^\ast\) は「このサイズ以上は不要」という閾値ではない。 \(R > R^\ast\) でも立体角は単調に増加するため、大きなソフトボックスは常にさらに柔らかい影を生む。 \(R^\ast\) は、サイズ増加1単位あたりの立体角の増分が最大となる点、すなわち収穫逓減が始まる変曲点として解釈すべきである。

代理指標の選択について

本稿では立体角 \(\Omega\) を代理指標に採用した。一方、影の柔らかさの別の指標として光源の半頂角 \(\theta_{\max} = \arctan(R/d)\) を考えることもできる。 \(\theta_{\max}\) に対する限界効果は

$$ \frac{\partial\theta_{\max}}{\partial R} = \frac{d}{d^2 + R^2} $$

であり、 \(R\) に対して単調減少する。すなわち変曲点を持たず、「限界効果が最大となるサイズ」は \(R \to 0\) に退化して実用的な最適解が得られない。

立体角が変曲点を持つ理由は、小さい \(\theta\) に対し \(\Omega \approx \pi\theta^2\) と \(\theta\) の2次で効くためである。この2次の構造が \(R\) の小さい領域で限界効果を押し上げ、極大点を生じさせる。立体角による定式化は、影の遷移領域(半影)の空間的な広がりを反映した指標と位置づけることができる。

その他の実用上の留意点

  • 形状 実際のソフトボックスの多くは正方形または長方形である。正方形の場合、等面積円盤への換算( \(R_{\text{eq}} = a/\sqrt{\pi}\) 、 \(a\) は一辺の長さ)により本結果を近似的に適用できる。
  • 光量 光源の全光束が一定のとき、発光面積の増大に伴い単位面積あたりの輝度は低下する。ソフトボックスのサイズ選定には、ストロボ出力とのトレードオフも考慮が必要である。
  • 軸外効果 本モデルは光源中心軸上の1点に対する立体角を評価している。被写体が広がりを持つ場合や光源が正面から外れた配置では、立体角は位置によって異なり、影の柔らかさも一様ではなくなる。

Read more

Dependabotの対応が面倒なのでRenovateを導入する

Dependabotくんはある程度の依存関係の更新を通知してくれるが、山のようにprojectを抱えているとなんとも痒いところに手が届かない。 ということで、Renovateを使ってみる。 Build software better, togetherGitHub is where people build software. More than 150 million people use GitHub to discover, fork, and contribute to over 420 million projects.GitHub ここからGitHub Appを入れる。 あとは、指示に従ってポチポチするだけで、超かんたんだった。 感想 自動化最高。

By Sakashita Yasunobu

nodejsのバグを見つけたのでPRを投げてみた

概要 要するに、node --testで特定のバイナリを標準出力に書くと、テストランナーが固まったり、異常終了したりするバグです。 バグ自体は既知のものだったようで、修正がされていました。 test_runner: infinite loop in FileTest#drainRawBuffer when child stdout contains FF 0F followed by large size bytes · Issue #62693 · nodejs/nodeVersion v25.9.0 (also reproduced on v24.14.1 LTS, v22.21.0 LTS, v23.4.0) Platform Darwin 25.

By Sakashita Yasunobu
青空文庫のParser

青空文庫のParser

青空文庫のParserを作ってます。 GitHub - P4suta/aozora: Pure-functional Rust parser for 青空文庫記法 (Aozora Bunko notation): ルビ, 傍点, 縦中横, 外字, 返り点, indent containers, page breaks.Pure-functional Rust parser for 青空文庫記法 (Aozora Bunko notation): ルビ, 傍点, 縦中横, 外字, 返り点, indent containers, page breaks. - P4suta/aozoraGitHubP4suta Rustで作ってますが、配布物はcargoのほかにnpm/pypiでも入手できます Documentation * Playground — try it in

By Sakashita Yasunobu