0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Lambertの余弦則を徹底解説 — 幾何・放射測定・BRDF・検出器への応用まで

Posted at

1. はじめに

平面の面積 (A) に、方向 $(\theta,\phi)$ から細いビームが当たるとき、ビームに垂直な見かけの面積は

$$
A_\perp = A\cos\theta.
$$

傾けるほど($\theta$ が大きいほど)影は細くなり、単位時間・単位立体角あたりの受ける量(フラックス密度)が $(\cos\theta)$ で減少します。これがLambert の余弦則のです。

微小立体角による書き換え

方向要素を立体角で表すと、

$$
\mathrm{d}\Omega = \sin\theta,\mathrm{d}\theta,\mathrm{d}\phi,\qquad 0\le\theta\le\tfrac{\pi}{2},\ 0\le\phi<2\pi.
$$

入射輝度(radiance, 入射方向あたりのパワー密度)を $(L_i(\theta,\phi))$ とすれば、平面が受ける照度 (E) は

$$
E=\int_{\Omega_{\text{hem}}} L_i(\theta,\phi),\cos\theta,\mathrm{d}\Omega.
$$

$(\cos\theta)$ が現れる位置=投影の寄与であることが分かります。

2.「入射」と「放射」:二つの顔

Lambert の余弦則は 入射側放射/反射側 の二通りで使われます。

2.1 入射(受光・検出)

コリメートされたビームが一定強度で来るなら、傾けた平面の照度は $(E(\theta)=E(0)\cos\theta)$。

また、半空間から等方に入射する場合(全方向で $(L_i=L_0)$ 一定)、

$$
E=\int_{\Omega_{\text{hem}}} L_0,\cos\theta,\mathrm{d}\Omega=L_0\int_{\Omega_{\text{hem}}} \cos\theta,\mathrm{d}\Omega=\pi L_0.
$$

この「$\pi$」は後で何度も顔を出します。

角度分布の豆知識:平面が観測する到来角の確率密度は $(p(\theta)\propto\cos\theta\sin\theta)(0〜\pi/2)$。“垂直入射が有利”の定量化です。

2.2 放射(理想拡散面=Lambertian)

理想拡散面は、出射方向の微小パワー

$$
\mathrm{d}\Phi = L,\cos\theta,\mathrm{d}A,\mathrm{d}\Omega
$$

で与えられます。観測者から見える面積が $\cos\theta$ で縮むのとちょうど釣り合い、輝度 $(L)$は方向に依存しません。半球に出る総パワー(放射発散度)は

$$
M=\int_{\Omega_{\text{hem}}} L\cos\theta,\mathrm{d}\Omega=\pi L.
$$

拡散反射では BRDF が

$$
\boxed{\ f_r(\omega_i!\to!\omega_o)=\dfrac{\rho}{\pi}\ }\qquad(\text{sr}^{-1})
$$

となり、出射輝度は $(L_o=f_r,E=(\rho/\pi)E)$($\rho$:拡散反射率)。

半球での基本積分:

$$
\int_{\Omega_{\text{hem}}} \cos\theta,\mathrm{d}\Omega
=\int_0^{2\pi}\int_0^{\pi/2}\cos\theta\sin\theta,\mathrm{d}\theta,\mathrm{d}\phi
=2\pi\cdot\tfrac{1}{2}=\pi.
$$

幾何直感:単位半球に平行光を当てたとき、半球の影は半径1の円で面積は $\pi$。影=投影面積=コサイン積分、という見方です。

3. レンダリング/計測での標準形

3.1 BRDF とレンダリング方程式

レンダリングでは、出射輝度

$$
L_o(\omega_o)=\int_{\Omega_{\text{hem}}} f_r(\omega_i!\to!\omega_o),L_i(\omega_i),\cos\theta_i,\mathrm{d}\Omega_i
$$

の $\cos\theta_i$ がコア。Lambertian なら $f_r=\rho/\pi$。

3.2 放射測定:輝度・照度・放射発散度

  • 輝度 $L$(W·m⁻²·sr⁻¹):方向密度付きの“明るさ”
  • 照度 $E=\int L_i\cos\theta,\mathrm{d}\Omega$(W·m⁻²)
  • 放射発散度 $M=\int L_o\cos\theta,\mathrm{d}\Omega$(W·m⁻²)

