写真の物理学 ③ 光と物質の相互作用

Share
📐
写真の物理学シリーズ ③
このシリーズでは、写真にまつわる現象を物理学の言葉で記述する。「なんとなくそうなる」を「なぜそうなるか」に変換することが目的である。

光はレンズを透過し、被写体で反射し、大気中で散乱する。写真を撮るという行為は、光と物質の相互作用の結果を記録することにほかならない。本稿では反射・屈折・吸収・散乱・蛍光・干渉を、それぞれの物理法則から整理する。

反射の法則とBRDF

鏡面反射と拡散反射

光が物質の表面に当たると、その一部は反射される。反射の法則は単純で、入射角 $\theta_i$ と反射角 $\theta_r$ が等しいというものである。

$$ \theta_i = \theta_r $$

鏡やガラスのように滑らかな表面では、この法則どおりに光が一方向へ跳ね返る。これが鏡面反射(specular reflection)である。一方、紙や壁のようにミクロな凹凸を持つ表面では、各微小面がそれぞれ異なる角度で反射するため、光はあらゆる方向へ散らばる。これが拡散反射(diffuse reflection)である。

BRDFの物理的意味

現実の表面は完全な鏡面でも完全な拡散面でもなく、その中間にある。この反射特性を定量的に記述するのが双方向反射率分布関数(BRDF: Bidirectional Reflectance Distribution Function)である。BRDFは入射方向 $\omega_i$ から来た光が、反射方向 $\omega_r$ へどれだけの放射輝度を生むかを表す。

$$ f_r(\omega_i, \omega_r) = \frac{dL_r(\omega_r)}{dE_i(\omega_i)} $$

ここで $L_r$ は反射方向の放射輝度、$E_i$ は入射放射照度である。単位は $\mathrm{sr^{-1}}$(ステラジアンの逆数)となる。

完全拡散面(ランバート面)では、BRDFは入射角にも反射角にも依存せず定数となる。このとき $f_r = \rho / \pi$ である($\rho$ はアルベド)。白い壁に近づいても露出が変わらない物理学的理由で詳しく述べたように、ランバート面の放射輝度が観測方向によらず一定になるのは、立体角あたりの放射強度がコサイン則に従って減少するためである。

写真においてBRDFが重要なのは、被写体の「質感」がまさにこの関数の形状そのものだからである。マットな肌、光沢のある金属、半透明の布地。それぞれ異なるBRDFを持ち、ライティングの角度によって見え方が劇的に変わる。商品撮影で柔らかい光を作るモディファイヤー選びで光源の大きさと質感描写の関係を論じたが、その背景にはBRDFの物理がある。光源の見かけの大きさがBRDFを介して質感描写をどう変えるかは光の硬さと柔らかさで定量的に論じている。

屈折とスネルの法則

屈折率と光の速度

光が異なる媒質の境界を斜めに横切るとき、進行方向が変わる。これが屈折である。屈折の法則、すなわちスネルの法則は次のように書ける。

$$ n_1 \sin\theta_1 = n_2 \sin\theta_2 $$

$n_1$, $n_2$ はそれぞれの媒質の屈折率、$\theta_1$, $\theta_2$ は法線からの角度である。屈折率とは、真空中の光速 $c$ に対するその媒質中の光速 $v$ の比 $n = c / v$ であり、光が媒質中で遅くなるほど大きな値を取る。

分散 ── 屈折率の波長依存性

屈折率は波長によって異なる。一般にガラスの屈折率は短波長(青)ほど大きく、長波長(赤)ほど小さい。この性質を分散(dispersion)と呼ぶ。プリズムが白色光をスペクトルに分解できるのは、分散によって波長ごとに屈折角が異なるためである。

分散が生じる物理的理由は、媒質中の電子が光の電場に応答する際の共鳴周波数にある。光の振動数が電子の共鳴周波数に近いほど応答が強くなり、屈折率が大きくなる。ガラスの共鳴周波数は紫外域にあるため、可視光のうち紫外に近い青色光ほど屈折率が高くなる。

写真レンズにおいて分散は色収差の原因となる。波長ごとに焦点位置がずれるため、像の縁に色のにじみが生じる。色収差を含むレンズ収差の体系的な分類と補正原理は収差の物理学で扱っている。EDレンズ(異常低分散レンズ)やフローライトレンズは、通常のガラスと分散特性が異なる素材を組み合わせることで、この色収差を補正している。

吸収と透過

ベール・ランベルトの法則

