Skip to content

材質モデルに関する数学的考察

最終更新日時: 2025年08月25日 12:57

  • まだ全然理解できていない

BRDF(双方向反射分布関数)は、3次元空間における光の反射特性を数式的に表す関数である。材質モデルの違いはBRDFの定義に帰着する。

  • BRDFは入射光と出射光の方向に基づいて、単位入射放射輝度あたりの出射輝度を定める関数
  • 材質モデル(Lambert, Phong, Cook-Torranceなど)は、異なるBRDFを定義することで反射特性を近似している
  • Lambertモデルは理想拡散、Phongモデルは経験的光沢、Cook-Torranceは物理ベース反射を再現する

BRDF f_rf\_r は次式で定義される:

fr(x,ωi,ωo)=dLo(x,ωo)dEi(x,ωi)=dLo(x,ωo)Li(x,ωi)(ωin)dωif_r(x, \omega_i, \omega_o) = \frac{dL_o(x, \omega_o)}{dE_i(x, \omega_i)} = \frac{dL_o(x, \omega_o)}{L_i(x, \omega_i) (\omega_i \cdot n) d\omega_i}
  • xx: 反射位置 [m]
  • ω_i\omega\_i: 入射方向(単位ベクトル)
  • ω_o\omega\_o: 出射方向(単位ベクトル)
  • L_iL\_i: 入射輝度 [Wsr1m2\mathrm{W\cdot sr^{-1}\cdot m^{-2}}]
  • L_oL\_o: 出射輝度 [Wsr1m2\mathrm{W\cdot sr^{-1}\cdot m^{-2}}]
  • dE_idE\_i: 入射放射照度の微小量
  • nn: サーフェス法線(単位ベクトル)
  • f_rf\_r: BRDF [sr1\mathrm{sr^{-1}}]
モデル名BRDF式特徴代表例
Lambertf_r=ρπf\_r = \frac{\rho}{\pi}等方的完全拡散反射、観測方向に依存しない白壁、チョーク、紙
Phongf_r(rv)sf\_r \propto (\mathbf{r} \cdot \mathbf{v})^s経験的光沢モデル、鏡面方向近傍に集中プラスチック、陶器
Blinn-Phongf_r(nh)sf\_r \propto (\mathbf{n} \cdot \mathbf{h})^sPhongの計算最適化型ガラス、艶消し金属
Cook-Torrancef_r=DGF4(ω_on)(ω_in)f\_r = \frac{DGF}{4(\omega\_o \cdot n)(\omega\_i \cdot n)}物理ベース反射、マイクロファセット理論金属、濡れた表面
Oren-NayarLambertの粗面拡張。解析式は長いため省略拡散面の粗さ考慮布、コンクリート
GGX / Trowbridge-Reitz分布D項にD=α2π((nh)2(α21)+1)2D = \frac{\alpha^2}{\pi((n \cdot h)^2(\alpha^2 - 1) + 1)^2}PBRで用いられる鏡面分布ゲームエンジンの標準材質
Perfect Specularf_r=δ(ω_or(ω_i))f\_r = \delta(\omega\_o - r(\omega\_i))完全鏡面反射、デルタ関数鏡、静水面
  • ρ\rho: 拡散反射率(アルベド、無次元)
  • r\mathbf{r}: 入射方向の鏡面反射ベクトル
  • v\mathbf{v}: 観測方向ベクトル
  • n\mathbf{n}: サーフェス法線
  • h\mathbf{h}: ハーフベクトル(h=ω_i+ω_oω_i+ω_o\mathbf{h} = \frac{\omega\_i + \omega\_o}{|\omega\_i + \omega\_o|}
  • ss: 光沢指数(Phongモデルにおける指数、無次元)
  • α\alpha: 表面粗さパラメータ(GGX)
  • D,G,FD, G, F: 分布項、幾何項、フレネル項(Cook-Torranceモデル)
  • Lambert
  • Phong
  • Blinn-Phong
  • Cook-Torrance

拡散反射において、放射輝度 L_oL\_o は入射方向 ω_i\omega\_i からの放射照度 E_iE\_i に比例し、すべての方向に等しく反射されると仮定する。

Lo(x,ωo)=ρπEi(x)=ρπΩLi(x,ωi)(ωin)dωiL_o(x, \omega_o) = \frac{\rho}{\pi} E_i(x) = \frac{\rho}{\pi} \int_{\Omega} L_i(x, \omega_i) (\omega_i \cdot n) d\omega_i

よって、BRDF f_rf\_r は:

fr(x,ωi,ωo)=ρπf_r(x, \omega_i, \omega_o) = \frac{\rho}{\pi}

これは方向に依存しない定数であり、エネルギー保存性を持つ。

Phongモデルは経験的な鏡面ハイライトの近似であり、反射ベクトル r\mathbf{r} と視線方向 v\mathbf{v} の間の角度 θ\theta に依存して次のように表される:

fr(ωi,ωo)(max(rv,0))sf_r(\omega_i, \omega_o) \propto (\max(\mathbf{r} \cdot \mathbf{v}, 0))^s

ここで ss は光沢指数であり、大きいほど鏡面反射が鋭くなる。 正規化には以下のようにエネルギー保存則を仮定してスケーリング係数を導入する:

fr(ωi,ωo)=s+22π(max(rv,0))sf_r(\omega_i, \omega_o) = \frac{s + 2}{2\pi} (\max(\mathbf{r} \cdot \mathbf{v}, 0))^s

Blinn-Phongは反射ベクトルの代わりにハーフベクトル h\mathbf{h} を用いる。

fr(ωi,ωo)=s+88π(max(nh,0))sf_r(\omega_i, \omega_o) = \frac{s + 8}{8\pi} (\max(\mathbf{n} \cdot \mathbf{h}, 0))^s

この式もエネルギー保存性のための正規化係数を含む。h\mathbf{h} は以下のように定義される:

h=ωi+ωoωi+ωo\mathbf{h} = \frac{\omega_i + \omega_o}{\| \omega_i + \omega_o \|}

Cook-Torranceモデルはマイクロファセット理論に基づき、以下の3要素で構成される:

fr=D(h)G(ωi,ωo,h)F(ωi)4(ωin)(ωon)f_r = \frac{D(\mathbf{h}) G(\omega_i, \omega_o, \mathbf{h}) F(\omega_i)}{4(\omega_i \cdot n)(\omega_o \cdot n)}
  • DD: 法線分布関数(NDF)
  • GG: 幾何項(遮蔽・マスキング)
  • FF: フレネル反射係数(Schlick近似等) 代表的なGGX分布:
DGGX(h)=α2π((nh)2(α21)+1)2D_{GGX}(\mathbf{h}) = \frac{\alpha^2}{\pi((n \cdot \mathbf{h})^2(\alpha^2 - 1) + 1)^2}

幾何項(Smith近似):

GSmith(ω)=2(nv)(nv)+α2+(1α2)(nv)2G_{Smith}(\omega) = \frac{2(n \cdot v)}{(n \cdot v) + \sqrt{\alpha^2 + (1 - \alpha^2)(n \cdot v)^2}}

フレネル項(Schlick近似):

F(ωi)=F0+(1F0)(1(ωih))5F(\omega_i) = F_0 + (1 - F_0)(1 - (\omega_i \cdot \mathbf{h}))^5

以降、各項目の物理的意味、エネルギー保存の証明、Fresnel完全式との比較などを必要に応じて展開可能である。