4. 検出器・幾何学係数(Geometrical Factor)への応用

粒子・光検出器では、レート実効受入れが $\cos\theta$ によって決まります。

4.1 平面検出器のイベントレート

等方フラックス密度を $\Phi$(1·m⁻²·s⁻¹·sr⁻¹)とすると、面積 (A) の平面が半空間から受ける全レートは

$$
R = A\int_{\Omega_{\text{hem}}} \Phi,\cos\theta,\mathrm{d}\Omega = A,\pi,\Phi.
$$

傾けた場合は、入射方向との角 $(\theta)$ に応じて局所的に $A\cos\theta$ が効きます。

4.2 コリメータ/テレスコープの受入れ

二枚の平行板(同じ形・大きさ)でコリメートする“テレスコープ”では、視野制限により有効立体角が減少します。解析解があるのは対称形状(円板・正方形)や遠方近似などに限られるので、

  • 解析:板の重なり領域が方向によりどう投影されるかを積分
    (幾何学係数 G)
  • 数値:Monte Carlo で方向をサンプリングし、全ての板を貫通するか判定

幾何学係数:$(G = \int_{\Omega_\text{acc}} A_{\text{eff}}(\omega),\mathrm{d}\Omega)$(単位:m²·sr)。等方フラックス $\Phi$ ならレートは $R=\Phi G$。

複数枚スタックの同時計数も同じ考え方で、各板を連結した有効“トンネル”の投影を方向ごとに評価します。厚み・隙間・縁効果が利くため、Monte Carlo が実務的です(下 6 参照)。

5. Monte Carlo:コサイン重み付き半球サンプリング

Lambertian な世界では $p(\omega)=\cos\theta/\pi$ を満たすサンプルが便利です。代表的な方法:

5.1 ディスク経由(推奨)

一様乱数 $\xi_1,\xi_2\in[0,1]$。

  1. 半径 $r=\sqrt{\xi_1}$, 角度 $\phi=2\pi\xi_2$ で単位ディスク上の点 $(x,y)=(r\cos\phi, r\sin\phi)$ を得る
  2. $z=\sqrt{1-r^2}$ として半球へ持ち上げる。得られた $(x,y,z)$は $p(\omega)=\cos\theta/\pi$ を満たす

5.2 直接法(角度パラメトリック)

$\xi_1,\xi_2\in[0,1]$ から

$$
\theta=\arccos\sqrt{\xi_1},\qquad \phi=2\pi\xi_2,
$$

$((x,y,z)=(\sin\theta\cos\phi,\sin\theta\sin\phi,\cos\theta))$

5.3 Python サンプル

import numpy as np

def sample_cosine_hemisphere(n: int):
    xi1 = np.random.rand(n)
    xi2 = np.random.rand(n)
    r = np.sqrt(xi1)
    phi = 2*np.pi*xi2
    x = r*np.cos(phi)
    y = r*np.sin(phi)
    z = np.sqrt(1 - r*r)
    return np.stack([x,y,z], axis=1)

# 例:コサイン積分の数値検証(E = pi * L)
L = 1.0
N = 1_000_000
dirs = sample_cosine_hemisphere(N)
# コサイン重み付きでは E をそのまま平均で評価できる
E_est = L * (np.pi)  # 理論値
print(E_est)

5.4 Julia サンプル

using Random, LinearAlgebra

function sample_cosine_hemisphere(n::Int)
    x = zeros(3, n)
    @inbounds for i in 1:n
        ξ1, ξ2 = rand(), rand()
        r = sqrt(ξ1)
        ϕ = 2π*ξ2
        x[1,i] = r*cos(ϕ)
        x[2,i] = r*sin(ϕ)
        x[3,i] = sqrt(1 - r*r)
    end
    x
end

注:レンダリングでのパストレーシング、検出器の受入れ評価(方向平均)、どちらにもそのまま使えます。

  • 検出器(または拡散板)を回転ステージに載せ、入射角 $(\theta)$ を掃引。
  • 測定レート(またはカメラ輝度)を正規化し、$R(\theta)\propto\cos\theta$ または $\cos\theta$に比例するモデルでフィット
  • 逸脱は立ち上がり角でのフレネル反射、表面粗さ(非Lambert性)、縁効果などの非理想性に起因