光が物質を通過する際、その一部はエネルギーとして吸収される。吸収の度合いは物質の種類、光の波長、そして通過距離に依存する。均質な媒質を通過する光の強度変化を記述するのがベール・ランベルトの法則である。

$$ I(L) = I_0 \, e^{-\varepsilon C L} $$

$I_0$ は入射光強度、$I(L)$ は距離 $L$ を通過後の光強度、$\varepsilon$ はモル吸光係数、$C$ は吸収物質の濃度である。指数関数的に減衰するため、厚みが2倍になれば透過率は2乗に減少する。

フィルターの物理

カメラ用フィルターの動作原理はこの法則に基づく。NDフィルター(減光フィルター)は可視光全域をほぼ均一に吸収する素材でできており、透過光量を落とす。NDフィルターの光学濃度と露出値の関係は露出の統合と逆数則で詳しく扱った。一方、カラーフィルターは特定波長帯を選択的に吸収する。たとえば赤フィルターは青や緑の光を吸収し、赤の光を透過させる。

デジタルカメラのセンサー前面に置かれたIRカットフィルターは、赤外線を吸収(あるいは反射)して可視光のみを透過させる。センサーを構成するシリコンフォトダイオードは近赤外域にも感度を持ち、フィルターなしでは色再現が崩れる。センサーの分光感度とバンドギャップの関係は光電効果とフォトダイオードで論じている。このフィルターを除去すると赤外写真が撮影可能になる。見えない光が写す もうひとつの風景では、赤外線が植物の葉で強く反射されるウッド効果の仕組みと、IRカットフィルター除去による赤外撮影について詳しく論じた。

注意すべきは、ベール・ランベルトの法則が成立するのは散乱が無視でき、溶質間の相互作用がない希薄な系に限られるということである。高濃度の溶液や粒子を含む懸濁液では法則からの逸脱が生じる。

レイリー散乱とミー散乱

散乱の基礎

光が媒質中の粒子に出会うとき、吸収されるのではなく方向を変えて再放射されることがある。これが散乱である。散乱の性質は、粒子の大きさと光の波長の比によって大きく異なる。

レイリー散乱

粒子の直径が光の波長よりもはるかに小さい場合(おおむね $d < \lambda / 10$)、散乱はレイリー散乱に従う。散乱強度は波長の4乗に反比例する。

$$ I \propto \frac{1}{\lambda^4} $$

これは極めて強い波長依存性である。波長400 nmの青色光は、波長700 nmの赤色光に比べて $(700/400)^4 \approx 9.4$ 倍も強く散乱される。空が青いのはこのためである。大気中の窒素分子や酸素分子(直径約0.3〜0.4 nm)は可視光の波長(400〜700 nm)に比べてはるかに小さく、レイリー散乱の条件を満たす。太陽光スペクトルとレイリー散乱の波長依存性を組み合わせた定量的議論は太陽光と大気の物理学に譲る。

人はなぜ夕方の光で立ち止まるのかで述べたように、夕方の光が赤みを帯びるのもレイリー散乱で説明できる。太陽が低い位置にあるとき、光が大気を通過する距離(光路長)が長くなり、青色光はほとんど散乱されて直進光から失われる。残った赤〜橙色の光が夕焼けの色をつくる。この現象が写真に最も美しい光をもたらす時間帯の定量的な扱いはマジックアワーとブルーアワーの物理学を参照されたい。

ミー散乱

粒子の大きさが光の波長と同程度かそれ以上になると、散乱はミー散乱に移行する。ミー散乱はレイリー散乱と異なり、波長依存性が弱い。つまり、すべての波長がほぼ等しく散乱される。

雲が白く見えるのはミー散乱の結果である。雲を構成する水滴の直径は数μm〜数十μmであり、可視光の波長よりもはるかに大きい。すべての波長が均等に散乱されるため、散乱光は白色になる。

写真におけるミー散乱の影響として最も身近なのは霧や霞である。微小な水滴によるミー散乱はコントラストを低下させ、遠景を白っぽくする。霧中や水中での光の減衰と視程の定量的な記述は水中・霧中・宇宙の光で扱った。レンズフードの役割の一つは、こうした散乱光がレンズ前面に到達するのを防ぐことにある。

全反射と臨界角

全反射の条件

スネルの法則を再び見てみよう。屈折率の高い媒質($n_1$)から低い媒質($n_2$、$n_1 > n_2$)へ光が進む場合、入射角を大きくしていくと、屈折角 $\theta_2$ がいずれ90°に達する。このときの入射角を臨界角 $\theta_c$ と呼ぶ。