6. 現実の設計での落とし穴

  1. Lambertian の前提:実物の表面は完全拡散ではない。金属・コーティング・微細構造はマイクロファセットで角度分布が変わる
  2. 検出器厚み:厚みやデッドレイヤが大きいと、吸収・散乱で“単純な $\cos\theta$”から逸脱
  3. 有限サイズ効果:多板コリメータ/テレスコープでは、視野端でのクリッピングが効く。Monte Carlo で縁効果を必ず評価
  4. 平面近似の破綻:曲面(例えば球面フォトカソード)では局所法線で判断。積分は面上で行う必要あり
  5. 照明の等方性:環境が等方でないと、$E=\pi L $は成立しない。実験系の“入射場”を特性化すること

7. 近縁/非混同事項

  • Beer–Lambert の法則(吸収による減衰 $(I=I_0 e^{-\alpha x})$)とは別物。Lambertの“余弦則”は幾何・拡散の法則
  • 写真の“どこから見ても同じ明るさ”:厳密には輝度(radiance)の話。露出はセンサー・レンズで別途スケール

8. ちょっと高度な話題

8.1 Cauchy の投影公式(影の面積)

任意の滑らかな凸面の全表面積 (S) の任意方向への平均投影面積は (S/4)。コサイン則の“影=投影”視点の一般化で、球では $(S=4\pi)$ → 平均投影面積は $\pi$。

8.2 マイクロファセットモデルとの接続

現実表面は微小鏡面の集合とみなし、法線分布関数(NDF)と幾何減衰項、Fresnel で BRDF を作る(GGX, Beckmann など)。Lambert はその極限的単純形(拡散部分)。

8.3 バイアス無し推定量と MIS(Multiple Importance Sampling)

$\cos\theta$ 重みサンプリングは Lambertian に最適だが、複合 BRDF では重要度サンプリングの混合(MIS)が分散低減に効く。

9. すぐ使えるチートシート

  • 投影:$A_\perp = A\cos\theta$
  • 半球積分:$\int_{\Omega_{\text{hem}}}\cos\theta,\mathrm{d}\Omega=\pi$
  • Lambert面:$M=\pi L$, $f_r=\rho/\pi$
  • 等方フラックス→平面レート:$R=\Phi A \pi$
  • コサイン重み PDF:$p(\omega)=\cos\theta/\pi$
  • サンプリング(ディスク法):$r=\sqrt{\xi_1},\ \phi=2\pi\xi_2,\ z=\sqrt{1-r^2}$

10. まとめ

Lambert の余弦則は、“投影が $\cos\theta$ で縮む”という幾何学の事実と、理想拡散面の放射の定義から自然に現れます。放射測定・コンピュータグラフィックス・光/粒子検出・リモートセンシングなど、角度を伴うすべての計算の母語です。実務では非理想性(表面粗さ・縁効果・有限厚み)を忘れず、解析と Monte Carlo をハイブリッドに使って設計・評価しましょう。

付録A:二板テレスコープの簡易モンテカルロ(擬似コード)

inputs: plate_shape, size, gap, N
count = 0
for i in 1..N:
    # 等方半空間から方向をサンプリング
    dir = sample_uniform_hemisphere()
    # またはコサイン重み付きにして尤度を補正

    # 入射点を1枚目の有効面内で一様サンプリング
    x0 = sample_point_on_plate()

    # 直線 x(t) = x0 + t*dir が2枚目以降のプレート内を通過するか判定
    if intersects_all_plates(x0, dir, shape, gap, size):
        count += 1

# 幾何学係数 G ≈ (面積) * 2π * (count/N) * (補正係数)

※ 厳密な正規化と補正は、選んだ方向 PDF(等方 or コサイン重み)に合わせて実装してください。

付録B:等方→平面での到来角分布

半空間で一様($\mathrm{d}\Omega$ 一様)な場合、平面に到達する到来角分布は

$$
p(\theta) = 2\cos\theta\sin\theta,\qquad 0\le\theta\le \tfrac{\pi}{2},
$$

(正規化済み)。“$\cos\theta$”の重みが効いて、$\theta=0$ 付近が最頻になります。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?