$$ \theta_c = \arcsin\left(\frac{n_2}{n_1}\right) $$

入射角が臨界角を超えると、光は境界面で完全に反射される。これが全反射(total internal reflection)である。たとえば一般的なガラス($n_1 \approx 1.52$)から空気($n_2 = 1.00$)への臨界角は約41.1°となる。

写真への関わり

全反射は光学機器のプリズムで広く利用されている。たとえば双眼鏡に用いられるポロプリズムでは、ガラスの斜面への入射角が臨界角を超えるため、銀蒸着なしに全反射だけで光路を折り曲げることができ、反射における光量損失をほぼゼロにできる。一方、一眼レフカメラのペンタプリズムでは、反射面への入射角が臨界角より小さいため全反射は起こらず、反射面に銀やアルミニウムを蒸着して鏡面を形成している。プリズムやレンズ内部を光がどのような経路で進むかという基本原理は光の直進と薄肉レンズの結像で扱った。

また、ダイヤモンドが強く輝くのは屈折率が非常に高い($n \approx 2.42$)ため臨界角が小さく(約24.4°)、内部に入った光の多くが全反射を繰り返して表面から出射するためである。宝石写真において独特の輝きを捉えるには、この全反射の性質を意識したライティングが求められる。

蛍光と燐光

ストークスシフト

物質が光を吸収し、異なる波長の光として再放射する現象が蛍光(fluorescence)である。蛍光では、放出される光子のエネルギーは吸収された光子のエネルギーよりも小さい。エネルギーの一部が分子の振動エネルギーとして失われるためである。光子のエネルギーは $E = hc / \lambda$ であるから、エネルギーが小さいということは波長が長いということになる。

$$ \lambda_{\text{emission}} > \lambda_{\text{absorption}} $$

この波長のずれをストークスシフト(Stokes shift)と呼ぶ。

燐光(phosphorescence)も同様の発光現象であるが、蛍光よりも遅延がある。蛍光は励起後ナノ秒オーダーで消失するのに対し、燐光はミリ秒〜秒単位、場合によっては数時間も持続する。これは電子のスピン状態の遷移(一重項から三重項への項間交差)が関与し、緩和が遅くなるためである。

写真への影響

蛍光は写真において思わぬ色のずれを引き起こす。色のずれがなぜ問題になるかを理解するには、人間の色知覚の仕組みと分光分布の関係を扱った色とは何かが前提となる。蛍光増白剤が含まれた白い衣服や紙は、紫外線を吸収して青色の蛍光を発するため、「白よりも白く」見える。しかし、ストロボ光には紫外線成分が含まれるため、蛍光増白剤入りの素材はストロボ撮影時に予想外の青みを帯びることがある。光源の分光特性が物体色の見え方をどう変えるかは演色性とメタメリズムで掘り下げている。ストロボ撮影で色がずれる理由と対策で扱った色ずれの一因も、この蛍光現象にある。

蛍光と燐光は紫外線写真や科学写真でも重要な役割を果たす。鉱物、生体試料、法科学の証拠写真など、特定の波長で励起して蛍光を撮影する技法は広く用いられている。

表面反射率とフレネルの式

フレネルの式の概要

光が屈折率の異なる媒質の境界に到達したとき、どれだけの割合が反射され、どれだけが透過するか。これを定量的に与えるのがフレネルの式である。反射率は入射角と偏光状態に依存する。

s偏光(入射面に垂直な電場振動)の反射係数 $r_s$ とp偏光(入射面に平行な電場振動)の反射係数 $r_p$ は次のように表される。

$$ r_s = \frac{n_1 \cos\theta_i - n_2 \cos\theta_t}{n_1 \cos\theta_i + n_2 \cos\theta_t} $$

$$ r_p = \frac{n_2 \cos\theta_i - n_1 \cos\theta_t}{n_2 \cos\theta_i + n_1 \cos\theta_t} $$

反射率(エネルギー比)はそれぞれの絶対値の2乗 $R_s = |r_s|^2$, $R_p = |r_p|^2$ である。

垂直入射と斜め入射

垂直入射($\theta_i = 0$)では偏光による差はなく、反射率は次のように簡潔になる。

$$ R = \left(\frac{n_1 - n_2}{n_1 + n_2}\right)^2 $$

空気($n_1 = 1.0$)からガラス($n_2 = 1.5$)への垂直入射では $R = (0.5/2.5)^2 = 0.04$、すなわち約4%が反射される。レンズ1面あたり4%の損失は小さく見えるが、10枚のレンズを持つズームレンズでは20面あり、コーティングなしでは透過率が $(0.96)^{20} \approx 0.44$、つまり56%もの光が反射損失で失われる計算になる。この透過率損失がF値と実効的な明るさ(T値)の乖離を生む仕組みは絞りと有効口径の物理的意味で定量的に扱っている。

入射角が大きくなると反射率は急激に増加する。特にp偏光の反射率はブリュースター角($\theta_B = \arctan(n_2/n_1)$)でゼロになり、その後急上昇する。s偏光の反射率は入射角とともに単調に増加する。非偏光の反射率はこれらの平均であり、斜め入射ほど反射が強まる。

水面を斜めから見ると強い反射で水底が見えなくなるのは、この入射角依存性の直接的な結果である。偏光フィルター(PLフィルター)は特定の偏光成分を遮断することで、こうした表面反射を低減する道具である。偏光の物理的な意味とマリュスの法則による減光量の計算は電磁波としての光で詳述した。

コーティングの物理

薄膜干渉による反射防止

レンズ表面の反射損失を低減するために用いられるのが反射防止コーティングである。その原理は薄膜干渉に基づく。

屈折率 $n_c$ を持つ薄膜をガラス表面に蒸着すると、光は薄膜の表面と裏面の両方で反射する。この2つの反射光が弱め合う干渉を起こすように膜厚と屈折率を設計すれば、反射を大幅に抑制できる。

弱め合いの干渉が生じる条件は2つある。

振幅条件: 2つの反射光の振幅が等しくなるためには、薄膜の屈折率が空気とガラスの屈折率の幾何平均であればよい。

$$ n_c = \sqrt{n_{\text{air}} \cdot n_{\text{glass}}} $$

空気($n = 1.0$)とガラス($n = 1.5$)の場合、理想的な屈折率は $\sqrt{1.5} \approx 1.22$ となる。フッ化マグネシウム(MgF₂、$n \approx 1.38$)は理想値に近い屈折率と優れた耐久性を持つため、古くからレンズコーティングの標準材料として用いられてきた。

位相条件: 2つの反射光の光路差が半波長の奇数倍になるためには、膜の光学的厚さ($n_c \times d$)が $\lambda / 4$ であればよい。

$$ n_c \cdot d = \frac{\lambda}{4} $$

単層コーティングの限界とマルチコーティング

単層の $\lambda/4$ コーティングが完全に反射を打ち消せるのは、設計波長1つに対してだけである。可視光全域(400〜700 nm)をカバーするには不十分であり、実際には特定波長での残留反射が色づいて見える。レンズのコーティングが紫や緑の反射色を示すのはこのためである。

この限界を克服するために開発されたのがマルチコーティング(多層膜コーティング)である。屈折率の異なる複数の薄膜を積層することで、広い波長範囲にわたって反射率を低減できる。現代の高性能レンズでは数十層もの多層膜コーティングが施され、1面あたりの反射率を0.1〜0.2%程度にまで抑えている。ニコンのナノクリスタルコートやキヤノンのASC(Air Sphere Coating)などは、ナノ構造を利用してさらに反射を低減する技術である。

コーティング技術は写真レンズの性能を飛躍的に向上させた。逆光耐性、コントラスト、色再現性。現代のレンズが複雑な光学系にもかかわらず高い描写力を維持できるのは、一つにはコーティング技術の進歩に負うところが大きい。

まとめ

光と物質の相互作用は、反射、屈折、吸収、散乱、蛍光、全反射、そして干渉と、多様な形をとる。これらの現象はそれぞれ独立に存在するのではなく、一枚の写真の中で同時に起きている。レンズ表面でのフレネル反射、ガラス内部での分散と吸収、コーティングによる干渉、大気中でのレイリー散乱、被写体表面でのBRDFに従う反射。写真とは、これらの物理過程の総体を記録する行為である。

数式は現象の本質を圧縮して見せてくれる。スネルの法則の $n_1 \sin\theta_1 = n_2 \sin\theta_2$ は、光が境界で「なぜ曲がるか」ではなく「どう曲がるか」を正確に教えてくれる。ベール・ランベルトの法則の指数減衰は、NDフィルターの段数計算の基盤であり、レイリー散乱の $1/\lambda^4$ は空の色と夕焼けを一つの式で説明する。

次回以降の記事では、ここで触れたコーティングの薄膜干渉をさらに掘り下げ、回折限界と最適絞りのトレードオフをはじめとする干渉と回折の物理へと進む。

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